<?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>216966</bug_id>
          
          <creation_ts>2020-09-25 01:20:39 -0700</creation_ts>
          <short_desc>[JSC] Introduce JSC_DECLARE_HOST_FUNCTION / JSC_DEFINE_HOST_FUNCTION to make host function definition easy-to-scanned for JIT-caging</short_desc>
          <delta_ts>2020-09-26 14:52:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>ashvayka</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1691807</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 01:20:39 -0700</bug_when>
    <thetext>[JSC] Introduce JSC_DECLARE_HOST_FUNCTION / JSC_DEFINE_HOST_FUNCTION to make host function definition easy-to-scanned for JIT-caging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691808</commentid>
    <comment_count>1</comment_count>
      <attachid>409666</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 01:26:39 -0700</bug_when>
    <thetext>Created attachment 409666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691809</commentid>
    <comment_count>2</comment_count>
      <attachid>409667</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 01:38:14 -0700</bug_when>
    <thetext>Created attachment 409667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691811</commentid>
    <comment_count>3</comment_count>
      <attachid>409668</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 01:47:43 -0700</bug_when>
    <thetext>Created attachment 409668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691858</commentid>
    <comment_count>4</comment_count>
      <attachid>409668</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-09-25 06:24:44 -0700</bug_when>
    <thetext>Comment on attachment 409668
Patch

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

&gt; Source/WTF/wtf/PlatformCallingConventions.h:49
&gt; +#define JSC_ANNOTATE_HOST_FUNCTION(functionId, function)

This will do something in the future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691983</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 12:21:31 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #4)
&gt; Comment on attachment 409668 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=409668&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/PlatformCallingConventions.h:49
&gt; &gt; +#define JSC_ANNOTATE_HOST_FUNCTION(functionId, function)
&gt; 
&gt; This will do something in the future?

Yes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1691985</commentid>
    <comment_count>6</comment_count>
      <attachid>409719</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 12:22:27 -0700</bug_when>
    <thetext>Created attachment 409719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692030</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 14:23:54 -0700</bug_when>
    <thetext>stress/put-private-name-invalid-define.js.ftl-eager is flaky before this patch. Landing this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692035</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-09-25 14:32:32 -0700</bug_when>
    <thetext>Committed r267594: &lt;https://trac.webkit.org/changeset/267594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692036</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-25 14:33:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/69594503&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692218</commentid>
    <comment_count>10</comment_count>
      <attachid>409719</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-09-26 14:52:19 -0700</bug_when>
    <thetext>Comment on attachment 409719
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:199


It would be nice to tweak ChangeLog generation tool so the host function names are displayed correctly.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409666</attachid>
            <date>2020-09-25 01:26:39 -0700</date>
            <delta_ts>2020-09-25 01:37:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216966-20200925012638.patch</filename>
            <type>text/plain</type>
            <size>1781288</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
Mzc3MzlkZGM1NGYxNjhjZDRmOTAwZTY1MTJjYzA3NmQyMTIxYmUxLi4zNjRmZjcwMTJiNzYwYWRh
Mjc4ZmRkY2E3MDk1Zjg4OGU4ZGFiYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDcwIEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04g
LyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRlZmluaXRp
b24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTiBhbmQgY2hhbmdlcyBo
b3cgdG8gZGVmaW5lIGhvc3QgZnVuY3Rpb25zLgorICAgICAgICBJbiB0aGUgbmV3IHdheSwgd2Ug
ZGVjbGFyZSBhIGZ1bmN0aW9uIGxpa2UsCisKKyAgICAgICAgICAgIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25IZWxsb1dvcmxkKTsKKworICAgICAgICBBbmQgZGVmaW5lIHRoZSBm
dW5jdGlvbiBsaWtlLAorCisgICAgICAgICAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25IZWxsb1dvcmxkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9u
IGJvZHkuCisgICAgICAgICAgICB9CisKKyAgICAgICAgVGhpcyBtYWtlcyBhZGRpbmcgc29tZSBt
ZXRhIGluZm9ybWF0aW9uIHRvIGVhY2ggZnVuY3Rpb24gZWFzeSwgd2hpY2ggaGVscHMgSklULWNh
Z2luZyB0byBjb2xsZWN0IGFsbG93ZWQgZnVuY3Rpb24gcG9pbnRlcnMuCisKKyAgICAgICAgKiBB
UEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24p
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU0NhbGxiYWNrQ29uc3RydWN0
b3IpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxs
SlNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNO
b25GaW5hbE9iamVjdD46OmdldENvbnN0cnVjdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlND
YWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAg
IChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5j
dGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmdldENhbGxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsSW1wbCk6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y29uc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW06Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNh
bGxPYmpDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVj
dE9iakNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvZ2xpYi9KU0FQ
SVdyYXBwZXJHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3Ry
dWN0RnVuY3Rpb24pOgorICAgICAgICAqIEFQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIu
Y3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46
OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0NhbGxiYWNrRnVu
Y3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjYWxsSlNDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdEpTQ0NhbGxiYWNrRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZVNhdmVkUmVzdWx0QWxpYXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUpOiBE
ZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0
b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9y
Ojpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcyk6IERlbGV0
ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25XZWFrU2V0U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
dGVyYXRvckVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMpOiBEZWxldGVkLgorICAg
ICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVl
cnlIb2xkZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvblN1YnR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldElu
dGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxG
cmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24pOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKElu
c3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQpOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlQ29sdW1uKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3Bl
Y3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbik6IERlbGV0ZWQu
CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJh
bWVBdHRyaWJ1dGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2Ny
aXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCk6IERlbGV0ZWQuCisgICAgICAgICoganNjLmNwcDoK
KyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChmdW5jdGlvblBy
aW50U3RkT3V0KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25EZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
bkRlc2NyaWJlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNsZWVwU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkpTQ1N0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uR0NBbmRTd2Vl
cCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZ1bGxHQyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkVkZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBTaXplKTog
RGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrKTogRGVsZXRlZC4KKyAg
ICAgICAgKGZ1bmN0aW9uQWRkcmVzc09mKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uVmVy
c2lvbik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblJ1bik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJ1blN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVhZEZpbGUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DaGVja1N5bnRh
eCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpOiBEZWxldGVkLgorICAgICAg
ICAoZnVuY3Rpb25HZXRSYW5kb21TZWVkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzUm9wZSk6IERlbGV0ZWQu
CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJlYWRsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJlY2lzZVRp
bWUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uTm9ERkcpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Ob0ZUTCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChmdW5jdGlvbkNhbGxlcklzT01HQ29tcGlsZWQpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckV2YWxTY3JpcHQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9hZGNhc3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Eb2xsYXJBZ2VudEdldFJlcG9ydCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckFnZW50TGVhdmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50TW9u
b3RvbmljTm93KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uV2FpdEZvclJlcG9ydCk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkZsYXNoSGVhcEFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRp
c2FibGVSaWNoU291cmNlSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1hbGxvY0lu
QUxvb3ApOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSlNDT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChm
dW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblRyYW5zZmVyQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25GYWls
TmV4dE5ld0NvZGVCbG9jayk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblF1aXQpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25GYWxzZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blVuZGVmaW5lZDEpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25VbmRlZmluZWQyKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSXNJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbklzUHVyZU5hTik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklkZW50aXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRWZmZWN0ZnVsNDIpOiBEZWxldGVkLgorICAgICAgICAo
ZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DYWxs
TWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25IYXNDdXN0b21Qcm9wZXJ0
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVz
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uU2V0VGltZW91dCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blJlbGVhc2VXZWFrUmVmcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZpbmFsaXphdGlv
blJlZ2lzdHJ5TGl2ZUNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRmluYWxpemF0
aW9uUmVnaXN0cnlEZWFkQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25JczMyQml0
UGxhdGZvcm0pOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3Qp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Vc2VCaWdJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzQmlnSW50MzIp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Jc0hlYXBCaWdJbnQpOiBEZWxldGVkLgorICAg
ICAgICAoZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbkVuc3VyZUFycmF5U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblN0YXJ0
U2FtcGxpbmdQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNhbXBsaW5nUHJv
ZmlsZXJTdGFja1RyYWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1heEFyZ3VtZW50
cyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQXN5bmNUZXN0UGFzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1
bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9u
U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Bc0RvdWJsZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxBcnJh
eUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlDb25zdHJ1Y3RvclBy
aXZhdGVGdW5jSXNBcnJheVNsb3cpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwZWNpZXNDcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVBy
b3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9p
bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNQb3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1B1
c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JldmVyc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFy
cmF5UHJvdG9GdW5jU3BsaWNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1
bmNVblNoaWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9m
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNw
eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFzeW5jRnVuY3Rp
b25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVjdEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0F0b21p
Y3NPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjphdG9taWNzRnVuY0FkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0
b21pY3NGdW5jQW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNDb21wYXJl
RXhjaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY0V4Y2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNJc0xvY2tGcmVlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNMb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
YXRvbWljc0Z1bmNPcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jU3RvcmUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY1N1Yik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmF0b21pY3NGdW5jV2FpdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21p
Y3NGdW5jV2FrZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jWG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEJpZ0lu
dENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50Q29uc3RydWN0b3JG
dW5jQXNVaW50Tik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0ludENvbnN0cnVjdG9yRnVu
Y0FzSW50Tik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjpiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0lu
dFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50
UHJvdG9GdW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Y29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1RvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1ZhbHVlT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNEZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNXYXJuKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVu
Y0Rpcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNEaXJYTUwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGFibGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVHJhY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0NvdW50UmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5j
UHJvZmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNQcm9maWxl
RW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWVFbmQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY1JlY29yZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNSZWNv
cmRFbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hv
dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbERh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkYXRlTm93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVVUQyk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvVVRDU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2wpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRVVENGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRV
VENNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRN
aW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0
ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY1NldFNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNTZXRNaW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ01pbnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0
SG91cnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0RGF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNTZXRVVENEYXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldE1vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY1NldEZ1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Nl
dFllYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0pTT04pOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjYWxsRXJyb3JDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChKU0M6OmVycm9yUHJvdG9GdW5jVG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0
cnVjdEZpbmFsaXphdGlvblJlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jRmluYWxpemF0aW9uUmVn
aXN0cnlSZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnByb3RvRnVuY0ZpbmFsaXph
dGlvblJlZ2lzdHJ5VW5yZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvblBy
b3RvdHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmNhbGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjppbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2cpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsQ29sbGF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bENvbGxhdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkludGxDb2xsYXRvckZ1bmNDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50
bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bERh
dGVUaW1lRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0
Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dEZ1bmNGb3JtYXREYXRlVGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsRGlzcGxheU5h
bWVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEludGxEaXNwbGF5TmFtZXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRs
TG9jYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEludGxMb2NhbGUpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bExvY2FsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxMb2NhbGVQ
cm90b3R5cGVGdW5jTWF4aW1pemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxl
UHJvdG90eXBlRnVuY01pbmltaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bExvY2Fs
ZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxM
b2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1lcmljKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bE51bWJlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJG
b3JtYXRGdW5jRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjppbnRsT2JqZWN0RnVuY0dldENh
bm9uaWNhbExvY2FsZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsSW50bFBsdXJhbFJ1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3Jt
YXRUb1BhcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1h
dFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50SXRlcmF0b3JQ
cm90b3R5cGVGdW5jTmV4dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsU2VnbWVu
dGVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsU2VnbWVudGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y2FsbEludGxTZWdtZW50ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsU2VnbWVudGVyQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bFNlZ21lbnRlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50ZXJQ
cm90b3R5cGVGdW5jU2VnbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxTZWdtZW50
ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmND
b250YWluaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFNlZ21lbnRzUHJvdG90eXBl
RnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNhbGxBcnJheUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEFycmF5QnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0
U2hhcmVkQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheUJ1ZmZlckZ1
bmNJc1ZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjphcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym91bmRUaGlz
Tm9BcmdzRnVuY3Rpb25DYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym91bmRGdW5jdGlv
bkNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNv
bnN0cnVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJvdW5kRnVuY3Rpb25Db25zdHJ1Y3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpkYXRh
Vmlld1Byb3RvR2V0dGVyQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvR2V0dGVyQnl0ZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJv
dG9GdW5jR2V0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5j
R2V0SW50MTYpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldElu
dDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50OCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MzIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0NjQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFW
aWV3UHJvdG9GdW5jU2V0VWludDgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvRnVuY1NldFVpbnQxNik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9G
dW5jU2V0VWludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcmd1
bWVudHNHZXR0ZXIpOgorICAgICAgICAoSlNDOjpjYWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlND
OjpjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmNhbGxlckdldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKToKKyAg
ICAgICAgKEpTQzo6Y2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGwpOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY1NldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdElu
ZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9m
ZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1JldmVyc2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY1NvcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjptYWtlQm91bmRGdW5jdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omhhc093bkxlbmd0aFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y3JlYXRlUHJpdmF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFz
c2VydENhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplbmFibGVTYW1wbGluZ1Byb2ZpbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjplbmFibGVTdXBlclNhbXBsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkaXNhYmxlU3VwZXJTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZW5x
dWV1ZUpvYik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6Omdsb2JhbEZ1bmNFdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFs
RnVuY1BhcnNlSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNlRmxv
YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRGVjb2RlVVJJKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFbmNvZGVVUkkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY0VzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNV
bmVzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0NhbGxlZUFuZENhbGxlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNN
YWtlVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvU2V0dGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jQnVpbHRpbkxvZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY093bktleXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5j
RGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bW9k
dWxlTG9hZGVyUGFyc2VNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJSZXF1ZXN0ZWRNb2R1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVy
TW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1vZHVsZUxvYWRl
clJlc29sdmVTeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyRmV0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cnVuU3Rk
RnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkpT
T05Qcm90b0Z1bmNQYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT05Qcm90b0Z1bmNT
dHJpbmdpZnkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpvYmpl
Y3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
SXNUeXBlZEFycmF5Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc05ldXRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY0xlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJy
YXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRl
T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNS
ZXZlcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y1N1YmFycmF5Q3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5
cy5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZVVpbnQ4VHlwZWRBcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxNYXApOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RNYXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQ
cml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2
YXRlRnVuY01hcEJ1Y2tldE5leHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2YXRl
RnVuY01hcEJ1Y2tldEtleSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hcFByaXZhdGVGdW5j
TWFwQnVja2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Om1hcFByb3RvRnVuY0Ns
ZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jRGVsZXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jR2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWFwUHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5j
U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hcFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcm90
b0Z1bmNTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpt
YXRoUHJvdG9GdW5jQWJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0FD
b3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNpbik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNBVGFuKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWF0aFByb3RvRnVuY0FUYW4yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0NlaWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2x6MzIpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ29zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQ
cm90b0Z1bmNGbG9vcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNIeXBv
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bWF0aFByb3RvRnVuY01pbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNQ
b3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jUmFuZG9tKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1JvdW5kKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6bWF0aFByb3RvRnVuY1NpZ24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJv
dG9GdW5jU2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1NxcnQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0lNdWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRo
UHJvdG9GdW5jQUNvc2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNp
bmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVRhbmgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2JydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hdGhQcm90b0Z1bmNDb3NoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0V4cG0xKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0Zyb3VuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxMCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Om1hdGhQcm90b0Z1bmNMb2cyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVu
Y1NpbmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuaCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNUcnVuYyk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKEpTQzo6Y2FsbEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxSYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0UmFuZ2VFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxSZWZlcmVuY2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2Fs
bFN5bnRheEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0U3ludGF4RXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsVHlwZUVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFVSSUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0VVJJRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxHZXR0
ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
SlNDOjpOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1
cm5VbmRlZmluZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25J
bnRlcm5hbDo6Y2FsbFRocm93RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9FeHBv
bmVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvRml4ZWQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6b2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JLZXlzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JBc3NpZ24pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9i
amVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVj
dENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0
Q29uc3RydWN0b3JJc0Zyb3plbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdENvbnN0
cnVjdG9ySXNFeHRlbnNpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3Ry
dWN0b3JJcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5j
VmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0hhc093blBy
b3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5
cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZUdldHRl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAoSlNDOjptYWtlUmV2b2NhYmxlUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RQcm94eU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNhbGxQcm94eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OnBlcmZvcm1Qcm94eUNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwZXJmb3JtUHJveHlD
b25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpw
ZXJmb3JtUHJveHlSZXZva2UpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OnJlZmxlY3RPYmplY3RDb25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpy
ZWZsZWN0T2JqZWN0R2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVmbGVjdE9iamVjdEdl
dE93blByb3BlcnR5RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RP
YmplY3RHZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmpl
Y3RJc0V4dGVuc2libGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0T3du
S2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5z
aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RTZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjplc1NwZWNSZWdFeHBDcmVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplc1NwZWNJc1JlZ0V4cCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNhbGxSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpyZWdFeHBQcm90b0Z1bmNFeGVjKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhw
UHJvdG9GdW5jTWF0Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9G
dW5jQ29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1RvU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlckZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9H
ZXR0ZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTZWFy
Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0
ZUZ1bmNTZXRCdWNrZXRIZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1
bmNTZXRCdWNrZXROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1bmNT
ZXRCdWNrZXRLZXkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0FkZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c2V0UHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jU2l6
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY1ZhbHVlcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUpOgorICAg
ICAgICAoSlNDOjpzdHJpbmdGcm9tQ29kZVBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFyY2gpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJBdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0
cmluZ1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpidWlsdGluU3Ry
aW5nSW5kZXhPZkludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNT
bGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY1RyaW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNUcmltU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNUcmltRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3RhcnRz
V2l0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6
CisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxTeW1ib2wpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RTeW1ib2wpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpzeW1ib2xDb25zdHJ1Y3RvckZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN5
bWJvbENvbnN0cnVjdG9yS2V5Rm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYWtNYXApOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RXZWFrTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dl
YWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OnByb3RvRnVuY1dlYWtNYXBIYXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNX
ZWFrTWFwU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtPYmplY3RSZWZDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChKU0M6OmNhbGxXZWFrUmVmKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0V2Vha1JlZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrT2JqZWN0UmVmUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1JlZkRlcmVmKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxXZWFrU2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0V2Vha1NldCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1NldERlbGV0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnByb3RvRnVuY1dlYWtTZXRIYXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpwcm90b0Z1bmNXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0b29scy9KU0Rv
bGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNyYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25CcmVha3BvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25ERkdUcnVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6ZnVuY3Rpb25GVExUcnVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVu
Y3Rpb25DcHVNZmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNwdVJkdHNj
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcHVDcHVpZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1UGF1c2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNwdUNsZmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkxMaW50
VHJ1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Ob0lubGluZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uR0MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkVk
ZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJvbm91
c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNhbGxGcmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ29kZUJsb2NrRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNvZGVCbG9ja0Zvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFNvdXJjZUZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVt
cEJ5dGVjb2RlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EYXRhTG9nKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25QcmludCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uRHVtcENhbGxGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFN0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wUmVn
aXN0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wQ2VsbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSW5kZXhpbmdNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25JbmxpbmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmZ1bmN0aW9uVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldFBJRCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSGF2ZUFCYWRUaW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZnVuY3Rpb25DcmVhdGVQcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3Jl
YXRlUnVudGltZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVO
dWxsUm9wZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlSW1w
dXJlR2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVDdXN0b21H
ZXR0ZXJPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rp
b25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6ZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNz
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1Np
ZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uQ3JlYXRlUm9vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRl
RWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR2V0RWxlbWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU2ltcGxlT2JqZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25SZXR1cm5UeXBlRm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVu
SWRsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9k
ZVdoZW5JZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EZWxldGVBbGxDb2Rl
V2hlbklkbGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdsb2JhbE9iamVjdENv
dW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldEdldHRlclNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJT
ZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRl
cmZsaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DdXJyZW50Q1BVVGltZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG90YWxHQ1RpbWUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblBhcnNlQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldENvbmN1cnJlbnRseSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbklDVVZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklDVUhlYWRlclZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5j
dGlvbkFzc2VydEVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbklzTWVt
b3J5TGltaXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVXNlSklUKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25hcnkpOiBEZWxldGVk
LgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGls
ZUZ1bmMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVu
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3RyZWFtaW5n
SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUdsb2JhbCk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJvdG9G
dW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJv
dG9HZXR0ZXJGdW5jVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUds
b2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OndlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlN
ZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSlNXZWJBc3NlbWJseU1lbW9yeSk6
IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3Jvdyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseU1v
ZHVsZUN1c3RvbVNlY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlN
b2R1bGVJbXBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlNb2R1bGVF
eHBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3NlbWJseU1v
ZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseVRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEpTV2Vi
QXNzZW1ibHlUYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24pOiBEZWxldGVkLgorCiAyMDIwLTA5LTI0ICBCYXN1a2Ug
U3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbUGxheVN0YXRpb25d
IFN0b3AgcmFpc2luZyBTSUdQSVBFIHdoZW4gY2xpZW50IHNpZGUgb2YgUmVtb3RlSW5zcGVjdG9y
IGRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYWI4MDIwNTY2YjA0M2U2NTE3MGViNzZkYjQyNzk1MGZiNTk2ZTIyMC4uZDNk
NTMzNWQ4ZDM3MWQ2ZDIwYWRmY2Q1MTFlOTkxYWZiZmM0OGY1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAg
ICAgIFtKU0NdIEludHJvZHVjZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OIC8gSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OIHRvIG1ha2UgaG9zdCBmdW5jdGlvbiBkZWZpbml0aW9uIGVhc3ktdG8t
c2Nhbm5lZCBmb3IgSklULWNhZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIEpTQ19IT1NUX0NBTEwgdG8gSlNDX0hPU1RfQ0FMTF9BVFRS
SUJVVEUsIGFuZCBpbnRyb2R1Y2UgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTi4KKyAgICAgICAgV2UgYWxzbyBpbnRyb2R1Y2UgSlNDX0FOTk9UQVRF
X0hPU1RfRlVOQ1RJT04gaWYgdGhlIGZ1bmN0aW9uIGlzIG5vdCBkZWZpbmVkIGFzIGZyZWUtZnVu
Y3Rpb25bMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0
aW9ucy80ODYxOTE0L3doYXQtaXMtdGhlLW1lYW5pbmctb2YtdGhlLXRlcm0tZnJlZS1mdW5jdGlv
bi1pbi1jCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaDoKKwog
MjAyMC0wOS0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBvbiBBcHBsZSBXaW5kb3dzIHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBhMDk1ZTVmYWE0NTNjYzJlMWZhOGRjYTI3MDc5MGM3ZjRkMGViZGI0Li45ZGVhNDFhNjI4
MjI0ZTk0NGI2NTYxNTk4M2VkMDhmZDk3M2M1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMw
NyBAQAorMjAyMC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtKU0NdIEludHJvZHVjZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OIC8gSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OIHRvIG1ha2UgaG9zdCBmdW5jdGlvbiBkZWZpbml0aW9uIGVhc3kt
dG8tc2Nhbm5lZCBmb3IgSklULWNhZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBXZSBhbHNvIGFubm90YXRlIGN1
c3RvbSBnZXR0ZXJzIC8gc2V0dGVycyB3aXRoIEpJVF9PUEVSQVRJT04gc2luY2UgdGhleSBjYW4g
YmUgaW52b2tlZCBmcm9tIEpJVCBjb2RlLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
dWlsdGluQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NQnVpbHRpbkNvbnN0
cnVjdG9yPEpTQ2xhc3M+Ojpjb25zdHJ1Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FsbFRocm93VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUaGlzVHlwZUVycm9yRm9yQnVp
bHRpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6bWFrZUdldHRlclR5cGVFcnJvckZv
ckJ1aWx0aW5zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om1ha2VET01FeGNlcHRpb25G
b3JCdWlsdGlucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1JlYWRhYmxlQnl0ZVN0
cmVhbUFQSUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNXcml0YWJsZVN0
cmVhbUFQSUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6d2hlblNpZ25hbEFi
b3J0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6Okl0ZXJhdG9yVHJhaXRzPjo6bmV4dCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb24uaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRv
d1dlYktpdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGxQbHVnaW4pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1N0cnVjdHVyZWRDbG9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6Y2xvbmVBcnJheUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlclZpZXcpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChH
ZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRyYW1wb2xpbmVEZWZpbml0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQXR0cmlidXRlU2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVPcGVyYXRpb25UcmFtcG9saW5lRGVmaW5pdGlvbik6CisgICAgICAgIChHZW5lcmF0ZURl
ZmF1bHRUb0pTT05PcGVyYXRpb25EZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlTGVnYWN5
Q2FsbGVyRGVmaW5pdGlvbnMpOgorICAgICAgICAoR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0
aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSXRlcmFibGVEZWZpbml0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucyk6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2lu
ZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdp
bmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5k
b3dUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
RE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChX
ZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTU2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6cHJvdG90eXBl
Rm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5j
dGlvbkV4Y2l0aW5nRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rp
b25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNBdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VSZWFj
dGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VS
ZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VS
ZWFjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENh
bGxUcmFjZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDYWxsVHJh
Y2VyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRy
YWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3Vt
ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9w
ZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJs
ZVZhcmlhbnRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFy
Z3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJQcm90
b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQ3VzdG9tQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRp
YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1p
eGluT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlv
bmFsT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVS
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
UnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RET01KSVRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RET01KSVRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRBbnlB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJvb2xlYW5BdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJ5dGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVE9jdGV0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRTaG9y
dEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUTG9uZ0F0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklU
VW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklURmxv
YXRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVREb3VibGVBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0RE9NSklURG9tU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
T01KSVRVc3ZTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVE5vZGVB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25HZXRBdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRFbGVtZW50c0J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZh
dWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0
U3RyaW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05T
ZWNvbmRMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05TZWNvbmRMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1
bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJl
c3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVs
dFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFs
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZy
b3plbkFycmF5QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pT
T05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9K
U09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0
ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90
eXBlRnVuY3Rpb25Ub0pTT04pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25n
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVGb28pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVCYXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQ
cm90b3R5cGVGdW5jdGlvblRvSlNPTik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25Qb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
b21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFi
bGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJs
ZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEVuYWJsZWRGb3JDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudFRhcmdldENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbk5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQ
cml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5k
b3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RE
T01XaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmpl
Y3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9i
YWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RE9NSklUQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0
YW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9i
amVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RM
ZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1l
bW9yeUNvc3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25T
dGF0aWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNp
ZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZp
Y1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIx
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhp
bkNvbXBsZXhPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29u
ZGl0aW9uYWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9u
RnJvbVBhcnRpYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SXRlcmFibGVQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20pOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldD
dXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rp
b25UZXN0Q3VzdG9tRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpj
b25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmlu
Z0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNl
dHRlclN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2Rl
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVG
dW5jdGlvblZvaWRPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9u
U3RhdGljT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0p
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBM
aWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TWFwTGlrZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZFNldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5j
dGlvbk5hbWVkRGVsZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uR2V0dGVyTmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVk
U2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVu
Zm9yZ2VhYmxlT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5v
ZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROb2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
R2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJp
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialJlYWRPbmx5U3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWFk
T25seVRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljUmVhZE9ubHlMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yVGVzdFN1Yk9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25z
dHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpFbnVtQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbnVtQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpPY3RldEF0
dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqT2N0ZXRBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialNob3J0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2xhbXBlZFNob3J0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTG9uZ0F0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakxvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RP
YmpVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
bmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ0F0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqVXN2c3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialRlc3RPYmpBdHRy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialVuZm9yZ2VhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialN0cmluZ09ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
U3RyaW5nT2JqUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdO
dWxsYWJsZU9ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqU3Ry
aW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0
cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpEaWN0aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpEaWN0
aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25h
cnlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFy
eUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9u
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2Vx
dWVuY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVt
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpNZWRpYURldmljZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqWE1MT2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZs
ZWN0ZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVj
dGVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJl
ZmxlY3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZVN0YXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
VHlwZWRBcnJheUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVHlwZWRBcnJh
eUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ3VzdG9tQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iak9uZm9vKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9uZm9vKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak9ud2Via2l0Zm9vKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iak9ud2Via2l0Zm9vKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdp
dGhFeGVjU3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoQ2Fs
bFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI2Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakFueUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqT2JqZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9iamVj
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTXV0YWJsZVBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpTdHJhd2JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmF3YmVy
cnkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqRGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqSWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSWQp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqSGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpO
dWxsYWJsZURvdWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxs
YWJsZUxvbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlU3Ry
aW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlTG9uZ1Nl
dHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxh
YmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1U
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQ
cm9taXNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RSZWFkT25s
eVByb21pc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051
bGxhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0cmluZ2lmaWVy
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0FuZFdvcmtlckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhbGxKU1Rlc3RPYmopOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uU3RhdGljKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVh
dHVyZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2Vj
cmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVm
aW5lZE1ldGhvZFdpdGhBcmdzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9k
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2N0ZXRNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
YmpNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpJ
bnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0
cmluZ01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNp
YWxNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEVudW1BcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51
bGxhYmxlQnl0ZVN0cmluZ0FyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9k
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
UHVibGljQW5kUHJpdmF0ZU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aEV4ZWNTdGF0ZVZvaWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRB
cmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZE9wdGlvbmFsQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsQXRvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc051bGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0Vt
cHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91Ymxl
SXNOYU4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xv
bmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2ln
bmVkTG9uZ0xvbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU2VxdWVuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBbnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5v
bkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFy
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5k
Q2FsbGJhY2tGdW5jdGlvbkFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RX
aXRoQ2FsbGJhY2tBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE1ldGhvZDMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0
aW5ndWlzaGluZ1VuaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlv
bmFsVW5pb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25D
bGFzc01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRp
b25hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5n
ZU9uT3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNW
R0RvY3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5j
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9yYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRp
Y05vZGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9uTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VPdmVybG9hZGVkRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0
aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
VGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlz
ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE92ZXJsb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
cGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1l
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTGVnYWN5Q2FsbGVyTmFtZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
VmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9u
YWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OmNvbnN0
cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFJlYXNvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJl
YWRPbmx5TWFwTGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3RDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVBvcnRzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dFNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNBZGQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0FkZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
Q2xlYXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25J
ZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlv
bklkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9u
Z0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2Ny
aXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRl
c3RTdWJPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNC
dWZmZXJTb3VyY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQnVm
ZmVyU291cmNlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc0RvbVRpbWVT
dGFtcEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3Rh
bXBBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
U2V0U2hhZG93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxh
Ymxlc0FyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
RnVuY1dpdGhDbGFtcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNXb3JrZXJHbG9iYWxTY29w
ZVRlc3RPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29u
c3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5TGVuZ3RoR2V0
dGVyKToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcik6IERlbGV0ZWQuCisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwOgorICAgICAgICAoSlNDOjptZXRob2RMZW5ndGhHZXR0ZXIpOgorICAgICAgICAo
SlNDOjpSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsUnVudGltZU1ldGhvZCk6
IERlbGV0ZWQuCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmZhbGxi
YWNrT2JqZWN0R2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmZpZWxkR2V0dGVyKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Om1ldGhvZEdldHRlcik6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6cHV0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OlJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGlt
ZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjp0
aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IpOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxSdW50aW1lT2JqZWN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxSdW50aW1lQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6dGhyb3dJbnZh
bGlkQWNjZXNzRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVj
dC5oOgorCiAyMDIwLTA5LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIG1vcmUgaW5saW5lIGluaXRpYWxpemF0aW9uIGFuZCBjb25zdGV4cHIgaW4gV2Vi
QXVkaW8gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA1YzEzZWQzYThkOTA0Y2NjYWVlMGMwMWNiM2IzMzE3Mjll
ZjI1YTRkLi44MDYxYWU0ZTJjYmU0NTBmMzM5Zjk2NWRkZWZkM2I2NjljZGFlNzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04gLyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRl
ZmluaXRpb24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKFdlYktpdDo6Y2FsbE1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAo
V2ViS2l0OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViS2l0OjpjYWxs
TlBKU09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNvbnN0cnVjdFdpdGhDb25z
dHJ1Y3Rvcik6IERlbGV0ZWQuCisKIDIwMjAtMDktMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hUcmFjZXI6IGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBpbiBOZXR3b3JrU2Vzc2lvbjo6Zmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFp
bigpIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFw
cGVyT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0KaW5kZXggZTI5ZmFmOWY4Y2VkY2E3NmVkYWNlMzJhZmQwMTRjZGUwYWY1MjRmZC4uMzg4
MWVmNmQ0ZTdlMWRkYWQwYWY5ZWFjYWYwNzAxMTYxMjA2NTQ0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KQEAgLTY3LDEwICs2NywyNCBA
QCBib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OgogfQogCiBuYW1lc3BhY2UgSlNDIHsKLSAgICAKKwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0KTsKKwogdGVtcGxhdGUgPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6c19pbmZvID0g
eyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwordGVtcGxhdGUgPD4gY29u
c3QgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRzRGVzdHJ1
Y3Rpb24gPSB0cnVlOworCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFj
a09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpnZXRDYWxsRnVuY3Rpb24oKQoreworICAgIHJl
dHVybiBjYWxsSlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CiAKLXRlbXBsYXRl
PD4gY29uc3QgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOwordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQor
eworICAgIHJldHVybiBjb25zdHJ1Y3RKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsK
K30KIAogdGVtcGxhdGUgPD4KIFN0cnVjdHVyZSogSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBw
ZXJPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKQpAQCAtMTE4LDYgKzEzMiwxNiBAQCBJc29TdWJzcGFjZSog
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpzdWJzcGFjZUZvckltcGwoVk0m
IHZtLCBTdWJzcAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBK
U0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNhbGxJbXBsKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
QVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTQ19PQkpDX0FQ
SV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggN2YyOTlkYTk1NWI2NWM3OWU0ODdiN2ZhN2NhZThkMzU3NDQ4
NWZlYi4uNDg3Nzc4ODkzMGVlNDJmZGFiMzU4NzU5ZGJmNzE0MmYwMzZhMzNiYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcApA
QCAtNjEsNyArNjEsOSBAQCB2b2lkIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZGVzdHJveShKU0Nl
bGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja0NvbnN0cnVjdG9yKj4oY2VsbCkt
PkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6fkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcigpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0NhbGxiYWNrQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NhbGxiYWNr
Q29uc3RydWN0b3IpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNDYWxs
YmFja0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1
Y3RJbXBsPEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3Bw
CmluZGV4IDYwYjcyNzZiODFiMDVkOTEzZDllYzRmMmRjNTNhZDE4YTRkMGU3YzAuLjIxZGNiMmVi
OTkyNmJkMzhjMjE3NWNmZDUxMTk5ZWQzYzViNDA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTM1LDcgKzM1LDkgQEAgU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbik7
CiAKIGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxi
YWNrRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTQ2FsbGJhY2tGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQ2FsbGJhY2tGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gQVBJ
Q2FsbGJhY2tGdW5jdGlvbjo6Y2FsbEltcGw8SlNDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmNwcAppbmRleCBhODJmYWExZmFmODhlNzY4NGM2NTVjOWE2MDY4OTU2YzdjY2U2
OGE5Li5mYjQ2YTU1OWIzMDkzMTEwMmM0YmI4MGJmMWFhYWJiNWMxYzQyOWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5jcHAKQEAgLTMxLDEzICsz
MSw0MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY2FsbEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU05vbkZpbmFsT2JqZWN0Q2FsbGJhY2tPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTR2xvYmFsT2JqZWN0
Q2FsbGJhY2tPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCk7CisKIC8vIERlZmluZSB0aGUgdHdvIHR5
cGVzIG9mIEpTQ2FsbGJhY2tPYmplY3RzIHdlIHN1cHBvcnQuCiB0ZW1wbGF0ZSA8PiBjb25zdCBD
bGFzc0luZm8gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0ZW1wbGF0ZSA8PiBjb25zdCBDbGFz
c0luZm8gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OnNfaW5mbyA9IHsgIkNhbGxi
YWNrR2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwotCiB0ZW1wbGF0ZTw+IGNvbnN0IGJv
b2wgSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6bmVlZHNEZXN0cnVjdGlvbiA9
IHRydWU7CiB0ZW1wbGF0ZTw+IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9i
amVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVG
dW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpnZXRDYWxsRnVuY3Rp
b24oKQoreworICAgIHJldHVybiBjYWxsSlNOb25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0Owor
fQorCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9u
RmluYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCit7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwordGVtcGxhdGU8PgorUmF3
TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxG
dW5jdGlvbigpCit7CisgICAgcmV0dXJuIGNhbGxKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0
OworfQorCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpT
R2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAgIHJldHVybiBjb25z
dHJ1Y3RKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0OworfQorCiB0ZW1wbGF0ZTw+CiBKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0PiogSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9i
amVjdD46OmNyZWF0ZShWTSYgdm0sIEpTQ2xhc3NSZWYgY2xhc3NSZWYsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewpAQCAtODQsNCArMTEyLDI0IEBAIElzb1N1YnNwYWNlKiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwgU3Vic3BhY2VBCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNO
b25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9
CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU05vbkZpbmFsT2JqZWN0Q2Fs
bGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAg
cmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzZGYyYTQ0YzdhZDVkZDJkYmEyMjZjNzQ3MmRlOWQw
ZDkzNTA5ODI4Li43Nzk3M2RhNDQ5MzM4MTc3Y2IwNjEyMDFmZmM2ZTI5ZTQ0NDJjY2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTgyLDYg
KzE4Miw5IEBAIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgZmluYWwgOiBwdWJsaWMgUGFyZW50IHsK
IAogICAgIHVzaW5nIFBhcmVudDo6bWV0aG9kVGFibGU7CiAKKyAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY2FsbEltcGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKyAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SW1wbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OworICAgCiBwcml2YXRlOgogICAgIEpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBKU0NsYXNzUmVmLCB2b2lkKiBkYXRhKTsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KFZNJiwgSlNDbGFzc1JlZiwgU3RydWN0dXJlKik7CkBAIC0yMjMsMTAgKzIyNiwxMiBAQCBjbGFz
cyBKU0NhbGxiYWNrT2JqZWN0IGZpbmFsIDogcHVibGljIFBhcmVudCB7CiAgCiAgICAgc3RhdGlj
IEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoSlNWYWx1ZSk7CiAgICAgc3RhdGlj
IEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoRW5jb2RlZEpTVmFsdWUpOworCisg
ICAgdXNpbmcgUmF3TmF0aXZlRnVuY3Rpb24gPSBFbmNvZGVkSlNWYWx1ZShKU0NfSE9TVF9DQUxM
X0FUVFJJQlVURVMqKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworCisgICAgc3RhdGlj
IFJhd05hdGl2ZUZ1bmN0aW9uIGdldENhbGxGdW5jdGlvbigpOworICAgIHN0YXRpYyBSYXdOYXRp
dmVGdW5jdGlvbiBnZXRDb25zdHJ1Y3RGdW5jdGlvbigpOwogIAotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLSAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUo
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBzdGF0aWNGdW5jdGlvbkdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApp
bmRleCA0NWU2YWVmOTliOTA2NTBkNTBkNmY0NGVjYzFhNjk3MTZiNjA1MTQyLi4yZTM0ZGY4MjEz
MWFhYzVmYThhMzAwYjYyNmRjMDQzYmEzZTZiZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNDQ0LDcgKzQ0
NCw3IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqIGNlbGwpCiAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0
LT5jbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsK
ICAgICAgICAgaWYgKGpzQ2xhc3MtPmNhbGxBc0NvbnN0cnVjdG9yKSB7CiAgICAgICAgICAgICBj
b25zdHJ1Y3REYXRhLnR5cGUgPSBDYWxsRGF0YTo6VHlwZTo6TmF0aXZlOwotICAgICAgICAgICAg
Y29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Q7CisgICAgICAgICAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGdldENvbnN0cnVjdEZ1bmN0aW9uKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTQ1Miw3ICs0NTIsNyBAQCBD
YWxsRGF0YSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5jb2RlZEpTVmFsdWUgSlND
YWxsYmFja09iamVjdDxQYXJlbnQ+Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MjEsNyAr
NTIxLDcgQEAgQ2FsbERhdGEgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxsRGF0YShK
U0NlbGwqIGNlbGwpCiAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0LT5j
bGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgaWYgKGpzQ2xhc3MtPmNhbGxBc0Z1bmN0aW9uKSB7CiAgICAgICAgICAgICBjYWxsRGF0
YS50eXBlID0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2ZTsKLSAgICAgICAgICAgIGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNhbGw7CisgICAgICAgICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBnZXRDYWxsRnVuY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNTI5LDcgKzUyOSw3IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50
PgotRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorRW5jb2RlZEpTVmFs
dWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShn
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rp
b24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1t
CmluZGV4IGIzNWFmMjk5MmQ3ZGNlOGI2ODM2NTI2NzljZWU5NTRmOTA4NzJlMmUuLjRiY2Q4ZjQ1
ZDljNDcyN2FiNDYyMjIyYjVkNTU2ZjdlYzU1MTdiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQpAQCAtNTM1LDEyICs1MzUsMTUg
QEAgc3RhdGljIEpTT2JqZWN0UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uQ2FsbEFzQ29uc3RydWN0
b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnQKIAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0Nh
bGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1
bmN0aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0T2JqQ0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bE9iakNDYWxsYmFja0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpj
YWxsSW1wbDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RPYmpDQ2Fs
bGJhY2tGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RPYmpDQ2FsbGJhY2tG
dW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0SW1wbDxP
YmpDQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xv
YmFsT2JqZWN0LmNwcAppbmRleCBkOGFmZTgwOGYxMTAyNjM0YmNjMDkwNWRmNzQzZTJjZTc4ZmYx
ZDcyLi5iZmNjMGQ4NDQxOTYyYzJjOTQxMjQ3YWQ3MzAyM2U0N2M5YzNkNGU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xv
YmFsT2JqZWN0LmNwcApAQCAtNTQsMTAgKzU0LDI0IEBAIHZvaWQgSlNBUElXcmFwcGVyR2xvYmFs
T2JqZWN0SGFuZGxlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
CiAKIG5hbWVzcGFjZSBKU0MgewogCi10ZW1wbGF0ZSA8PiBjb25zdCBDbGFzc0luZm8gSlNDYWxs
YmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7ICJKU0FQSVdy
YXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNBUElXcmFwcGVy
R2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwogCit0ZW1wbGF0ZSA8PiBjb25zdCBDbGFzc0lu
Zm8gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7
ICJKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0ZW1wbGF0ZTw+
IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+Ojpu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9u
IEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q2FsbEZ1bmN0
aW9uKCkKK3sKKyAgICByZXR1cm4gY2FsbEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNr
T2JqZWN0OworfQorCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09i
amVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCit7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2Jq
ZWN0OworfQorCiB0ZW1wbGF0ZSA8PgogSXNvU3Vic3BhY2UqIEpTQ2FsbGJhY2tPYmplY3Q8SlNB
UElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwgU3Vic3BhY2VB
Y2Nlc3MgbW9kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xp
Yi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
Z2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcAppbmRleCAyMzM0YTFiNTdmMjllYzIwZjQ5
YjkxOWQyMTQ5ZDFiN2U4MDAxZjAwLi41MmU2MDYwODFiZjdhODk1NmExNzkzZjRkNmU2YzU4YzNm
YmE5ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElX
cmFwcGVyT2JqZWN0R0xpYi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGli
L0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCkBAIC02NywxMCArNjcsMjQgQEAgYm9vbCBKU0FQ
SVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlND
OjpIYW5kbGU8SlNDOjoKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXRlbXBsYXRlIDw+IGNvbnN0IENs
YXNzSW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnNfaW5mbyA9IHsg
IkpTQVBJV3JhcHBlck9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdCk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQSVdyYXBwZXJPYmpl
Y3RDYWxsYmFja09iamVjdCk7CiAKK3RlbXBsYXRlIDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxi
YWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnNfaW5mbyA9IHsgIkpTQVBJV3JhcHBlck9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNDYWxsYmFja09iamVjdCkgfTsKIHRlbXBsYXRlPD4gY29uc3QgYm9vbCBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCit0
ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBw
ZXJPYmplY3Q+OjpnZXRDYWxsRnVuY3Rpb24oKQoreworICAgIHJldHVybiBjYWxsSlNBUElXcmFw
cGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CisKK3RlbXBsYXRlIDw+CitSYXdOYXRpdmVGdW5j
dGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENvbnN0cnVjdEZ1
bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gY29uc3RydWN0SlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJh
Y2tPYmplY3Q7Cit9CisKIHRlbXBsYXRlIDw+CiBJc29TdWJzcGFjZSogSlNDYWxsYmFja09iamVj
dDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpzdWJzcGFjZUZvckltcGwoVk0mIHZtLCBTdWJzcGFjZUFj
Y2VzcyBtb2RlKQogewpAQCAtOTAsNiArMTA0LDE2IEBAIFN0cnVjdHVyZSogSlNDYWxsYmFja09i
amVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2Jh
CiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOwogfQogCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNhbGxJ
bXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVy
biBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNvbnN0cnVjdEltcGwoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCiBKU0FQSVdyYXBwZXJPYmplY3Q6OkpTQVBJV3Jh
cHBlck9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGli
L0pTQ0NhbGxiYWNrRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGli
L0pTQ0NhbGxiYWNrRnVuY3Rpb24uY3BwCmluZGV4IGM2MDRkZWViNDM5NWRlMWQ1ODFlYTZjMDk0
NmI1YjQ5ZDg3MDFkMDQuLjIwZjE3MjJmNDZlMDY2NGI0NWFjNWJkY2JlOTRiOTQzODc3ODcyOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDYWxsYmFja0Z1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJh
Y2tGdW5jdGlvbi5jcHAKQEAgLTUyLDEyICs1MiwxNSBAQCBzdGF0aWMgSlNPYmplY3RSZWYgY2Fs
bEFzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnRleHQsIEpTT2JqZWN0UmVmIGNv
bgogCiBjb25zdCBDbGFzc0luZm8gSlNDQ2FsbGJhY2tGdW5jdGlvbjo6c19pbmZvID0geyAiQ2Fs
bGJhY2tGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNDQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTQ0NhbGxiYWNrRnVuY3Rpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNDQ2FsbGJhY2tGdW5jdGlvbik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NDYWxsYmFja0Z1bmN0aW9u
KTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NDYWxsYmFja0Z1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsSW1wbDxKU0NDYWxsYmFja0Z1bmN0
aW9uPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQ0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0SlNDQ2FsbGJhY2tGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gQVBJQ2Fs
bGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0SW1wbDxKU0NDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCmlu
ZGV4IDdiMmNjZGM3M2VmNzVkYjVmYTBhNzBiYWE2MjRlYTA5OGZhZDYzMTMuLmFkYmI1ZTU3YzM0
NTFjM2QzYTg4ZjgxOGY3ZWMwNTdjZWI1OTg4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGUuY3BwCkBAIC0zMywyNCArMzMsMjQgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uR2V0SW50ZXJuYWxQcm9w
ZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50
ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlw
ZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJv
eHlUYXJnZXRWYWx1ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbldlYWtNYXBTaXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uV2Vha01hcEVudHJpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrU2V0U2l6ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbldlYWtTZXRFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lv
bihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0ZUV2YWx1
YXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0ZVNhdmVk
UmVzdWx0QWxpYXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25T
dWJ0eXBlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdl
dEludGVybmFsUHJvcGVydGllcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5h
bWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24pOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklz
UHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9u
UHJveHlUYXJnZXRWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbldlYWtNYXBFbnRyaWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0U2l6ZSk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uV2Vha1NldEVudHJpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkl0ZXJhdG9yRW50cmllcyk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVycyk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24pOworCitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJp
YnV0ZUV2YWx1YXRlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcyk7CiAKIGNvbnN0
IENsYXNzSW5mbyBKU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZTo6c19pbmZvID0geyAiSW5q
ZWN0ZWRTY3JpcHRIb3N0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZSkgfTsKIApAQCAtNzks
NyArNzksNyBAQCB2b2lkIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIEpTQ19OQVRJVkVfR0VUVEVS
X1dJVEhPVVRfVFJBTlNJVElPTigic2F2ZWRSZXN1bHRBbGlhcyIsIGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcywgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZUV2YWx1YXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlQXR0cmlidXRlRXZhbHVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyLDcgKzkyLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUF0dHJpYnV0ZUV2YWx1YXRlKEpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNh
c3RlZFRoaXMtPmV2YWx1YXRlKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRS
ZXN1bHRBbGlhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUF0dHJpYnV0ZVNhdmVkUmVzdWx0QWxpYXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEw
NSw3ICsxMDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY2FzdGVkVGhpcy0+c2F2ZWRSZXN1bHRBbGlhcyhnbG9iYWxPYmplY3QpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkludGVybmFsQ29uc3RydWN0b3JO
YW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50
ZXJuYWxDb25zdHIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmludGVy
bmFsQ29uc3RydWN0b3JOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbklzSFRNTEFsbENvbGxlY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24sIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+aXNIVE1MQWxsQ29sbGVjdGlvbihn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdl
dHRlclR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ0LDcgKzE0NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbklzUHJvbWlzZVJlamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRU
aGlzLT5pc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlU
YXJnZXRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvblByb3h5VGFyZ2V0VmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlz
LT5wcm94eVRhcmdldFZhbHVlKHZtLCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01h
cFNpemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbldlYWtNYXBTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzAsNyArMTcwLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uV2Vha01hcFNpemUoSlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNh
c3RlZFRoaXMtPndlYWtNYXBTaXplKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbldlYWtNYXBFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTgzLDcgKzE4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT53ZWFrTWFwRW50cmllcyhnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0U2l6ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldFNpemUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0U2l6
ZShKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+d2Vha1NldFNpemUo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bldlYWtTZXRFbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDksNyArMjA5LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3Rl
ZFRoaXMtPndlYWtTZXRFbnRyaWVzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbkl0ZXJhdG9yRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMjIsNyArMjIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPml0ZXJhdG9yRW50cmllcyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0
YW5jZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNSw3ICsyMzUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25R
dWVyeUluc3RhbmNlcwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+cXVl
cnlJbnN0YW5jZXMoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVl
cnlIb2xkZXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0OCw3ICsy
NDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMoSgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY2FzdGVkVGhpcy0+cXVlcnlIb2xkZXJzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29w
ZUV4dGVuc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYxLDcgKzI2MSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvbkV2YWx1YXRlV2l0aFNjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlz
LT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25TdWJ0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
NzQsNyArMjc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uU3VidHlwZShKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnN1YnR5cGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI4Nyw3ICsyODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+ZnVuY3Rpb25EZXRhaWxzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldEludGVybmFsUHJvcGVy
dGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFt
ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKaW5kZXggMjg4NzhkYzQxYWFmOTVkMDljMTk2ZDcw
MDg3NjcyN2RlNWMyOGU2NS4uYWI1YThhY2QwMzJmYjgyMTU5MzRjN2U0MGEwMzMyZjg2YTBiOGIx
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3Jp
cHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcApAQCAtMzQsMTkgKzM0LDE5
IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVu
Y3Rpb25zLgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0
Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25TY29wZURlc2NyaXB0
aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0
ZVdpdGhTY29wZUV4dGVuc2lvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNjb3BlRGVzY3JpcHRpb25zKTsK
IAogLy8gQXR0cmlidXRlcy4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
SmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZUxpbmUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNv
bHVtbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1l
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWluKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRD
YWxsRnJhbWVJc1RhaWxEZWxldGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1
dGVDYWxsZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDb2x1bW4p
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1l
QXR0cmlidXRlRnVuY3Rpb25OYW1lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hhaW4pOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlVGhpc09i
amVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVUeXBlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
SmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQpOwogCiBjb25zdCBDbGFzc0luZm8gSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlOjpzX2luZm8gPSB7ICJKYXZhU2NyaXB0Q2FsbEZy
YW1lIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUpIH07CiAKQEAgLTY5LDcgKzY5LDcgQEAg
dm9pZCBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBKU0NfTkFUSVZFX0dFVFRFUl9XSVRIT1VUX1RS
QU5TSVRJT04oImlzVGFpbERlbGV0ZWQiLCBqc0phdmFTY3JpcHRDYWxsRnJhbWVJc1RhaWxEZWxl
dGVkLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNj
ZXNzb3IpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENh
bGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFs
dWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODIsNyArODIs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVBy
b3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FzdGVkVGhpcy0+ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRD
YWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNjb3BlRGVzY3JpcHRpb25zKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlw
dGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk1LDcgKzk1LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNj
b3BlRGVzY3JpcHQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnNjb3Bl
RGVzY3JpcHRpb25zKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDYWxsZXIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihKU0dsb2JhbE9iamVjdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+Y2FsbGVyKGdsb2JhbE9iamVjdCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZVNvdXJjZUlEKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxG
cmFtZUF0dHJpYnV0ZVNvdXJjZUlELCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjEsNyArMTIx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVB
dHRyaWJ1dGVTb3VyY2VJRChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNhc3RlZFRoaXMtPnNvdXJjZUlEKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUxpbmUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTM0LDcgKzEzNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZShKU0dsb2JhbE9iamVjdCoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmxpbmUoZ2xvYmFsT2JqZWN0
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZy
YW1lQXR0cmlidXRlQ29sdW1uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxG
cmFtZUF0dHJpYnV0ZUNvbHVtbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ3LDcgKzE0Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlQ29sdW1uKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
YXN0ZWRUaGlzLT5jb2x1bW4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUZ1bmN0aW9u
TmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTYwLDcgKzE2MCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25O
YW1lKEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5mdW5j
dGlvbk5hbWUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWluLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNzMsNyArMTczLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWluKEpTR2xvYmFsT2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnNjb3BlQ2hhaW4oZ2xvYmFs
T2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlVGhpc09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFT
Y3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xODYsNyArMTg2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnRoaXNPYmplY3QoZ2xvYmFsT2JqZWN0KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmli
dXRlVHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1
dGVUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlKEpT
R2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+dHlw
ZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0ph
dmFTY3JpcHRDYWxsRnJhbWVJc1RhaWxEZWxldGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2
YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKaW5kZXggZmVjYWI5ZWMwYmRkNDBkOTdmMzk5ZmViMjNlMTg4MWRkMzIyNTQw
MS4uZDBhNDhmMzM4ZWY5ZGEzNDVhYjY4YzUyZGFhMWE2MGRmNzhkNjJjNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKQEAgLTI0OSwxMTQgKzI0OSwxMTQgQEAgY2xhc3MgV29ya2VycyB7CiB9OwogCiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlR2xvYmFs
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
Q3JlYXRlR2xvYmFsT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCk7CiAjaWYgVVNFKEJJR0lOVDMyKQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCaWdJbnQzMihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25DcmVhdGVCaWdJbnQzMik7CiAjZW5kaWYKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uVXNlQmlnSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNCaWdJbnQz
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Jc0hlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcmlu
dFN0ZE91dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludFN0ZEVycihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25E
ZWJ1ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmliZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmli
ZUFycmF5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNsZWVwU2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25K
U0NTdGFjayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ0FuZFN3ZWVwKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZ1
bGxHQyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGVhcFNpemUo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlTWVtb3J5Rm9vdHByaW50KEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blJlc2V0TWVtb3J5UGVhayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25BZGRyZXNzT2YoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uVmVyc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SdW4oSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVu
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFN0cmlu
ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkRmlsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja1N5bnRh
eChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkbGluZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmVjaXNlVGlt
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bk5vREZHKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5vRlRMKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5vT1NSRXhp
dEZ1enppbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxlcklz
T01HQ29tcGlsZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDT3B0aW9ucyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZW9wdGltaXphdGlvblJldHJ5Q291bnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVHJhbnNmZXJBcnJh
eUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GYWlsTmV4dE5ld0NvZGVCbG9jayhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIE5PX1JFVFVSTl9XSVRIX1ZBTFVFIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25RdWl0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZhbHNl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblVuZGVmaW5lZDEoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVW5kZWZpbmVk
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Jc0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUHVyZU5hTihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25FZmZlY3RmdWw0MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JZGVudGl0eShK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbE1h
c3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0N1c3RvbVByb3BlcnRpZXMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRyYWlu
TWljcm90YXNrcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRUaW1lb3V0KEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blJlbGVhc2VXZWFrUmVmcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxp
dmVDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25JczMyQml0UGxhdGZvcm0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2hlY2tN
b2R1bGVTeW50YXgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJv
ZmlsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZXNldFN1cGVyU2FtcGxlclN0YXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuc3VyZUFycmF5U3Rv
cmFnZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VCaWdJbnQzMik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbklzQmlnSW50MzIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Jc0hlYXBCaWdJbnQpOworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkT3V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25EZWJ1Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkRlc2NyaWJlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRGVzY3JpYmVBcnJheSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblNsZWVwU2Vjb25kcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkpTQ1N0YWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR0NBbmRTd2VlcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkZ1bGxHQyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVkZW5H
Qyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhlYXBTaXplKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlTWVtb3J5Rm9v
dHByaW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVzZXRN
ZW1vcnlQZWFrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQWRk
cmVzc09mKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVmVyc2lv
bik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJ1bik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJ1blN0cmluZyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Mb2FkU3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVhZEZpbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DaGVja1N5bnRheCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblJlYWRsaW5lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uUHJlY2lzZVRpbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9ERkcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25Ob0ZUTCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbk5vT1NSRXhpdEZ1enppbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxlcklzT01HQ29tcGlsZWQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25KU0NPcHRpb25zKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVvcHRpbWl6YXRpb25SZXRyeUNvdW50
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVHJhbnNmZXJBcnJh
eUJ1ZmZlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZhaWxO
ZXh0TmV3Q29kZUJsb2NrKTsKK3N0YXRpYyBOT19SRVRVUk5fV0lUSF9WQUxVRSBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUXVpdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkZhbHNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uVW5kZWZpbmVkMSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblVuZGVmaW5lZDIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25Jc0ludDMyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
SXNQdXJlTmFOKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRWZm
ZWN0ZnVsNDIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JZGVu
dGl0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk1ha2VNYXNx
dWVyYWRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxN
YXNxdWVyYWRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhh
c0N1c3RvbVByb3BlcnRpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25EcmFpbk1pY3JvdGFza3MpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRUaW1lb3V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlMaXZlQ291bnQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3Ry
eURlYWRDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklz
MzJCaXRQbGF0Zm9ybSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkNoZWNrTW9kdWxlU3ludGF4KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90Rm9y
R0NEZWJ1Z2dpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25S
ZXNldFN1cGVyU2FtcGxlclN0YXRlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKTsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklM
RVIpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblN0YXJ0U2Ft
cGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFj
ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0YWNrVHJhY2VzKTsK
ICNlbmRpZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1h
eEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc3luY1Rlc3RTdGFydChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Bc3luY1Rlc3RQYXNzZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWF4QXJndW1lbnRzKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3luY1Rlc3RQYXNzZWQpOwog
CiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9yeU1vZGUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2ViQXNz
ZW1ibHlNZW1vcnlNb2RlKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRTYW1wbGluZ0Zs
YWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNsZWFyU2FtcGxpbmdGbGFncyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25T
ZXRTYW1wbGluZ0ZsYWdzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQ2xlYXJTYW1wbGluZ0ZsYWdzKTsKICNlbmRpZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldFJhbmRvbVNlZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc1JvcGUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2Fs
bGVyU291cmNlT3JpZ2luKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckNyZWF0ZVJlYWxtKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkRvbGxhckV2YWxTY3JpcHQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdl
bnRTdGFydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlY2VpdmVCcm9hZGNhc3QoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFy
QWdlbnRTbGVlcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJB
Z2VudExlYXZpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRNb25vdG9uaWNOb3coSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uV2FpdEZvclJlcG9ydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IZWFwQ2FwYWNp
dHkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNzKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRp
c2FibGVSaWNoU291cmNlSW5mbyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25NYWxsb2NJbkFMb29wKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblRvdGFsQ29tcGlsZVRpbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRVbmhh
bmRsZWRSZWplY3Rpb25DYWxsYmFjayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc0RvdWJsZU51bWJlcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25HZXRSYW5kb21TZWVkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uU2V0UmFuZG9tU2VlZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbklzUm9wZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRvbGxhckNyZWF0ZVJlYWxtKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFJlY2VpdmVCcm9hZGNhc3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFJl
cG9ydCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFn
ZW50U2xlZXApOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xs
YXJBZ2VudEJyb2FkY2FzdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkRvbGxhckFnZW50R2V0UmVwb3J0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRMZWF2aW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRNb25vdG9uaWNOb3cpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25XYWl0Rm9yUmVwb3J0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGVhcENhcGFjaXR5KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNzKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGlzYWJsZVJpY2hTb3VyY2VJbmZvKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWFsbG9jSW5BTG9vcCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblRvdGFsQ29tcGlsZVRp
bWUpOworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFVuaGFu
ZGxlZFJlamVjdGlvbkNhbGxiYWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQXNEb3VibGVOdW1iZXIpOwogCiBzdHJ1Y3QgU2NyaXB0IHsKICAgICBlbnVtIGNs
YXNzIFN0cmljdE1vZGUgewpAQCAtMTI2MiwxMCArMTI2MiwxNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgcHJpbnRJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludFN0ZE91dChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1cm4gcHJp
bnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0KTsgfQotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50U3RkRXJyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBwcmludEludGVybmFs
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRlcnIpOyB9CitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25QcmludFN0ZE91dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0KTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uUHJpbnRTdGRFcnIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIHN0ZGVycik7Cit9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EZWJ1ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlYnVnLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjgxLDcgKzEyODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVidWcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmliZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMTI4OSw3
ICsxMjk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlc2NyaWJl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzU3RyaW5nKHZtLCB0b1N0cmluZyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVzY3JpYmVBcnJheShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlQXJyYXksIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgaWYgKGNhbGxG
cmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKQEAgLTEzMDAsNyArMTMwNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmliZUFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0s
IHRvU3RyaW5nKCI8QnV0dGVyZmx5OiAiLCBSYXdQb2ludGVyKG9iamVjdC0+YnV0dGVyZmx5KCkp
LCAiOyBwdWJsaWMgbGVuZ3RoOiAiLCBvYmplY3QtPmdldEFycmF5TGVuZ3RoKCksICI7IHZlY3Rv
ciBsZW5ndGg6ICIsIG9iamVjdC0+Z2V0VmVjdG9yTGVuZ3RoKCksICI+IikpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNsZWVwU2Vjb25kcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblNsZWVwU2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTMzMSw3ICsxMzM4LDcgQEAgY2xhc3MgRnVuY3Rpb25KU0NTdGFja0Z1bmN0b3IgewogICAgIFN0
cmluZ0J1aWxkZXImIG1fdHJhY2U7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uSlNDU3RhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25KU0NTdGFjaywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU3RyaW5nQnVpbGRlciB0cmFj
ZTsKQEAgLTEzNDMsNyArMTM1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25KU0NTdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdDQW5k
U3dlZXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0p
OwpAQCAtMTM1MSw3ICsxMzU4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkdDQW5kU3dlZXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZtLmhlYXAuc2l6ZUFmdGVyTGFzdEZ1bGxDb2xs
ZWN0aW9uKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZ1
bGxHQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRnVsbEdDLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKQEAgLTEzNTksNyArMTM2Niw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GdWxsR0MoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2bS5o
ZWFwLnNpemVBZnRlckxhc3RGdWxsQ29sbGVjdGlvbigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVkZW5HQywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CkBAIC0x
MzY3LDcgKzEzNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRWRl
bkdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC5zaXplQWZ0ZXJMYXN0RWRlbkNvbGxlY3Rpb24o
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGVhcFNpemUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkhlYXBTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKQEAgLTE0MjYsMTQgKzE0MzMsMTQgQEAgY2xhc3MgSlND
TWVtb3J5Rm9vdHByaW50IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogY29uc3Qg
Q2xhc3NJbmZvIEpTQ01lbW9yeUZvb3RwcmludDo6c19pbmZvID0geyAiTWVtb3J5Rm9vdHByaW50
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U0NNZW1vcnlGb290cHJpbnQpIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25DcmVhdGVNZW1vcnlGb290cHJpbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU1lbW9y
eUZvb3RwcmludCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9j
ayh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0NNZW1vcnlGb290cHJpbnQ6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25SZXNldE1lbW9yeVBlYWsoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBNZW1vcnlGb290cHJpbnQ6OnJlc2V0UGVh
aygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC0xNDQy
LDcgKzE0NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVzZXRN
ZW1vcnlQZWFrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogLy8gVGhpcyBmdW5jdGlvbiBp
cyBub3QgZ2VuZXJhbGx5IHZlcnkgaGVscGZ1bCBpbiA2NC1iaXQgY29kZSBhcyB0aGUgdGFnIGFu
ZCBwYXlsb2FkCiAvLyBzaGFyZSBhIHJlZ2lzdGVyLiBCdXQgaW4gMzItYml0IEpJVGVkIGNvZGUg
dGhlIHRhZyBtYXkgbm90IGJlIGNoZWNrZWQgaWYgYW4KIC8vIG9wdGltaXphdGlvbiByZW1vdmVz
IHR5cGUgY2hlY2tpbmcgcmVxdWlyZW1lbnRzLCBzdWNoIGFzIGluID09PS4KLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25BZGRyZXNzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFkZHJl
c3NPZiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIGlmICghdmFsdWUuaXND
ZWxsKCkpCkBAIC0xNDUzLDE0ICsxNDYwLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25BZGRyZXNzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGCiAg
ICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uVmVyc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25WZXJzaW9uLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKSkKIHsKICAgICAvLyBXZSBuZWVkIHRoaXMgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkg
d2l0aCB0aGUgTW96aWxsYSBKUyB0ZXN0cyBidXQgZm9yIG5vdwogICAgIC8vIHdlIGRvbid0IGFj
dHVhbGx5IGRvIGFueSB2ZXJzaW9uLXNwZWNpZmljIGhhbmRsaW5nCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblJ1bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJ1biwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTQ5NSw3ICsxNTAyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvblJ1bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0b3BXYXRjaC5nZXRFbGFw
c2VkTVMoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVu
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUnVuU3RyaW5nLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNTI0LDcgKzE1MzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUnVuU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVhbG0pOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxv
YWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NTMsNyArMTU2MCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFN0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkxvYWRTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1
NjgsNyArMTU3NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2Fk
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUmVhZEZpbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZWFkRmlsZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTU5OSw3ICsxNjA2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRGaWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja1N5bnRheChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNoZWNrU3ludGF4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjIzLDcg
KzE2MzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2hlY2tTeW50
YXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogfQogCiAjaWYgRU5BQkxFKFNBTVBM
SU5HX0ZMQUdTKQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFNhbXBs
aW5nRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICB1bnNpZ25lZCBm
bGFnID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQo
aSkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSk7CkBAIC0xNjMzLDcgKzE2NDAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2xlYXJTYW1wbGluZ0Zs
YWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MsIChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
Y2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICB1bnNpZ25lZCBmbGFn
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSku
dG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSk7CkBAIC0xNjQ0LDEyICsxNjUxLDEyIEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhCiB9CiAjZW5kaWYKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkdldFJhbmRvbVNlZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFJhbmRvbVNlZWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdsb2JhbE9iamVjdC0+d2Vha1JhbmRvbSgpLnNl
ZWQoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0UmFu
ZG9tU2VlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFJhbmRvbVNlZWQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE2NjAsNyArMTY2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25TZXRSYW5kb21TZWVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9wZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
SXNSb3BlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNWYWx1ZSBhcmd1bWVudCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgaWYgKCFhcmd1
bWVudC5pc1N0cmluZygpKQpAQCAtMTY2OSw3ICsxNjc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9wZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbighaW1wbCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbGVyU291cmNlT3JpZ2lu
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbGVyU291cmNlT3JpZ2luLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBTb3VyY2VPcmlnaW4gc291cmNlT3JpZ2lu
ID0gY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pOwpAQCAtMTY3OCw3ICsxNjg1LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdp
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
U3RyaW5nKHZtLCBzb3VyY2VPcmlnaW4uc3RyaW5nKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRsaW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZWFkbGlu
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZl
Y3RvcjxjaGFyLCAyNTY+IGxpbmU7CiAgICAgaW50IGM7CkBAIC0xNjkyLDIyICsxNjk5LDIyIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkbGluZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0
cmluZyhnbG9iYWxPYmplY3QtPnZtKCksIGxpbmUuZGF0YSgpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmVjaXNlVGltZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmVjaXNlVGltZSwg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25OZXZlcklubGlu
ZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTmV2ZXJJbmxpbmVGdW5jdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldE5ldmVySW5saW5lKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Ob0RGRyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vREZHLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoc2V0TmV2ZXJPcHRpbWl6ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9GVEwoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbk5vRlRMLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7CiAgICAgICAgIEZ1bmN0
aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGdldEV4ZWN1dGFibGVGb3JGdW5jdGlvbihjYWxs
RnJhbWUtPmFyZ3VtZW50KDApKTsKQEAgLTE3MTcsMjIgKzE3MjQsMjIgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5vRlRMKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9PU1JFeGl0RnV6emlu
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShzZXRDYW5ub3RVc2VPU1JFeGl0RnV6emluZyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk9w
dGltaXplTmV4dEludm9jYXRpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvcHRpbWl6
ZU5leHRJbnZvY2F0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKG51bWJlck9mREZHQ29tcGlsZXMoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxlcklzT01H
Q29tcGlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DYWxsZXJJc09NR0NvbXBpbGVk
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODY4LDE0ICsxODc1LDE0IEBAIFdvcmtlcnMmIFdv
cmtlcnM6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuICpyZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJDcmVhdGVSZWFsbShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRG9sbGFyQ3JlYXRlUmVhbG0sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgR2xv
YmFsT2JqZWN0KiByZXN1bHQgPSBHbG9iYWxPYmplY3Q6OmNyZWF0ZSh2bSwgR2xvYmFsT2JqZWN0
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgVmVjdG9yPFN0cmluZz4oKSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQtPmdldERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgIiQiKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRv
bGxhckV2YWxTY3JpcHQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OTcsNyArMTkwNCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJFdmFsU2NyaXB0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdl
bnRTdGFydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NTUsNyArMTk2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVjZWl2ZUJy
b2FkY2FzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50UmVjZWl2ZUJy
b2FkY2FzdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk4Myw3ICsxOTkwLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVjZWl2ZUJyb2FkY2Fz
dChKU0dsb2JhbE9iamVjdCoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgY2FsbGJhY2ssIGNhbGxEYXRhLCBqc051bGwoKSwg
YXJncykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxh
ckFnZW50UmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBv
cnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OTYsNyArMjAwMyw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlcG9ydChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50U2xl
ZXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMDA5LDcgKzIwMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRTbGVlcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50QnJvYWRjYXN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMDMzLDcgKzIwNDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9hZGNhc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAKQEAgLTIwNDQsMTcgKzIwNTEsMTcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkRvbGxhckFnZW50R2V0UmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzdHJpbmcpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50TGVhdmluZyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25E
b2xsYXJBZ2VudExlYXZpbmcsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudE1vbm90b25pY05vdyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25E
b2xsYXJBZ2VudE1vbm90b25pY05vdywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihNb25vdG9uaWNUaW1lOjpub3co
KS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYWl0Rm9yUmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25XYWl0Rm9yUmVwb3J0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCkBAIC0yMDY5LDEzICsy
MDc2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYWl0Rm9yUmVw
b3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1N0cmluZyh2bSwgc3RyaW5nKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25IZWFwQ2FwYWNpdHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhlYXBDYXBhY2l0
eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKHZtLmhlYXAuY2FwYWNpdHkoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRmxhc2hIZWFwQWNjZXNzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDkzLDEzICsyMTAw
LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GbGFzaEhlYXBBY2Nl
c3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkRpc2FibGVSaWNoU291cmNlSW5mbyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EaXNhYmxlUmljaFNvdXJjZUluZm8sIChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHN1cHBvcnRzUmljaFNvdXJjZUlu
Zm8gPSBmYWxzZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTWFsbG9jSW5BTG9vcChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25NYWxsb2NJbkFMb29wLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBWZWN0b3I8dm9pZCo+IHB0cnM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDUwMDA7
ICsraSkKQEAgLTIxMDksNyArMjExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25NYWxsb2NJbkFMb29wKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVG90YWxDb21waWxlVGltZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ub3RhbENvbXBp
bGVUaW1lLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNpZiBFTkFCTEUoSklU
KQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoSklUOjp0b3RhbENvbXBpbGVU
aW1lKCkubWlsbGlzZWNvbmRzKCkpKTsKQEAgLTIxMjcsNyArMjEzNCw3IEBAIHR5cGVuYW1lIHN0
ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfZnVuZGFtZW50YWw8VmFsdWVUeXBlPjo6dmFsdWU+Ojp0eXBl
IGFkZE9wdGlvbihWCiAgICAgb3B0aW9uc09iamVjdC0+cHV0RGlyZWN0KHZtLCBpZGVudGlmaWVy
LCBKU1ZhbHVlKHZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25KU0NPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25KU0NPcHRpb25zLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIEpTT2JqZWN0KiBvcHRpb25zT2JqZWN0ID0gY29uc3RydWN0RW1w
dHlPYmplY3QoZ2xvYmFsT2JqZWN0KTsKQEAgLTIxMzgsNyArMjE0NSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvcHRpb25zT2JqZWN0KTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlb3B0aW1pemF0aW9u
UmV0cnlDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVvcHRpbWl6YXRpb25SZXRyeUNvdW50LCAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgaWYgKGNhbGxGcmFt
ZS0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKQEAgLTIxNTAsNyArMjE1Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25SZW9wdGltaXphdGlvblJldHJ5Q291bnQoSlNHbG9iYWxPYmplY3Qq
LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihibG9jay0+cmVvcHRpbWl6
YXRpb25SZXRyeUNvdW50ZXIoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uVHJhbnNmZXJBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
blRyYW5zZmVyQXJyYXlCdWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNjgsMTQgKzIx
NzUsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblRyYW5zZmVyQXJy
YXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uRmFpbE5leHROZXdDb2RlQmxvY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZhaWxOZXh0TmV3
Q29kZUJsb2NrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHZtLnNldEZhaWxOZXh0TmV3
Q29kZUJsb2NrKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblF1aXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvblF1aXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgdm0uY29kZUNhY2hl
KCktPndyaXRlKHZtKTsKQEAgLTIxODgsMTEgKzIxOTUsMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblF1aXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW0KICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
RmFsc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSB7IHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGZhbHNlKSk7IH0KK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkZhbHNlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKK3sKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOworfQorCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25VbmRlZmluZWQxLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkK
K3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVW5kZWZpbmVkMShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsg
fQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVuZGVmaW5lZDIoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSB7IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7IH0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc0ludDMyKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25VbmRlZmluZWQyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkK
K3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0ludDMyLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxs
RnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAgICAgIGlmICghY2FsbEZyYW1lLT5h
cmd1bWVudChpKS5pc0ludDMyKCkpCkBAIC0yMjAxLDcgKzIyMTksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSogY2FsbEZyYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUHVyZU5hTihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uSXNQdXJlTmFOLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50
Q291bnQoKTsgKytpKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KGkpOwpAQCAtMjIxNiwyNSArMjIzNCwyOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uSXNQdXJlTmFOKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklkZW50aXR5KEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKTsgfQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSWRlbnRp
dHksIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOworfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRWZmZWN0ZnVsNDIoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRWZmZWN0ZnVs
NDIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoNDIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWFrZU1hc3F1ZXJh
ZGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlRnVuY3Rpb25UaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCh2bSwgZ2xvYmFsT2JqZWN0LCAwLCAiSXNIVE1MRERBIl9zLCBmdW5jdGlvbkNhbGxNYXNxdWVy
YWRlcikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbE1h
c3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkNhbGxNYXNxdWVyYWRlciwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXNDdXN0b21Qcm9wZXJ0aWVzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBpZiAodmFsdWUuaXNPYmpl
Y3QoKSkKQEAgLTIyNDIsMjEgKzIyNjMsMjEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkhhc0N1c3RvbVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgdm0uZHVtcFR5cGVQcm9maWxlckRhdGEoKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EcmFpbk1p
Y3JvdGFza3MsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgdm0uZHJhaW5NaWNyb3Rhc2tz
KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFRpbWVvdXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25TZXRUaW1lb3V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjc5
LDE0ICsyMzAwLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRU
aW1lb3V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblJlbGVhc2VXZWFrUmVmcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVsZWFzZVdl
YWtSZWZzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHZtLmZpbmFsaXplU3luY2hyb25v
dXNKU0V4ZWN1dGlvbigpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmlu
YWxpemF0aW9uUmVnaXN0cnlMaXZlQ291bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25G
aW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI5
OSw3ICsyMzIwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudChKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGZpbmFsaXphdGlvblJlZ2lzdHJ5LT5saXZlQ291bnQobG9ja2Vy
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZp
bmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
RmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIz
MTIsNyArMjMzMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQoSlNHbG9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihmaW5hbGl6YXRpb25SZWdpc3RyeS0+ZGVhZENvdW50KGxvY2tl
cikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzMzJCaXRQ
bGF0Zm9ybShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25JczMyQml0UGxhdGZvcm0sIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopKQogewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1ZhbHVlKEpTQzo6SlNWYWx1ZTo6SlNGYWxzZSkpOwpAQCAtMjMyMSwxMyArMjM0MiwxMyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNy
ZWF0ZUdsb2JhbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEdsb2JhbE9iamVjdDo6Y3JlYXRlKHZtLCBHbG9iYWxPYmplY3Q6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpLCBWZWN0b3I8U3RyaW5nPigpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjM0Niw3ICsyMzY3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNyZWF0ZUhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKIH0KIAogI2lm
IFVTRShCSUdJTlQzMikKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVh
dGVCaWdJbnQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUJpZ0ludDMyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzc0LDcgKzIzOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdAogfQogI2VuZGlmCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Vc2VCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VCaWdJbnQzMiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikpCiB7CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKHRydWUpKTsKQEAgLTIzODMsNyArMjQwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Vc2VCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopCiAjZW5kaWYKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklz
QmlnSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzQmlnSW50MzIsIChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc0JpZ0ludDMy
KCkpKTsKQEAgLTIzOTMsMTIgKzI0MTQsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbklzQmlnSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGwKICNl
bmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNIZWFwQmln
SW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0hlYXBCaWdJbnQsIChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVh
bihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzSGVhcEJpZ0ludCgpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNDE5LDcgKzI0NDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ2hlY2tNb2R1bGVTeW50YXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RvcFdhdGNoLmdldEVsYXBzZWRNUygpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRz
U2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciwg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAjaWYgRU5BQkxFKFNBTVBMSU5HX1BS
T0ZJTEVSKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShKU0M6OkpTVmFsdWU6
OkpTVHJ1ZSkpOwpAQCAtMjQyOCw3ICsyNDQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2IK
ICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2VuZXJh
dGVIZWFwU25hcHNob3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKQEAgLTI0
NDMsNyArMjQ2NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5l
cmF0ZUhlYXBTbmFwc2hvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdlbmVyYXRlSGVh
cFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVhcFNu
YXBzaG90Rm9yR0NEZWJ1Z2dpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2Nr
SG9sZGVyIGxvY2sodm0pOwpAQCAtMjQ2MSwxMyArMjQ4MiwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyhK
U0dsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIGpzb25TdHJp
bmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlc2V0U3Vw
ZXJTYW1wbGVyU3RhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmVzZXRTdXBlclNhbXBsZXJTdGF0ZSgpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7CkBAIC0yNDc4LDcgKzI0OTksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYgogfQogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblN0YXJ0U2FtcGxpbmdQcm9maWxlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIFNhbXBsaW5nUHJvZmlsZXImIHNhbXBsaW5nUHJvZmlsZXIgPSB2bS5lbnN1cmVTYW1w
bGluZ1Byb2ZpbGVyKFdURjo6U3RvcHdhdGNoOjpjcmVhdGUoKSk7CkBAIC0yNDg3LDcgKzI1MDgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1By
b2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFjZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNhbXBsaW5n
UHJvZmlsZXJTdGFja1RyYWNlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTAyLDEyICsyNTIzLDEyIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TYW1wbGluZ1Byb2ZpbGVyU3RhY2tU
cmFjZXMoSlNHbG9iYWxPYmplY3QqCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFNBTVBMSU5HX1BST0ZJ
TEVSKQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTWF4QXJndW1lbnRz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbk1heEFyZ3VtZW50cywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihKU0M6Om1heEFyZ3VtZW50cykpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3luY1Rlc3RTdGFydCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjUyMCw3ICsyNTQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAg
ICByZXR1cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25Bc3luY1Rlc3RQYXNzZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQXN5bmNUZXN0UGFzc2VkLCAo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBhc3luY1Rlc3RQYXNzZXMrKzsK
ICAgICByZXR1cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7CkBAIC0yNTI4LDcgKzI1NDksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQXN5bmNUZXN0UGFzc2VkKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldlYkFzc2VtYmx5TWVtb3J5
TW9kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbldlYkFzc2VtYmx5TWVtb3J5TW9kZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU0OCw3ICsyNTY5LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9yeU1vZGUoSlNHbG9i
YWxPYmplY3QKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2ss
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpOwpAQCAtMjU2MSw3ICsyNTgyLDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFVuaGFuZGxlZFJlamVj
dGlvbkNhbGxiYWNrKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
QXNEb3VibGVOdW1iZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc0RvdWJsZU51bWJl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCBhNDg5YTI2
Y2I3NmUyOTA1YTQxOTdlZTZiNGIwZDM1MGMyNzg3NTUyLi43ZDg1YTYwMDkwZGVmYjVhMGIwZTVl
NTdiMGU5MDczMzQxNzE0MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzksOCArMzks
OCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoQWdncmVnYXRlRXJy
b3JDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBZ2dyZWdhdGVFcnJvckNvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFnZ3JlZ2F0ZUVycm9yQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOwogCiBBZ2dy
ZWdhdGVFcnJvckNvbnN0cnVjdG9yOjpBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxBZ2dy
ZWdhdGVFcnJvckNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9y
KQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUqCiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90
eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU1ZhbHVlIGVycm9ycyA9IGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCk7CkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShBZ2dyZWdhdGVFcnJvcjo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgdm0sIGVycm9yU3RydWN0dXJlLCBlcnJvcnMsIG1lc3NhZ2UsIG51bGxwdHIsIFR5
cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggMjRiMTdjN2YyNzZlZWNkYjVlNjc1YTVhOGI2ZTI2Y2Y5ODliYWQ2Ny4uMDg4
NmY5M2Y2NWNmNWM2MTFjNTNiNGQ4YjUyZDY0NWMzZDUzMWViZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTQzLDggKzQz
LDggQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW4KIEBlbmQKICovCiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEFycmF5Q29uc3RydWN0b3IpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aEFycmF5Q29uc3Ry
dWN0b3IpOwogCiBBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxBcnJheUNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcikKQEAg
LTg2LDEzICs4NiwxMyBAQCBzdGF0aWMgaW5saW5lIEpTQXJyYXkqIGNvbnN0cnVjdEFycmF5V2l0
aFNpemVRdWlyayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBjb25z
dHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFycmF5QWxsb2NhdGlvblByb2Zp
bGUqPihudWxscHRyKSwgYXJncywgbmV3VGFyZ2V0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBh
cmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJh
eVdpdGhTaXplUXVpcmsoZ2xvYmFsT2JqZWN0LCBhcmdzLCBjYWxsRnJhbWUtPm5ld1RhcmdldCgp
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxBcnJheUNvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29u
c3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGdsb2JhbE9iamVjdCwgYXJncywgSlNWYWx1ZSgpKSk7
CkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBpc0FycmF5U2xvdyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQcm94eU9iamVjdCogYXJndW1lbnQpCiAKIC8vIEVTNiA3LjIuMgogLy8gaHR0
cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNhcnJheQotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0FycmF5U2xvdyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0FycmF5U2xvdywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxQcm94eU9iamVj
dCo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGlzQXJyYXlTbG93SW5saW5lKGdsb2JhbE9i
amVjdCwganNDYXN0PFByb3h5T2JqZWN0Kj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KSkpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVj
dG9yLmgKaW5kZXggNTMwZTYzNDUyZDhiZTk5NjRhNDRhNGY5ZDExY2FmNmM4MWRjNWFlZi4uZGE4
MjVhOTVjOGUzYmQ1NWQ3NDBmZTk5YjNiMzI4ZmQ4NjI4ZDliNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaApAQCAtNTcsNyArNTcsNyBA
QCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShBcnJheUNvbnN0cnVjdG9yLCBJ
bnRlcm5hbEZ1bmN0aW9uKTsKIAogSlNBcnJheSogY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJr
KEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIEpTVmFsdWUgbGVuZ3Ro
LCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlDb25zdHJ1Y3RvclByaXZhdGVGdW5jSXNBcnJheVNsb3coSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlDb25z
dHJ1Y3RvclByaXZhdGVGdW5jSXNBcnJheVNsb3cpOwogYm9vbCBpc0FycmF5U2xvdyhKU0dsb2Jh
bE9iamVjdCosIFByb3h5T2JqZWN0KiBhcmd1bWVudCk7CiAKIC8vIEVTNiA3LjIuMgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCmluZGV4IDkx
MGE5OWY5MjdlODBlYzNlOWIyNGQ4NzRmZGQ3NmYxNjRmOGI4MTQuLjAxNzJkMmFhNWE1ZTg5MDk2
OTUwNjk3NjEyMGY4ZjdkM2FiNTk5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTQwLDE5ICs0MCwxOSBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSm9pbihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0tleXMo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlQcm90b0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUG9wKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jUHVzaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1JldmVyc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlm
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jVW5TaGlmdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNKb2luKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oYXJyYXlQcm90b0Z1bmNLZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJy
YXlQcm90b0Z1bmNFbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90
b0Z1bmNQb3ApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1B1c2gp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1JldmVyc2UpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NoaWZ0KTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNTbGljZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGFycmF5UHJvdG9GdW5jU3BsaWNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
YXJyYXlQcm90b0Z1bmNVblNoaWZ0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQ
cm90b0Z1bmNJbmRleE9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1
bmNMYXN0SW5kZXhPZik7CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBcnJh
eVByb3RvdHlwZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTI1Niw3ICsyNTYs
NyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBzdGQ6OnBhaXI8U3BlY2llc0NvbnN0cnVjdFJlc3Vs
dCwgSlNPYmplY3QqPiBzcGVjaWVzQ29uc3RydQogICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihT
cGVjaWVzQ29uc3RydWN0UmVzdWx0OjpDcmVhdGVkT2JqZWN0LCBuZXdPYmplY3QpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BlY2llc0NyZWF0ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NwZWNpZXNDcmVhdGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTU5MCw3ICs1OTAsNyBAQCBpbmxpbmUgYm9vbCBjYW5Vc2VEZWZhdWx0
QXJyYXlKb2luRm9yVG9TdHJpbmcoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCkKICAgICBy
ZXR1cm4gZ2xvYmFsT2JqZWN0LT5pc09yaWdpbmFsQXJyYXlTdHJ1Y3R1cmUoc3RydWN0dXJlKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1RvU3RyaW5n
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTY3Myw3ICs2NzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpvaW5lci5qb2luKGds
b2JhbE9iamVjdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc2Niw3ICs3NjYsNyBAQCBz
dGF0aWMgSlNWYWx1ZSBzbG93Sm9pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09i
amVjdCogdGhpc09iamVjdCwgSlNTdAogICAgIHJldHVybiByOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSm9pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihh
cnJheVByb3RvRnVuY0pvaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgzNywyMiArODM3LDIy
IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U0FycmF5SXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheUl0ZXJhdG9yU3Ry
dWN0dXJlKCksIHRoaXNPYmplY3QsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVuc2lnbmVkPihraW5k
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Zh
bHVlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1ZhbHVlcywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gY3JlYXRlQXJyYXlJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRl
cmF0aW9uS2luZDo6VmFsdWVzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNF
bnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0tleXMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
YXJyYXlQcm90b0Z1bmNLZXlzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpLZXlzKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1BvcChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihhcnJheVByb3RvRnVuY1BvcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODkxLDcg
Kzg5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQb3Ao
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jUHVzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1B1c2gsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTkyNiw3ICs5MjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jUHVzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobmV3TGVuZ3RoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNSZXZlcnNlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jUmV2ZXJzZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTAyOSw3ICsxMDI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRnVuY1JldmVyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQ
cm90b0Z1bmNTaGlmdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA1NSw3ICsxMDU1LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NoaWZ0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGlj
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NsaWNlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zbGljZQogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTExMTcsNyArMTExNyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGljZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU3BsaWNlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDE1LjQuNC4x
MgogCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFy
cmF5UHJvdG9GdW5jU3BsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jVW5TaGlmdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVBy
b3RvRnVuY1VuU2hpZnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNTksNyArMTM1OSw3IEBA
IEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBmYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBWTSYgdm0sIEpTQXJyYXkqCiAgICAgfQogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJh
eVByb3RvRnVuY0luZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzOTksNyArMTM5OSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNJbmRleE9mKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcigtMSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNMYXN0
SW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU0Nyw3ICsxNTQ3LDcgQEAgQUxXQVlT
X0lOTElORSB2b2lkIGNvcHlFbGVtZW50cyhUKiBidWZmZXIsIHVuc2lnbmVkIG9mZnNldCwgVCog
c291cmNlLCB1bnNpZ25lZAogICAgICAgICBjbGVhckVsZW1lbnQ8VD4oYnVmZmVyW2kgKyBvZmZz
ZXRdKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b1ByaXZh
dGVGdW5jQ29uY2F0TWVtY3B5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9Qcml2YXRl
RnVuY0NvbmNhdE1lbWNweSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkg
PT0gMik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTYzNCw3ICsxNjM0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvUHJpdmF0ZUZ1bmND
b25jYXRNZW1jcHkoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b1By
aXZhdGVGdW5jQXBwZW5kTWVtY3B5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9Qcml2
YXRlRnVuY0FwcGVuZE1lbWNweSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCkgPT0gMyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
cmF5UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5oCmluZGV4IDUzZWY2OWE1NDgyZGVlZTJlOTU1MWY4YWE4MzM2Y2JhN2ZmZDM3MTcuLmQ2
ZDA4MTQ2MjQ5YjdhYzM3ZmRmODRmMTIyOGFmZDhlMjg5ZTNmMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDksMTAgKzQ5LDEwIEBA
IGNsYXNzIEFycmF5UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQXJyYXkgewogfTsKIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEFycmF5UHJvdG90eXBlLCBBcnJheVByb3Rv
dHlwZTo6QmFzZSk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNTcGVjaWVzQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNWYWx1ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b1ByaXZhdGVGdW5jQ29uY2F0TWVtY3B5KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJv
dG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NwZWNpZXNDcmVhdGUpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1RvU3RyaW5nKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNWYWx1ZXMpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihhcnJheVByb3RvUHJpdmF0ZUZ1bmNDb25jYXRNZW1jcHkpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkpOwog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDMxYThmMjNmZDY5
OWU3ZjU0ZDIzZWU4YTIxNzVjOWRiMjczN2Q1ZTMuLmY3ZmFjNThiYzQ5OGJlMGNkMmNhNDRkNWUz
ZmEyYmQwNjExY2Y2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMTMgKzM2LDE2IEBA
IFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShBc3luY0Z1bmN0aW9uQ29u
c3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJBc3luY0Z1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0Z1bmN0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXN5bmNGdW5jdGlvbkNvbnN0
cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFzeW5j
RnVuY3Rpb25Db25zdHJ1Y3Rvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsQXN5
bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmMpKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXN5bmNGdW5jdGlv
bkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFzeW5jRnVuY3Rpb25D
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBh
cmdzLCBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jLCBjYWxsRnJhbWUtPm5ld1Rhcmdl
dCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCAwNGQ4Mzg5
OTZiYTNhNDMwYWYxM2QyMmM1ZjE0YmNjZGYxODNhM2FmLi4wNzAyNDA5MDRmMjljMTg3YWUzNjY2
ZTcwOTVlZjFlYjkwMDRhYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAKQEAgLTM2LDEzICszNiwxNiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVD
VElCTEUoQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJ
bmZvIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXN5bmNH
ZW5lcmF0b3JGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXN5bmNHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlz
dCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RG
dW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rp
b25Nb2RlOjpBc3luY0dlbmVyYXRvcikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1
bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmNHZW5lcmF0b3IsIGNhbGxGcmFtZS0+bmV3VGFy
Z2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0F0b21p
Y3NPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVj
dC5jcHAKaW5kZXggNGE3NTc1ZmI1OTgzMzVjNjhlMTEwMGYwMzcyODE2ODhjODQ2NWY4Yi4uZGY2
M2NhNGNlOGQ0NWY0ZmQ4ZmEwNTZlYmQ0ZDNjY2QxYzRmODg0MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKQEAgLTUwLDggKzUwLDggQEAg
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEF0b21pY3NPYmplY3QpOwog
ICAgIG1hY3JvKHdha2UsIFdha2UsIDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKHhvciwgWG9yLCAzKQogCi0jZGVmaW5lIERFQ0xB
UkVfRlVOQ19QUk9UTyhsb3dlck5hbWUsIHVwcGVyTmFtZSwgY291bnQpICAgICAgICAgICAgICAg
ICBcCi0gICAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuYyAjIyB1cHBl
ck5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKyNkZWZpbmUgREVDTEFSRV9GVU5D
X1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1lLCBjb3VudCkgIFwKKyAgICBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jICMjIHVwcGVyTmFtZSk7CiBGT1JfRUFDSF9BVE9NSUNT
X0ZVTkMoREVDTEFSRV9GVU5DX1BST1RPKQogI3VuZGVmIERFQ0xBUkVfRlVOQ19QUk9UTwogCkBA
IC0zMTIsNTIgKzMxMiw1MiBAQCBFbmNvZGVkSlNWYWx1ZSBpc0xvY2tGcmVlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYXJnKQogCiB9IC8vIGFub255bW91cyBuYW1lc3Bh
Y2UKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY0FkZChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9u
V2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFkZEZ1bmMoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNBbmQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXRvbWljc0Z1bmNBbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBbmRGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jQ29tcGFyZUV4Y2hhbmdlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGF0b21pY3NGdW5jQ29tcGFyZUV4Y2hhbmdlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBhdG9taWNPcGVyYXRp
b25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQ29tcGFyZUV4Y2hhbmdlRnVuYygp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY0V4Y2hhbmdl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jRXhjaGFuZ2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBFeGNoYW5nZUZ1
bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNJc0xv
Y2tGcmVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jSXNMb2NrRnJlZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gaXNMb2NrRnJlZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jTG9hZChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0xvYWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlv
bldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBMb2FkRnVuYygpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY09yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGF0b21pY3NGdW5jT3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBPckZ1bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXRvbWljc0Z1bmNTdG9yZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNz
RnVuY1N0b3JlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgU3RvcmVGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGF0b21pY3NGdW5jU3ViKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jU3Vi
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSwgU3ViRnVuYygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9t
aWNzRnVuY1dhaXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWl0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC00MjcsNyArNDI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhdG9taWNzRnVuY1dhaXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCByZXN1bHRTdHJpbmcpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY1dha2UoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWtlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00
NTksNyArNDU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY1dh
a2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKFBhcmtpbmdMb3Q6OnVucGFya0NvdW50KHB0ciwgY291bnQpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNYb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNYb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlv
bldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBYb3JGdW5jKCkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IGJlZGZjOTc0Yjk2NDVjZmFmNTg1YjFjYWQyOGU0ZTQxNTZmODBiMzQuLmFkZTdkMTE4YWEy
YWExYzhkOTg0M2IwZDEyZThkYmEwZjQxMmNmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTM0LDggKzM0LDggQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJpZ0ludENvbnN0cnVjdG9yRnVuY0FzVWludE4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludENvbnN0cnVjdG9y
RnVuY0FzSW50TihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oYmlnSW50Q29uc3RydWN0b3JGdW5jQXNVaW50Tik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1bmNBc0ludE4pOwog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApAQCAtNTQsNyArNTQsNyBAQCBjb25zdCBDbGFzc0luZm8g
QmlnSW50Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
JmJpZ0ludAogQGVuZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbEJpZ0ludENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQmlnSW50Q29uc3RydWN0b3IpOwogCiBC
aWdJbnRDb25zdHJ1Y3Rvcjo6QmlnSW50Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEJpZ0lu
dENvbnN0cnVjdG9yLCBudWxscHRyKQpAQCAtMTAyLDcgKzEwMiw3IEBAIEpTVmFsdWUgdG9CaWdJ
bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1bWVudCkKICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEJpZ0ludENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxCaWdJ
bnRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxCaWdJbnRDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9CaWdJbnQoZ2xvYmFsT2JqZWN0LCBwcmltaXRpdmUpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50Q29uc3RydWN0b3JGdW5jQXNVaW50TihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1bmNBc1VpbnROLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNDksNyArMTQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBiaWdJbnRDb25zdHJ1Y3RvckZ1bmNBc1VpbnROKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU0JpZ0ludDo6
YXNVaW50TihnbG9iYWxPYmplY3QsIG51bWJlck9mQml0cywgYmlnSW50LmFzSGVhcEJpZ0ludCgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludENvbnN0cnVjdG9y
RnVuY0FzSW50TihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1bmNBc0lu
dE4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9CaWdJbnRQcm90b3R5cGUuY3BwCmluZGV4IDFkOGZjMDAyNGExOTc4MWUzYmJmN2RkMzJi
MmIxNGZjMDBiMTA5YzYuLjlkYzBmZTJiNjA0N2ZiMmU5ODU5MDVmMmRlNjMxM2MyN2QyZDA4ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50UHJvdG90eXBl
LmNwcApAQCAtMzgsOSArMzgsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1bmNW
YWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNWYWx1ZU9mKTsKIAogfQog
CkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNCaWdJbnQqIHRvVGhp
c0JpZ0ludFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEoKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1
bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNUb1N0cmluZywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTI3LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjCiB9CiAKIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBpbnRyb2R1Y2UgdGhl
IHJpZ2h0IHNlcGFyYXRvcnMgZm9yIHRob3VzYW5kcyBhbmQgc2ltaWxhciB0aGluZ3MuCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNDEsNyArMTQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBiaWdJbnRQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmEK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShudW1iZXJGb3Jt
YXQtPmZvcm1hdChnbG9iYWxPYmplY3QsIHZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
YmlnSW50UHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MjY0ODA5ZTRmM2FhMDY1NDk1MWI4M2VhNTUzOTA3ZjBlNjQ0NTBmYy4uMDBmODViMzE3ZmQxMDU2
NWQ0ZTg2NjQxZjk3M2I0NWU2NGMzMTMyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC0zMCwxNCArMzAsMTcgQEAg
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEJvb2xlYW5Db25zdHJ1Y3Rv
cik7CiAKIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShCb29sZWFuQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxCb29sZWFuQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rvcik7CisKIC8vIEVDTUEgMTUu
Ni4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQm9vbGVhbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxCb29sZWFuQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50
b0Jvb2xlYW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCiAvLyBFQ01BIDE1LjYuMgotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Jvb2xlYW5Qcm90b3R5cGUuY3BwCmluZGV4IDAyNTI2NTc0ZjNiMGMxOWRlMjcyNTllM2EwZDI2
ZDNiZWViY2UzZjEuLmJiNGE0NTljNjViMjUwNDAxODZmMjNiODliZTBlM2QyZWI3NWJhOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUu
Y3BwCkBAIC0yNiw4ICsyNiw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYm9vbGVhblByb3RvRnVuY1ZhbHVl
T2YpOwogCiB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBCb29sZWFuUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC04NCw3ICs4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm9v
bGVhblByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MudHJ1ZVN0cmluZygpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihib29sZWFuUHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNw
cAppbmRleCBjNTNlNGUyNzY4ZmRmYjIxYjA4NTMyZjQ3ZTcwMGYyN2RhMzUwY2ViLi5jYmU5YjNk
ODhjNmI4ZDY1YTBlYTg2NWQzMzNmZTI0NDcwNWY3MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcApAQCAtNDcsMzIgKzQ3LDMyIEBAIHN0
YXRpYyBTdHJpbmcgdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqCiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RS
VUNUSUJMRShDb25zb2xlT2JqZWN0KTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY0RlYnVnKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRXJy
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNMb2coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1
bmNJbmZvKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jV2FybihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jRGlyWE1MKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNUcmFjZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Fzc2Vy
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jQ291bnRSZXNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFr
ZUhlYXBTbmFwc2hvdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWUoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNUaW1lTG9nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0dyb3VwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xsYXBzZWQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Jl
Y29yZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1JlY29yZEVuZChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1NjcmVlbnNob3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNEZWJ1Zyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jRXJyb3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0xvZyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jSW5mbyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jV2Fybik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jQ2xlYXIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0Rpcik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jRGlyWE1MKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUYWJsZSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVHJhY2UpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0Fzc2VydCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jQ291bnQp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0NvdW50
UmVzZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y1Byb2ZpbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3Rv
RnVuY1Byb2ZpbGVFbmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29s
ZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY1RpbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVMb2cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVFbmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXApOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZCk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jUmVjb3JkKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRF
bmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1Nj
cmVlbnNob3QpOwogCiBjb25zdCBDbGFzc0luZm8gQ29uc29sZU9iamVjdDo6c19pbmZvID0geyAi
Y29uc29sZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoQ29uc29sZU9iamVjdCkgfTsKIApAQCAtMTM3LDMyICsxMzcsMzIgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNvbnNvbGVMb2dXaXRoTGV2ZWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jRGVidWcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0RlYnVnLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBjb25zb2xlTG9nV2l0aExldmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNz
YWdlTGV2ZWw6OkRlYnVnKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxvZ1dpdGhMZXZlbChnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgTWVzc2FnZUxldmVsOjpFcnJvcik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNMb2coSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc29sZVByb3RvRnVuY0xvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxvZ1dpdGhMZXZlbChn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgTWVzc2FnZUxldmVsOjpMb2cpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jSW5mbyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jSW5mbywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxv
Z1dpdGhMZXZlbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgTWVzc2FnZUxldmVsOjpJbmZvKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y1dhcm4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1dhcm4sIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIGNvbnNvbGVMb2dXaXRoTGV2ZWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIE1lc3NhZ2VM
ZXZlbDo6V2FybmluZyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNDbGVhciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlm
ICghY2xpZW50KQpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jRGlyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVu
dCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpAQCAt
MTgyLDcgKzE4Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNv
bGVQcm90b0Z1bmNEaXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpclhNTChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihj
b25zb2xlUHJvdG9GdW5jRGlyWE1MLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGdsb2Jh
bE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpAQCAtMTkyLDcgKzE5
Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1
bmNEaXJYTUwoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY1RhYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNUYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNv
bnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTIwMiw3ICsyMDIsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUcmFjZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVHJhY2Us
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50
KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0yMTIsNyArMjEyLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNz
ZXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jQ291bnQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICBhdXRvKiBjbGllbnQg
PSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ291bnQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNDb3VudFJlc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmND
b3VudFJlc2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9i
amVjdC0+dm0oKSk7CiAgICAgYXV0byogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xp
ZW50KCk7CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQoSlNHbG9iYWxPYmplY3QqIGcKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNQcm9maWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTMwMCw3ICszMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jUHJvZmlsZUVuZChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QoSlNHbG9iYWxPYmoKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgIGF1dG8qIGNsaWVudCA9IGdsb2Jh
bE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwpAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y1RpbWVMb2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVMb2csIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsK
ICAgICBhdXRvKiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTM0
OSw3ICszNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jVGltZUxvZyhKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnNvbGVQcm90b0Z1bmNUaW1lRW5kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0byogY2xpZW50ID0gZ2xvYmFsT2JqZWN0
LT5jb25zb2xlQ2xpZW50KCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoSlNHbG9iYWxPYmplY3Qq
IGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0
YW1wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Q29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAg
ICAgaWYgKCFjbGllbnQpCkBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcChKU0dsb2JhbE9iamVjdCog
Z2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0dyb3VwLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVDbGll
bnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xp
ZW50KQpAQCAtMzgzLDcgKzM4Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25z
b2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBp
ZiAoIWNsaWVudCkKQEAgLTM5Myw3ICszOTMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xsYXBzZWQoSlNHbG9iYWxPYmplYwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNs
aWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFj
bGllbnQpCkBAIC00MDMsNyArNDAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNSZWNvcmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNsaWVudCogY2xp
ZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBA
IC00MTMsNyArNDEzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c29sZVByb3RvRnVuY1JlY29yZChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkRW5kKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRFbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50
ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC00
MjMsNyArNDIzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1JlY29yZEVuZChKU0dsb2JhbE9iamVjdCogZ2wKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQg
PSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCmluZGV4
IDVmZDBlYTdkNzc1NDBhOGExM2ZmNDQ4M2VlY2Q0YjI0MDM1NTFkODMuLjY4N2ZlNzk3ZWRhMDcx
OWQ2NTAwOGYxYjlhYmFlMjZjNTgzMDdlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUGFyc2UoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVVUQyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlTm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQYXJzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGVVVEMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlTm93KTsKIAogfQogCkBA
IC01Miw4ICs1Miw4IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAKIFNUQVRJQ19BU1NFUlRf
SVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShEYXRlQ29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0
aERhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbERhdGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3Rvcik7CiAKIERhdGVDb25zdHJ1
Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxEYXRlLCBjb25zdHJ1Y3RXaXRo
RGF0ZUNvbnN0cnVjdG9yKQpAQCAtMTM1LDE0ICsxMzUsMTQgQEAgSlNPYmplY3QqIGNvbnN0cnVj
dERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBuZXdUYXJnZXQsIGNv
bnN0IEEKICAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUodm0sIGRhdGVTdHJ1Y3R1cmUs
IHZhbHVlKTsKIH0KICAgICAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
V2l0aERhdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdERhdGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPm5ld1RhcmdldCgpLCBhcmdzKSk7CiB9CiAKIC8vIEVDTUEgMTUuOS4yCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxEYXRlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEdyZWdvcmlhbkRhdGVUaW1lIHRzOwpAQCAtMTUw
LDcgKzE1MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdERhdGVUaW1lKHRzLCBEYXRlVGlt
ZUZvcm1hdERhdGVBbmRUaW1lLCBmYWxzZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUGFyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVBhcnNlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xNjQsMTIgKzE2NCwxMiBAQCBKU1ZhbHVlIGRhdGVOb3dJbXBsKCkK
ICAgICByZXR1cm4ganNOdW1iZXIoanNDdXJyZW50VGltZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlTm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlTm93LCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGpzQ3VycmVudFRp
bWUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVVVEMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0ZVVUQywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBkb3VibGUgbXMgPSBtaWxsaXNlY29uZHNGcm9t
Q29tcG9uZW50cyhnbG9iYWxPYmplY3QsIEFyZ0xpc3QoY2FsbEZyYW1lKSwgV1RGOjpVVENUaW1l
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRpbWVDbGlwKG1zKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRl
eCA5NTU2M2QwOTg0NjJjYzU4N2FlNTQ4YTBhYWE1YzNjZTgyMzZiZTliLi4xMTIyYTlmMmJlZWM0
ZDQxNjY0MDdlODJiYTFhNzVlZDAyMzEwYjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtMzgsNDcgKzM4LDQ3IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXREYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFy
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNHZXRIb3VycyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNb250aChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RheShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01p
bnV0ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENT
ZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXREYXRlKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0SG91cnMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1NldE1pbGxpU2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TWludXRlcyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jU2V0TW9udGgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFNlY29uZHMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1NldFRpbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENIb3VycyhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jU2V0VVRDTWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNaW51dGVzKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNTZXRVVENNb250aChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jU2V0WWVhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9EYXRlU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1RvVGltZVN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9VVENTdHJpbmcoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1RvSVNPU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0pTT04oSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVu
Y0dldERhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0RGF5
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEhvdXJzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1vbnRoKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFNlY29uZHMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENEYXkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNHZXRZZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3Rv
RnVuY1NldERhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0
RnVsbFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0SG91
cnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0TWlsbGlTZWNv
bmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldE1pbnV0ZXMp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0TW9udGgpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0U2Vjb25kcyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRUaW1lKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTW9udGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNTZXRZZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNUb1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90
b0Z1bmNUb1RpbWVTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jVG9VVENTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5j
VG9JU09TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9K
U09OKTsKIAogfQogCkBAIC0yODcsMTkgKzI4NywxOSBAQCB2b2lkIERhdGVQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogLy8g
RnVuY3Rpb25zCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1Rv
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBj
b25zdCBib29sIGFzVVRDVmFyaWFudCA9IGZhbHNlOwogICAgIHJldHVybiBmb3JtYXRlRGF0ZUlu
c3RhbmNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBEYXRlVGltZUZvcm1hdERhdGVBbmRUaW1l
LCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNUb1VUQ1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9V
VENTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgY29uc3QgYm9vbCBhc1VUQ1ZhcmlhbnQgPSB0cnVlOwogICAgIHJldHVy
biBmb3JtYXRlRGF0ZUluc3RhbmNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBEYXRlVGltZUZv
cm1hdERhdGVBbmRUaW1lLCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihk
YXRlUHJvdG9GdW5jVG9JU09TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzNiwxOSAr
MzM2LDE5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSVNP
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZyhidWZmZXIsIGNoYXJhY3RlcnNXcml0
dGVuKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNU
b0RhdGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmlu
ZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBjb25zdCBib29sIGFzVVRDVmFyaWFudCA9IGZhbHNlOwogICAgIHJldHVybiBmb3Jt
YXRlRGF0ZUluc3RhbmNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBEYXRlVGltZUZvcm1hdERh
dGUsIGFzVVRDVmFyaWFudCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1RvVGltZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5j
VG9UaW1lU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIGNvbnN0IGJvb2wgYXNVVENWYXJpYW50ID0gZmFsc2U7CiAgICAg
cmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIERhdGVU
aW1lRm9ybWF0VGltZSwgYXNVVENWYXJpYW50KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2woSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0zNzEsNyArMzcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jVG9QcmltaXRpdmVTeW1ib2woSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5vcmRpbmFyeVRvUHJp
bWl0aXZlKGdsb2JhbE9iamVjdCwgdHlwZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jR2V0VGltZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzgzLDcgKzM4Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFRpbWUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzk4LDcg
KzM5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1
bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNDEzLDcgKzQxMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRo
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRNb250aCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNDI4LDcgKzQyOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldE1vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgo
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRV
VENNb250aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNb250aChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRp
bWUtPm1vbnRoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0RGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0RGF0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDU4LDcgKzQ1OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVU
aW1lLT5tb250aERheSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ0RhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dl
dFVUQ0RhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ3Myw3ICs0NzMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90
b0Z1bmNHZXREYXksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ4OCw3ICs0ODgsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
Z3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY0dldFVUQ0RheSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTAzLDcgKzUwMyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RheShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNHZXRIb3VycywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTE4LDcg
KzUxOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhv
dXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENIb3VycywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNTMzLDcgKzUzMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFVUQ0hvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTU0OCw3ICs1NDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1pbnV0ZSgp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q01pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU2Myw3ICs1NjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0
ZVRpbWUtPm1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dl
dFNlY29uZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU3OCw3ICs1NzgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU5Myw3ICs1
OTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENT
ZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC02MTIsNyArNjEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1zKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENN
aWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxp
c2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjMxLDcgKzYzMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0ds
b2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0
aWNfY2FzdDxpbnQzMl90PihtcykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NDYs
NyArNjQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKC1ncmVnb3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0SW5NaW51dGUoKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRUaW1l
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRUaW1lLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC03NDcsNzcgKzc0Nyw3NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0KSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0TWlsbGlTZWNvbmRzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
ZXROZXdWYWx1ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMSwgV1RGOjpM
b2NhbFRpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1Nl
dFVUQ01pbGxpc2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIDEsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFNlY29uZHMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZGF0ZVByb3RvRnVuY1NldFNlY29uZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJv
bVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAyLCBXVEY6OkxvY2FsVGltZSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ1NlY29u
ZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ1NlY29uZHMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAy
LCBXVEY6OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNTZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRN
aW51dGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgMywgV1RGOjpMb2NhbFRpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNTZXRVVENNaW51dGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21U
aW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMywgV1RGOjpVVENUaW1lKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0SG91cnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldEhvdXJzLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdW
YWx1ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgNCwgV1RGOjpMb2NhbFRp
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRV
VENIb3VycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCA0LCBXVEY6OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNTZXREYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRE
YXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21EYXRlQXJncyhnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgMSwgV1RGOjpMb2NhbFRpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNTZXRVVENEYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21EYXRlQXJncyhn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMSwgV1RGOjpVVENUaW1lKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TW9udGgoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZGF0ZVByb3RvRnVuY1NldE1vbnRoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21E
YXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMiwgV1RGOjpMb2NhbFRpbWUpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNb250aChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTW9udGgsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IHNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAyLCBXVEY6
OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRGdWxsWWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0RnVsbFll
YXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCAzLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0Z1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNTZXRVVENGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tRGF0
ZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDMsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFllYXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFllYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTg2Miw3ICs4NjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jR2V0WWVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODc5LDcgKzg3OSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFllYXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkgLSAxOTAwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSlNPTihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihk
YXRlUHJvdG9GdW5jVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggZWVhYWQzN2NiNGE1YjZjNTYx
N2I5NzYxNzI5YTAwNjI1OTczOWU3ZS4uNTc4Y2QyODUyMzhjZDZlMjJhNDc0NzQ0MDZkYWI1OGU0
ODA3NDY0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5
cGUuaApAQCAtNTcsNiArNTcsNiBAQCBjbGFzcyBEYXRlUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2Jh
bE9iamVjdCopOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VGltZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNw
cAppbmRleCBiYzBhNjIyNjI2MWNlNGRkYTdjOTc3MDVhYjAwNGQwZDYxOWUzY2VlLi4wZjJmNWEz
MTg0MDJmYmI3YzdkODgwMmI2ZDc4NDJlZmU0MDZjODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzAsOCArMzAsOCBA
QCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRXJyb3JDb25zdHJ1Y3Rv
cik7CiAKIGNvbnN0IENsYXNzSW5mbyBFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5j
dGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEVycm9yQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxFcnJvckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpOwogCiBFcnJvckNvbnN0cnVj
dG9yOjpFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxFcnJvckNvbnN0cnVjdG9yLCBj
b25zdHJ1Y3RFcnJvckNvbnN0cnVjdG9yKQpAQCAtNDgsNyArNDgsNyBAQCB2b2lkIEVycm9yQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJv
dG90eXBlKQogCiAvLyBFQ01BIDE1LjkuMwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
RXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjMsNyArNjMsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3Ry
dWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0g
Z2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IGUxYWI1NWJhNGNmNGRhMGI0Yzdh
NGI1NjA0YWFkNTA4MWI4NDkxYTUuLmI4YzYyZDM3NTk5NTU0ZWQ1Nzc1ZDNmNjk5NGJiOWExNjlh
YzIxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3Rv
dHlwZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRXJyb3JQcm90b3R5cGVCYXNlKTsKIFNUQVRJQ19B
U1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShFcnJvclByb3RvdHlwZSk7CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGVycm9yUHJvdG9GdW5jVG9TdHJpbmcpOwogCiB9CiAKQEAgLTY3LDcgKzY3LDcgQEAgRXJy
b3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCiAvLyBFQ01BLTI2MiA1LjEsIDE1LjExLjQuNAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBlcnJvclByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGVycm9yUHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbmFsaXphdGlvblJlZ2lzdHJ5
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmluYWxpemF0
aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDdjNDM0MjkwYzRkMDQ4NTA2NWQyYjIw
OWRkNzhlNjdkNGJjMThlNS4uYmFiZTRkZTE5Y2EzM2Y5ZGE1ODI4MjlhOTkxMGM3ZDVmYjBhM2M3
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9u
UmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ1LDIyICs0NSwyMiBA
QCB2b2lkIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgRmluYWxpemF0aW9uUmVnaXN0cgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9u
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsRmluYWxpemF0aW9uUmVnaXN0cnkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEZpbmFs
aXphdGlvblJlZ2lzdHJ5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsRmluYWxpemF0aW9uUmVnaXN0cnkpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnkp
OwogCiBGaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yOjpGaW5hbGl6YXRpb25SZWdpc3Ry
eUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUsIGNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeSwgY29uc3RydWN0RmluYWxpemF0
aW9uUmVnaXN0cnkpCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxGaW5hbGl6YXRpb25SZWdp
c3RyeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVj
dG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJGaW5hbGl6YXRpb25SZWdpc3RyeSIpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnksIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbmFsaXphdGlvblJl
Z2lzdHJ5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbmFs
aXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcAppbmRleCA2MTFmOWY4ZjY5MzAxN2RkZjM5Zjhm
YjQ3NDU4NDkzZGM5OTBiODgwLi5mOGIxZjdlZjQ0OWEwNTYzMGRlMjU1NmUzNWNkMzA0YjZhY2E1
NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRp
b25SZWdpc3RyeVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGUuY3BwCkBAIC0zNCw4ICszNCw4IEBAIG5h
bWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gRmluYWxpemF0aW9uUmVnaXN0cnlQcm90
b3R5cGU6OnNfaW5mbyA9IHsgIkZpbmFsaXphdGlvblJlZ2lzdHJ5IiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGaW5hbGl6YXRpb25SZWdpc3Ry
eVByb3RvdHlwZSkgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJv
dG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlSZWdpc3RlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jRmlu
YWxpemF0aW9uUmVnaXN0cnlVbnJlZ2lzdGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNGaW5hbGl6YXRpb25S
ZWdpc3RyeVJlZ2lzdGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3Rv
RnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5VW5yZWdpc3Rlcik7CiAKIHZvaWQgRmluYWxpemF0aW9u
UmVnaXN0cnlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKIHsKQEAgLTY1LDcgKzY1LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMg
SlNGaW5hbGl6YXRpb25SZWdpc3RyeSogZ2V0RmluYWxpemF0aW9uUmVnaXN0cnkoVk0mIHZtLCBK
U0cKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTg5LDcgKzg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90
b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1
cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJlZ2lzdGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5VW5yZWdpc3RlciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVu
Y3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBjYjNhOGUzZmRiNjI3Y2UzZWJlM2E1YzA4NTMwMTNl
OWZkNWE2M2M5Li4wMzk4NWM1OTU2NzM0NDUyMGNlZWRhYjQ2ZWFiYjQ2MjJkMzQ0N2I3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVj
dG9yLmNwcApAQCAtMzcsMTQgKzM3LDE3IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0
aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvbkNvbnN0cnVjdG9yKSB9
OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoRnVu
Y3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdp
dGhGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJh
bWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6RnVuY3Rp
b24sIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpKTsKIH0KIAogLy8gRUNNQSAxNS4zLjEgVGhlIEZ1
bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0aW9uCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZy
YW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCBhcmdzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggYTZmMGQ1YTM4YWI0ZTA4NTZj
NjZjMDI1ZDExNGEyMGNmNGI2MmQ5Ny4uMzMyOGRmNmNjMzk3YTA1YzMwMWE1OWI2YjljY2U4MjI0
MDlmYzNmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rp
b25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmNwcApAQCAtMzIsMTAgKzMyLDExIEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJ
VklBTExZX0RFU1RSVUNUSUJMRShGdW5jdGlvblByb3RvdHlwZSk7CiAKIGNvbnN0IENsYXNzSW5m
byBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0aW9uUHJvdG90eXBl
KSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByb3Rv
RnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvblByb3RvdHlwZSk7CiAKIC8vIGh0
dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcHJvcGVydGllcy1vZi10aGUtZnVuY3Rpb24tcHJv
dG90eXBlLW9iamVjdAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZ1
bmN0aW9uUHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjYWxsRnVuY3Rpb25Qcm90b3R5cGUsIChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CkBAIC03MSw3ICs3Miw3IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6OmluaXRSZXN0cmlj
dGVkUHJvcGVydGllcyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcHV0RGly
ZWN0Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5hcmd1bWVudHMsIGVycm9yR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBkYTRhM2FkOWE0YTZjYzU2OWRjNDFjNGU4ZGI2ZDAz
NTVkNzBlZjI0Li43ZmEzYjIxMTYyMzY4N2MxYTk5YjM1NTE4ZDJiNGQwNDI3ZDQ3NzYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMTMgKzM2LDE2IEBAIFNUQVRJQ19BU1NF
UlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
KTsKIAogY29uc3QgQ2xhc3NJbmZvIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIkdlbmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKSB9Owog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxHZW5lcmF0b3JG
dW5jdGlvbkNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBh
cmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5j
dGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25N
b2RlOjpHZW5lcmF0b3IpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3Qg
YXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVu
Y3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9u
TW9kZTo6R2VuZXJhdG9yLCBjYWxsRnJhbWUtPm5ld1RhcmdldCgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0LmNwcAppbmRleCBhODVmMzNiYjZkMjk0MmY4YjE2NzMxMWI3OTIzMDU4MmNh
MDE0OTdiLi5kMDJjMmM2OGVkN2IwM2VjZmQ4NTMyZjQ2NmYzYzMzMDE0ZDYyZWExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uT2JqZWN0TG9nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdExvZyk7CiAKIH0K
IApAQCAtODAsNyArODAsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdDo6
ZGlzYWJsZShWTSYgdm0pCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5j
dGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2coSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0TG9nLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
Q29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDQ0ZDUyMzM4YWFmZGI1ZDA0Y2FkNTcz
NDk1ZDE4ZWY4NzNkOTVjNi4uYmFiYmE1MWM0NjA3ZGFkMmNhZDY3NmZjOTc3OTU1YzFhNTNhNTFh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9y
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxD
b2xsYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxDb2xsYXRvckNv
bnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENv
bGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsQ29sbGF0
b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOwogCiB9CiAKQEAgLTQ1LDggKzQ1
LDggQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yQ29u
c3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc08KIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0b3IoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEludGxDb2xsYXRvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludGxDb2xsYXRvcik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsQ29sbGF0b3IpOwogCiBjb25z
dCBDbGFzc0luZm8gSW50bENvbGxhdG9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9u
IiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgJmNvbGxhdG9yQ29uc3RydWN0b3JUYWJsZSwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvcikgfTsK
IApAQCAtODAsNyArODAsNyBAQCB2b2lkIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpmaW5pc2hD
cmVhdGlvbihWTSYgdm0sIEludGxDb2xsYXRvclByb3RvdHlwZSogY29sbAogICAgIGNvbGxhdG9y
UHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0SW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdElu
dGxDb2xsYXRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxDb2xsYXRvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb2xsYXRvcik7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxDb2xsYXRvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAxMC4xLjIg
SW50bC5Db2xsYXRvciAoW2xvY2FsZXMgWywgb3B0aW9uc11dKSAoRUNNQS00MDIgMi4wKQogICAg
IC8vIDEuIElmIE5ld1RhcmdldCBpcyB1bmRlZmluZWQsIGxldCBuZXdUYXJnZXQgYmUgdGhlIGFj
dGl2ZSBmdW5jdGlvbiBvYmplY3QsIGVsc2UgbGV0IG5ld1RhcmdldCBiZSBOZXdUYXJnZXQuCkBA
IC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEludGxDb2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNvbGxhdG9yKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09m
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAppbmRleCA2YTc5ODNkOGViMTA0ZmU2
NTBkZjdlYmQ3Mjk2NzQwOWNmODBjNDNjLi4wNGNjZGMwNmVlMzM0MmY1ODg2ZWEzOTlhZDY0YTFj
ODNjNGM0ZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
Q29sbGF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKQEAgLTMzLDggKzMzLDkgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRv
clByb3RvdHlwZUdldHRlckNvbXBhcmUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvclByb3RvdHlwZUZ1
bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxDb2xsYXRvclByb3RvdHlwZUdldHRlckNvbXBh
cmUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bENvbGxhdG9yUHJvdG90
eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihJbnRsQ29sbGF0b3JGdW5jQ29tcGFyZSk7CiAKIH0KIApAQCAtNzUsNyArNzYsNyBAQCB2b2lk
IEludGxDb2xsYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19U
T19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JGdW5jQ29tcGFyZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsQ29sbGF0b3JGdW5jQ29tcGFyZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTA0LDcgKzEwNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxD
b2xsYXRvckZ1bmNDb21wYXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3ItPmNvbXBhcmVTdHJpbmdzKGds
b2JhbE9iamVjdCwgeFZpZXdXaXRoU3RyaW5nLnZpZXcsIHlWaWV3V2l0aFN0cmluZy52aWV3KSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvclByb3RvdHlw
ZUdldHRlckNvbXBhcmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bENvbGxhdG9yUHJvdG90eXBl
R2V0dGVyQ29tcGFyZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTMzLDcgKzEzNCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29t
cGFyZShKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJvdW5kQ29t
cGFyZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yUHJv
dG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsQ29sbGF0
b3JQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRp
bWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjM4ODIxMWEyN2RjNGIyYmE5NmNhZTNkOThm
MTA2MDQzN2ViZDkyNy4uZDk1YmYxYjNiYTVkODkxZDUzMWYzN2NjODQ2Y2RlN2RkMGRmNjRiYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2Nh
bGVzT2YpOwogCiB9CiAKQEAgLTY0LDggKzY0LDggQEAgU3RydWN0dXJlKiBJbnRsRGF0ZVRpbWVG
b3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QK
ICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBl
LCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bERhdGVU
aW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxJbnRsRGF0ZVRpbWVGb3JtYXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0KTsKIAogSW50bERhdGVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3I6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxJbnRs
RGF0ZVRpbWVGb3JtYXQsIGNvbnN0cnVjdEludGxEYXRlVGltZUZvcm1hdCkKQEAgLTc4LDcgKzc4
LDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm8KICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNp
dGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBkYXRlVGltZUZvcm1hdFByb3Rv
dHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGF0ZVRpbWVGb3JtYXQpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bERhdGVUaW1lRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMTIuMS4yIEludGwu
RGF0ZVRpbWVGb3JtYXQgKFtsb2NhbGVzIFssIG9wdGlvbnNdXSkgKEVDTUEtNDAyIDIuMCkKICAg
ICAvLyAxLiBJZiBOZXdUYXJnZXQgaXMgdW5kZWZpbmVkLCBsZXQgbmV3VGFyZ2V0IGJlIHRoZSBh
Y3RpdmUgZnVuY3Rpb24gb2JqZWN0LCBlbHNlIGxldCBuZXdUYXJnZXQgYmUgTmV3VGFyZ2V0LgpA
QCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxJbnRsRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgfSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVj
dG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRp
bWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDNkNzA5NzdkOWExOGUzYjc0ZDNl
MDEyZmY0YWQyNGZhMjcwYjFjM2IuLjMzM2JmZGQ1NWRhMmJkZTVjY2ZlZDhlMDQ4YTgzMzkwN2I4
NTE1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRl
VGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMzYsMTAgKzM2LDExIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRl
VGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1l
Rm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZv
cm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zv
cm1hdFRvUGFydHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRGdW5jRm9ybWF0RGF0ZVRpbWUpOwog
CiB9CiAKQEAgLTgyLDcgKzgzLDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RS
QU5TSVRJT04oKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bERhdGVUaW1lRm9ybWF0RnVuY0Zvcm1hdERhdGVUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKElu
dGxEYXRlVGltZUZvcm1hdEZ1bmNGb3JtYXREYXRlVGltZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTA0LDcgKzEwNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxEYXRlVGltZUZvcm1hdEZ1bmNGb3JtYXREYXRlVGltZShKU0dsb2JhCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0LT5mb3JtYXQoZ2xvYmFsT2Jq
ZWN0LCB2YWx1ZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50
bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xMzQsNyArMTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0
ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmoKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGJvdW5kRm9ybWF0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9Q
YXJ0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTYxLDcgKzE2Miw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRv
UGFydHMoSlNHbG9iCiB9CiAKIC8vIGh0dHA6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtRGF0ZVRp
bWVGb3JtYXQtZm9ybWF0UmFuZ2UvI3NlYy1pbnRsLmRhdGV0aW1lZm9ybWF0LnByb3RvdHlwZS5m
b3JtYXRSYW5nZQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bERhdGVU
aW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xODcsNyArMTg4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRp
bWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShkYXRlVGltZUZvcm1hdC0+Zm9ybWF0UmFu
Z2UoZ2xvYmFsT2JqZWN0LCBzdGFydERhdGUsIGVuZERhdGUpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVk
T3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVG
dW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERpc3BsYXlOYW1lc0NvbnN0cnVj
dG9yLmNwcAppbmRleCA1ZTM1ZmU2N2ZjNjkzYTcyYTZiODgyNmYyZGFkYjAwYTlmYzZlOTJlLi4x
Yjk0N2JhY2RlN2MyNDk0ZDhkMDgzMjYzZGExNTU5MDk0YzFjNWFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNwbGF5TmFtZXNDb25z
dHJ1Y3Rvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIFNUQVRJQ19B
U1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0
b3IpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxheU5h
bWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEaXNwbGF5TmFtZXND
b25zdHJ1Y3RvclN1cHBvcnRlZExvY2FsZXNPZik7CiAKIH0KIApAQCAtNjIsOCArNjIsOCBAQCBT
dHJ1Y3R1cmUqIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0
cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxEaXNw
bGF5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsRGlzcGxheU5hbWVzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxEaXNwbGF5TmFtZXMpOwogCiBJbnRsRGlzcGxh
eU5hbWVzQ29uc3RydWN0b3I6OkludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3RvcihWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSW50bERp
c3BsYXlOYW1lcywgY29uc3RydWN0SW50bERpc3BsYXlOYW1lcykKQEAgLTc4LDcgKzc4LDcgQEAg
dm9pZCBJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SW50bERpc3BsYXlOYW1lc1Byb3RvdHkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3NlYy1JbnRsLkRpc3BsYXlOYW1lcwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0SW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RJbnRsRGlzcGxheU5hbWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05OCw3ICs5OCw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxEaXNwbGF5
TmFtZXMoSlNHbG9iYWxPYmplY3QqIGdsCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAy
LyNzZWMtSW50bC5EaXNwbGF5TmFtZXMKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsRGlzcGxheU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxEaXNwbGF5TmFtZXMs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxJbnRsRGlzcGxheU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRB
c0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJEaXNwbGF5TmFtZXMiKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERpc3BsYXlOYW1lc0NvbnN0
cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxEaXNwbGF5
TmFtZXNDb25zdHJ1Y3RvclN1cHBvcnRlZExvY2FsZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERpc3BsYXlOYW1l
c1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxh
eU5hbWVzUHJvdG90eXBlLmNwcAppbmRleCBkYThlYzgwZjQyNTM1ZmZkNjBjOTM5OTc5NDdhMjAy
ZGEzZmIzMTczLi45NWU2ZGQ5NzZlNDc1ZThjMmZkM2UzZTNiYzI5ZDliOGI1MmU0YmQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxh
eU5hbWVzUHJvdG90eXBlLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERpc3BsYXlOYW1lc1By
b3RvdHlwZUZ1bmNPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZUZ1bmNSZXNv
bHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZUZ1
bmNSZXNvbHZlZE9wdGlvbnMpOwogCiB9CiAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBJbnRsRGlz
cGxheU5hbWVzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWRpc3BsYXluYW1lcy8jc2VjLUludGwuRGlzcGxheU5h
bWVzLnByb3RvdHlwZS5vZgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxh
eU5hbWVzUHJvdG90eXBlRnVuY09mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxEaXNwbGF5TmFt
ZXNQcm90b3R5cGVGdW5jT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3LDcgKzg3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVu
Y09mKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2Fs
LWludGwtZGlzcGxheW5hbWVzLyNzZWMtSW50bC5EaXNwbGF5TmFtZXMucHJvdG90eXBlLnJlc29s
dmVkT3B0aW9ucwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxheU5hbWVz
UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsRGlz
cGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZUNv
bnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxMb2NhbGVD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggMTlmNjEyMTE0ZGZhZmY5ZDRmMWJkYjJhZDY1M2M5ODAwZTU0
YWVlNy4uMThjNGNiYTczOWE3OTRhZjUzMzQxOGNkNDc4YWI1NjVjNjlkZTk4YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZUNvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0
b3IuY3BwCkBAIC00OCw4ICs0OCw4IEBAIFN0cnVjdHVyZSogSW50bExvY2FsZUNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxMb2NhbGUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdEludGxMb2NhbGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsTG9jYWxlKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxMb2NhbGUpOwogCiBJbnRsTG9j
YWxlQ29uc3RydWN0b3I6OkludGxMb2NhbGVDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSW50bExvY2FsZSwgY29u
c3RydWN0SW50bExvY2FsZSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBJbnRsTG9jYWxlQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bExvY2FsZVByb3RvdHlwZSogbG9jYWxl
UHIKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZQotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bExvY2FsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsTG9jYWxlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdEludGxMb2NhbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxMb2NhbGUs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bExvY2FsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TG9jYWxlUHJvdG90eXBlLmNwcAppbmRleCA4MGUwNzA1MDNkZWM5MjFiNjQyYTc3ZTQyYTc5NTA3
MjE4ODI2ZmJkLi4xZTFlZWI4NjMzNWZiNjA5NjViYTljMTAzZDc4NjQ5NzI1N2EwYjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90
eXBlLmNwcApAQCAtMzEsMTkgKzMxLDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01heGlt
aXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01pbmltaXplKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsTG9jYWxlUHJvdG90eXBlRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90
eXBlR2V0dGVyQmFzZU5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxl
bmRhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2Fs
ZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlck51bWVyaWMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdT
eXN0ZW0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlclJlZ2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNYXhpbWl6
ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBl
RnVuY01pbmltaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2Nh
bGVQcm90b3R5cGVGdW5jVG9TdHJpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckJhc2VOYW1lKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhcik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2Fz
ZUZpcnN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90
b3R5cGVHZXR0ZXJDb2xsYXRpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
SW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtYmVy
aW5nU3lzdGVtKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJMYW5ndWFnZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24pOwogCiB9CiAKQEAg
LTk2LDcgKzk2LDcgQEAgdm9pZCBJbnRsTG9jYWxlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUu
cHJvdG90eXBlLm1heGltaXplCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2Nh
bGVQcm90b3R5cGVGdW5jTWF4aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVBy
b3RvdHlwZUZ1bmNNYXhpbWl6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTEyLDcgKzExMiw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNN
YXhpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21h
NDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLm1pbmltaXplCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWluaW1pemUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5pbWl6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTI4LDcgKzEyOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5pbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIC8v
IGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLnRvU3Ry
aW5nCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5j
VG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQyLDcgKzE0Miw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5M
b2NhbGUucHJvdG90eXBlLmJhc2VOYW1lCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVyQmFzZU5hbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1
Niw3ICsxNTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90
b3R5cGVHZXR0ZXJCYXNlTmFtZShKU0dsb2JhbE9iamVjdCogZwogfQogCiAvLyBodHRwczovL3Rj
MzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5jYWxlbmRhcgotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhbGVuZGFyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIoSlNHbG9iYWxPYmpl
Y3QqIGcKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5w
cm90b3R5cGUuY2FzZUZpcnN0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2Fs
ZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg0LDcg
KzE4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlckNhc2VGaXJzdChKU0dsb2JhbE9iamVjdCoKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVz
L2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUuY29sbGF0aW9uCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDb2xsYXRpb24oSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTk4LDcgKzE5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbihKU0dsb2JhbE9iamVj
dCoKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90
b3R5cGUuaG91ckN5Y2xlCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJIb3VyQ3ljbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlckhvdXJDeWNsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEyLDcgKzIx
Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlckhvdXJDeWNsZShKU0dsb2JhbE9iamVjdCoKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2Vj
bWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUubnVtZXJpYwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjI1LDcgKzIyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWVyaWMoSlNHbG9iYWxPYmplY3QqIGdsCiB9CiAK
IC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLm51
bWJlcmluZ1N5c3RlbQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJv
dG90eXBlR2V0dGVyTnVtYmVyaW5nU3lzdGVtKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIzOSw3ICsyMzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0oSlNHbG9iYWxPYgogfQogCiAvLyBodHRwczov
L3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5sYW5ndWFnZQotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTGFuZ3Vh
Z2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1YWdl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTMsNyArMjUzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTGFuZ3VhZ2UoSlNHbG9iYWxP
YmplY3QqIGcKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2Fs
ZS5wcm90b3R5cGUuc2NyaXB0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlclNjcmlwdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjY3LDcgKzI2Nyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRl
clNjcmlwdChKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21h
NDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLnJlZ2lvbgotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24sIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCmluZGV4IGJjOGE1NTczODZhYmYyNWFlOWQxMGY1
NGE1NzkwNjI2M2I1NGMwMjIuLjg5NWJiNDdhYTViNTkwYzMxMGM1MTU3YTRlMDdjNGE1ZmU4ZGIx
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJG
b3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2Yo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2Yp
OwogCiB9CiAKQEAgLTY0LDggKzY0LDggQEAgU3RydWN0dXJlKiBJbnRsTnVtYmVyRm9ybWF0Q29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KgogICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJ
bmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSW50bE51bWJl
ckZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRs
TnVtYmVyRm9ybWF0KTsKIAogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpJbnRsTnVtYmVy
Rm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IElu
dGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxOdW1iZXJGb3JtYXQsIGNvbnN0
cnVjdEludGxOdW1iZXJGb3JtYXQpCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgSW50bE51bWJlckZv
cm1hdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxOdW1iZXJGb3JtYXRQ
cm90b3R5CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPnByb3RvdHlwZSwgbnVtYmVyRm9ybWF0UHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
SW50bE51bWJlckZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAxLDcgKzEwMSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxOdW1iZXJG
b3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShudW1i
ZXJGb3JtYXQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SW50bE51bWJlckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSW50bE51bWJlckZvcm1h
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICAvLyAxMS4xLjIgSW50bC5OdW1iZXJGb3JtYXQgKFtsb2NhbGVzIFssIG9wdGlvbnNd
XSkgKEVDTUEtNDAyIDIuMCkKICAgICAvLyAxLiBJZiBOZXdUYXJnZXQgaXMgdW5kZWZpbmVkLCBs
ZXQgbmV3VGFyZ2V0IGJlIHRoZSBhY3RpdmUgZnVuY3Rpb24gb2JqZWN0LCBlbHNlIGxldCBuZXdU
YXJnZXQgYmUgTmV3VGFyZ2V0LgpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPCiAgICAgfSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxO
dW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNP
ZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCBkOTk5Yzc0
MzUyZWM5ZDBkMzk3NTEyNTk4OWNlM2I5YWI3OWUwOWU4Li4yZWU5ODI5MzRiNDMwNGY4OTk4OWZh
OWUyM2FlMDZjMDljZDBlNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMzQsOSArMzQs
MTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxOdW1iZXJG
b3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5j
UmVzb2x2ZWRPcHRpb25zKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxO
dW1iZXJGb3JtYXRGdW5jRm9ybWF0KTsKIAogfQogCkBAIC03OSw3ICs4MCw3IEBAIHZvaWQgSW50
bE51bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogfQogCiAvLyBo
dHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLW51bWJlci1mb3JtYXQtZnVuY3Rpb25zCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0RnVuY0Zvcm1h
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0RnVuY0Zvcm1hdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTA3LDcgKzEwOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRGdW5jRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBn
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShudW1iZXJGb3JtYXQtPmZvcm1hdChnbG9iYWxP
YmplY3QsIHZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51
bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRs
TnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMzYsNyArMTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVy
Rm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGJvdW5kRm9ybWF0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTUsNyArMTU2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMoSlNH
bG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShudW1i
ZXJGb3JtYXQtPmZvcm1hdFRvUGFydHMoZ2xvYmFsT2JqZWN0LCB2YWx1ZSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0UHJvdG90
eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCBmYTUzM2MzMTQwZTg3YzI4
NTg3MGNiMzQ1ZDBjNWM2ODE2NWE2ZTk0Li45OTdkOTE3YjJlNTNmNWFkOWUxYTY5NTQwYjgyMjI3
OTNmYTVhYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
LmNwcApAQCAtNzAsNyArNzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxPYmplY3QpOwogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGludGxPYmplY3RGdW5jR2V0Q2Fub25pY2FsTG9jYWxlcyk7CiAKIHN0YXRpYyBKU1ZhbHVl
IGNyZWF0ZUNvbGxhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogewpA
QCAtMTQwMCw3ICsxNDAwLDcgQEAgYm9vbCBpc1dlbGxGb3JtZWRDdXJyZW5jeUNvZGUoU3RyaW5n
VmlldyBjdXJyZW5jeSkKICAgICByZXR1cm4gY3VycmVuY3kubGVuZ3RoKCkgPT0gMyAmJiBjdXJy
ZW5jeS5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYT4oKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIC8vIEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyhsb2NhbGVzKQogICAgIC8vIGh0dHBzOi8v
dGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWludGwuZ2V0Y2Fub25pY2FsbG9jYWxlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVzQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IuY3BwCmluZGV4IDk5ZDA4ODJjZmJhZGYwYmU1YjQ5YTI1ODk1OGJjZmRk
NzIzYjc1MjAuLmFmMzlhOTY2M2FmMDc5YzVkMjc4YzI3ZjQ0NjhjNTY1ZDFlMzY0ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFs
UnVsZXNDb25zdHJ1Y3Rvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsUGx1cmFsUnVsZXND
b25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQ
bHVyYWxSdWxlc0NvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFBs
dXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTsKIAogfQogCkBAIC02
NCw4ICs2NCw4IEBAIFN0cnVjdHVyZSogSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIFN0cnVjdHVy
ZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxG
dW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SW50bFBsdXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSW50bFBsdXJhbFJ1bGVzKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxQbHVyYWxSdWxlcyk7CiAK
IEludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yOjpJbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBjYWxsSW50bFBsdXJhbFJ1bGVzLCBjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMp
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlCiAgICAgcGx1cmFsUnVs
ZXNQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5jb25zdHJ1Y3RvciwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50bFBsdXJhbFJ1bGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDAsNyArMTAwLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bFBsdXJh
bFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHBs
dXJhbFJ1bGVzKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsUGx1cmFsUnVsZXMsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9u
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJQbHVyYWxSdWxlcyIpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvckZ1bmNT
dXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzQ29u
c3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBsdXJhbFJ1bGVz
UHJvdG90eXBlLmNwcAppbmRleCBiY2ZhOTQ5Y2VjOTcxNmViODM1OTIxMmQwYzJkODVlMjdlNzhi
ZWJjLi41MzI5NjEwN2Y0MTQ0NDhmMzZlNzQxMjZmMGMwMDgwNWU2ZjllZjBiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVyYWxSdWxlc1By
b3RvdHlwZS5jcHAKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1
bmNTZWxlY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNSZXNvbHZlZE9w
dGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyk7CiAKIH0KIApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIEludGxQbHVyYWxS
dWxlc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJTkdf
VEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtOTIsNyArOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVy
YWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QoSlNHbG9iYWxPYmplY3QqCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocGx1cmFsUnVsZXMtPnNlbGVjdChnbG9i
YWxPYmplY3QsIHZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
YWM0NTU0MWQ3YWNlOGMyZmZlNzVkZjM5ZWM5ZTMzZjJlNjllN2U4Ni4uZDEyMmRjZGEyOTBmZmYx
NzczNmRkMDViOTI5YzM0NjNhZDY2YzhmYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0
cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFJlbGF0
aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50
bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZik7CiAK
IH0KIApAQCAtNjMsOCArNjMsOCBAQCBTdHJ1Y3R1cmUqIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYgogICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZv
KEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxs
SW50bFJlbGF0aXZlVGltZUZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KTsKIAogSW50bFJlbGF0aXZlVGltZUZv
cm1hdENvbnN0cnVjdG9yOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbElu
dGxSZWxhdGl2ZVRpbWVGb3JtYXQsIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpCkBA
IC03OSw3ICs3OSw3IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxSZWxhdGl2ZVRpbWVGCiB9CiAKIC8vIGh0dHBzOi8v
dGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bFJlbGF0aXZlVGltZUZvcm1hdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFsT2Jq
ZQogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuUmVsYXRpdmVUaW1l
Rm9ybWF0Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bFJlbGF0
aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZwogfQogCiAv
LyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnN1
cHBvcnRlZExvY2FsZXNPZgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRM
b2NhbGVzT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHAKaW5kZXggMDNiZDVkZmNlYzU4ZTFmYjMzNTY2YzI4YWUzMjY0NmE4NTVlY2U1Zi4uMjA3
OGFkMmNmMzlmYmRmOTlhY2I4MDE2NGUyMjNhNzgzMTdkM2Q2OSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZv
cm1hdFByb3RvdHlwZS5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJv
dG90eXBlRnVuY0Zvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQ
cm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0
UHJvdG90eXBlRnVuY0Zvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJ
bnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlw
ZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOwogCiB9CiAKQEAgLTc2LDcgKzc2LDcgQEAgdm9pZCBJbnRs
UmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB9CiAK
IC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQu
cHJvdG90eXBlLmZvcm1hdAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRs
UmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtOTUsNyArOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxh
dGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KEpTR2xvYmFsTwogfQogCiAvLyBodHRw
czovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuUmVsYXRpdmVUaW1lRm9ybWF0LnByb3RvdHlw
ZS5mb3JtYXRUb1BhcnRzCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxhdGl2
ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhK
UwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWludGwucmVsYXRpdmV0aW1l
Zm9ybWF0LnByb3RvdHlwZS5yZXNvbHZlZG9wdGlvbnMKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNS
ZXNvbHZlZE9wdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50SXRlcmF0b3JQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlw
ZS5jcHAKaW5kZXggNjUwMDljOTJmNTM1OTljYzdkODFkMGFjZDdkNTMwNmE3ZmQ2MWNjZC4uODIx
NzhlY2RhZjE2YWVlNGFiZTJlMDg1Mzg3NTczNDAxOWM1ZGEwZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVyYXRvclBy
b3RvdHlwZS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50SXRlcmF0b3JQcm90b3R5
cGVGdW5jTmV4dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KTsK
IAogfQogCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogfQogCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9z
YWwtaW50bC1zZWdtZW50ZXIvI3NlYy0lc2VnbWVudGl0ZXJhdG9ycHJvdG90eXBlJS5uZXh0Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50SXRlcmF0b3JQcm90b3R5cGVG
dW5jTmV4dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudEl0ZXJhdG9yUHJvdG90eXBl
RnVuY05leHQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDFl
MWI5ZWU5MjY3M2YxMmZiNGY2NzVjMWU4YTY0ZGVmZDBlZmI5ZmMuLmViMWJiYjQ4ZjFhY2RjM2Ey
MWI3Y2U5YTg1ZTFjNTk3MjM5ZTBlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVT
VFJVQ1RJQkxFKEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50ZXJDb25zdHJ1Y3RvclN1cHBvcnRlZExvY2Fs
ZXNPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mKTsK
IAogfQogCkBAIC02Miw4ICs2Miw4IEBAIFN0cnVjdHVyZSogSW50bFNlZ21lbnRlckNvbnN0cnVj
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxTZWdtZW50ZXIoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEludGxTZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsU2VnbWVudGVyKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxTZWdtZW50ZXIp
OwogCiBJbnRsU2VnbWVudGVyQ29uc3RydWN0b3I6OkludGxTZWdtZW50ZXJDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBj
YWxsSW50bFNlZ21lbnRlciwgY29uc3RydWN0SW50bFNlZ21lbnRlcikKQEAgLTc4LDcgKzc4LDcg
QEAgdm9pZCBJbnRsU2VnbWVudGVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SW50bFNlZ21lbnRlclByb3RvdHlwZSogc2UKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0
MDIvI3NlYy1JbnRsLlNlZ21lbnRlcgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0SW50bFNlZ21lbnRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJ
bnRsU2VnbWVudGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05OCw3ICs5OCw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxTZWdtZW50ZXIoSlNH
bG9iYWxPYmplY3QqIGdsb2JhCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
SW50bC5TZWdtZW50ZXIKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJ
bnRsU2VnbWVudGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxTZWdtZW50ZXIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJ
bnRsU2VnbWVudGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJTZWdtZW50ZXIiKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxl
c09mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxTZWdtZW50ZXJDb25zdHJ1Y3RvclN1cHBvcnRl
ZExvY2FsZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBlLmNwcAppbmRleCA5YmJj
MzQyYjgwMjliYmFjYTUzMWM2OWY0ZDY4OWU0OTM4ZWVjYmEyLi4xY2Y0ZDBkMjg3OWUyZTFhYjk1
M2E0Yzk1MmE1MTZhZGQ3ZWYzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBlLmNwcApAQCAtMzEsOCArMzEsOCBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNTZWdtZW50KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVu
dGVyUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlclByb3Rv
dHlwZUZ1bmNTZWdtZW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxT
ZWdtZW50ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKIAogfQogCkBAIC03NCw3ICs3
NCw3IEBAIHZvaWQgSW50bFNlZ21lbnRlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogfQogCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1zZWdtZW50ZXIvI3NlYy1p
bnRsLnNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVudAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNTZWdtZW50LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC04Nyw3ICs4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21l
bnRlclByb3RvdHlwZUZ1bmNTZWdtZW50KEpTR2xvYmFsT2JqZWN0KiBnCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLUludGwuU2VnbWVudGVyLnBy
b3RvdHlwZS5yZXNvbHZlZE9wdGlvbnMKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxT
ZWdtZW50c1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
U2VnbWVudHNQcm90b3R5cGUuY3BwCmluZGV4IDUzOTY1MGM0ODBjMTNjZTIyYWRkNzg4Y2EwOTU3
YTU1NWQ0ZGJjYWUuLjRjOTNlZDVmMDJkMmRiMzUxZGJkMTgzMTI5NmRiMTZmYTk2ZjRiZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50c1Byb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRz
UHJvdG90eXBlLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRzUHJvdG90eXBlRnVu
Y0NvbnRhaW5pbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmNJdGVyYXRvcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bFNlZ21lbnRzUHJvdG90eXBlRnVuY0NvbnRhaW5pbmcpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRzUHJvdG90eXBlRnVuY0l0ZXJhdG9yKTsK
IAogfQogCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgSW50bFNlZ21lbnRzUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB9CiAKIC8v
IGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLSVzZWdtZW50c3By
b3RvdHlwZSUuY29udGFpbmluZwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2Vn
bWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2Vn
bWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODYs
NyArODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50c1Byb3Rv
dHlwZUZ1bmNDb250YWluaW5nKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBodHRwczovL3RjMzku
ZXMvcHJvcG9zYWwtaW50bC1zZWdtZW50ZXIvI3NlYy0lc2VnbWVudHNwcm90b3R5cGUlLUBAaXRl
cmF0b3IKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRzUHJvdG90eXBl
RnVuY0l0ZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxTZWdtZW50c1Byb3RvdHlwZUZ1
bmNJdGVyYXRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
OWMwYTY4YTAxZTQyYzFiZjE4ZDUyODI0MjA3M2I5MDJkNWMxYTY0MC4uOTA4ZDMxYzZlYjhhMjI1
NmM3YTdlNzc5YWQ1OGUzYzUyNDkxMDNhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3BwCkBAIC0zMywx
MCArMzMsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyRnVuY0lzVmlldyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5QnVm
ZmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2hh
cmVkQXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyRnVuY0lzVmlldyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXJyYXlCdWZmZXIpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QXJyYXlCdWZmZXIpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0U2hhcmVkQXJyYXlCdWZmZXIpOwogCiB0ZW1wbGF0
ZTw+CiBjb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7
CkBAIC0xMTcsMTkgKzExNywxOSBAQCBjb25zdCBDbGFzc0luZm8qIEpTR2VuZXJpY0FycmF5QnVm
ZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+OjppbmZvKCkKICAgICByZXR1cm4gJkpTR2VuZXJp
Y0FycmF5QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+OjpzX2luZm87CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUJ1ZmZlcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJBcnJheUJ1ZmZlciIpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0QXJyYXlCdWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTR2VuZXJpY0FycmF5QnVmZmVyQ29u
c3RydWN0b3I8QXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdD46OmNvbnN0cnVjdEltcGwo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNHZW5lcmljQXJyYXlC
dWZmZXJDb25zdHJ1Y3RvcjxBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpTaGFyZWQ+Ojpjb25zdHJ1
Y3RJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KQEAgLTEzNyw3ICsxMzcsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1
ZmZlcihKU0dsb2JhbE9iamVjdCogZwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
IEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAvLyBFQ01BIDI0
LjEuMy4xCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyRnVuY0lzVmll
dyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlckZ1bmNJc1ZpZXcsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oanNEeW5hbWljQ2FzdDxKU0FycmF5QnVmZmVyVmll
dyo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclBy
b3RvdHlwZS5jcHAKaW5kZXggODU5NDQ0MmNkZWIyY2RhM2QyNzkwM2ZhYzJmM2Y2N2ZhYzc1ZDYw
OS4uM2QzNjE4N2NiOGNiNzYxODU0NTQxNjA2Nzc1OWU0YzI2OTNkZGI2MSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3RvdHlw
ZS5jcHAKQEAgLTMxLDcgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5
dGVMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2hhcmVkQXJyYXlC
dWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYy
LDcgKzY2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlCdWZm
ZXJQcm90b0Z1bmNTbGljZShKU0dsb2JhbE9iamVjdCogZ2wKIH0KIAogLy8gaHR0cDovL3RjMzku
Z2l0aHViLmlvL2VjbWFzY3JpcHRfc2hhcmVkbWVtL3NobWVtLmh0bWwjc2VjLWdldC1hcnJheWJ1
ZmZlci5wcm90b3R5cGUuYnl0ZWxlbmd0aAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtODAsNyArODQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgoSlNHbG9iYQogfQogCiAv
LyBodHRwOi8vdGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdF9zaGFyZWRtZW0vc2htZW0uaHRtbCNT
dHJ1Y3R1cmVkRGF0YS5TaGFyZWRBcnJheUJ1ZmZlci5wcm90b3R5cGUuZ2V0X2J5dGVMZW5ndGgK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNoYXJlZEFycmF5QnVmZmVyUHJv
dG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzaGFyZWRBcnJheUJ1
ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCmluZGV4
IGI2ZWRkZTZjYTFjNTRkNjQwZTdiNGExZTRhMGQ2ZGQxY2VjNmI0MzEuLjQ5NWJjYTA1OTcwM2Uy
NGU4ZGUzMTY5ZDYzN2MzMDZmMGU1MDZjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTQm91bmRGdW5jdGlvbjo6c19pbmZvID0geyAi
RnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTQm91bmRGdW5jdGlvbikgfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYm91bmRU
aGlzTm9BcmdzRnVuY3Rpb25DYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRGdW5jdGlv
biA9IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogCkBA
IC02MCw3ICs2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9B
cmdzRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgdGFyZ2V0RnVuY3Rpb24sIGNhbGxEYXRhLCBi
b3VuZEZ1bmN0aW9uLT5ib3VuZFRoaXMoKSwgYXJncykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJvdW5k
RnVuY3Rpb25DYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04Nyw3ICs4Nyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVl
OjplbmNvZGUoY2FsbChnbG9iYWxPYmplY3QsIHRhcmdldEZ1bmN0aW9uLCBjYWxsRGF0YSwgYm91
bmRGdW5jdGlvbi0+Ym91bmRUaGlzKCksIGFyZ3MpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNCb3VuZEZ1
bmN0aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGNhbGxGcmFt
ZS0+anNDYWxsZWUoKSk7CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ29uc3RydWN0KEpTR2xvYmFsT2JqZWN0
KiBnbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0KGdsb2JhbE9iamVjdCwg
dGFyZ2V0RnVuY3Rpb24sIGNvbnN0cnVjdERhdGEsIGFyZ3MsIG5ld1RhcmdldCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNvbnN0cnVjdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTQ0LDEyICsxNDQsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3Vu
ZEZ1bmN0aW9uQ29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3QoZ2xvYmFsT2Jq
ZWN0LCB0YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0RGF0YSwgYXJncywgbmV3VGFyZ2V0KSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihpc0JvdW5kRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1ZhbHVlKHN0YXRpY19jYXN0PGJvb2w+KGpzRHluYW1pY0Nhc3Q8SlNCb3VuZEZ1bmN0aW9u
Kj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNJbnN0YW5jZUJvdW5kRnVu
Y3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEpTQm91bmRGdW5jdGlvbiogYm91bmRPYmplY3QgPSBqc0Nhc3Q8SlNCb3VuZEZ1bmN0aW9uKj4o
Y2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGNh
bGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCmluZGV4IGRkNmIwZTRkMDMwZjNlZTg2MDIzNWJj
ZDZkNzM1OGFjYzZmOGJiM2UuLjc2NjlkZDMwZTdkOTU3YTQxOTk2NjJmY2EzNTJhZWYxY2Y1YjE2
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5j
dGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlv
bi5oCkBAIC0yOSwxMiArMjksMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVu
Y3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ29uc3RydWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVu
Y3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgaXNCb3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0luc3RhbmNlQm91bmRGdW5j
dGlvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihib3VuZEZ1bmN0aW9uQ2FsbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5k
VGhpc05vQXJnc0Z1bmN0aW9uQ29uc3RydWN0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Ym91bmRGdW5jdGlvbkNvbnN0cnVjdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGlzQm91
bmRGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGhhc0luc3RhbmNlQm91bmRG
dW5jdGlvbik7CiAKIGNsYXNzIEpTQm91bmRGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYyBKU0Z1bmN0
aW9uIHsKIHB1YmxpYzoKQEAgLTkzLDkgKzkzLDkgQEAgY2xhc3MgSlNCb3VuZEZ1bmN0aW9uIGZp
bmFsIDogcHVibGljIEpTRnVuY3Rpb24gewogICAgIGRvdWJsZSBtX2xlbmd0aDsKIH07CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5j
dGlvbkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlz
Tm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNhbGwpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ29uc3RydWN0KTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25DYWxsKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QpOwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ3Vz
dG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggYWUzNWJhNDAzOTU4YmRk
ZDAxNjllYzk5NjU4MDIzN2ZkODk2NDg3ZS4uNWE4NTFkZTc1YmYyMzhkMWI0Y2MyYjhkMjE4OTE0
NmM3ZmMwNmViZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
dXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKQEAgLTMzLDcgKzMzLDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0N1c3RvbUdldHRlclNldHRl
ckZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlv
bikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY3VzdG9tR2V0dGVy
U2V0dGVyRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY3VzdG9tR2V0
dGVyU2V0dGVyRnVuY3Rpb25DYWxsKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGN1c3Rv
bUdldHRlclNldHRlckZ1bmN0aW9uQ2FsbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApp
bmRleCA0YmIyOGZkOTlmMmY5NjMwOWIxZDNhYjZhYTcyMTYzYWQ5ZTRlYTNiLi4yMWUyNjcwYzJm
MDgxM2UxYzEwNTQ5YTAzNWE2ZGIwNTc3NjUzYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApAQCAtNTksMjUgKzU5
LDI1IEBAIG5hbWVzcGFjZSBKU0MgewogQGVuZAogKi8KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEludDgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRJ
bnQxNihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0
VWludDgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MTYoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNH
ZXRVaW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9hdDMyKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9G
dW5jR2V0RmxvYXQ2NChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDgoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90
b0Z1bmNTZXRJbnQxNihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDMyKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJv
dG9GdW5jU2V0VWludDgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MTYoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQ
cm90b0Z1bmNTZXRVaW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDMyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFW
aWV3UHJvdG9GdW5jU2V0RmxvYXQ2NChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zm
c2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MTYpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvRnVuY0dldEludDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0
YVZpZXdQcm90b0Z1bmNHZXRVaW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGFW
aWV3UHJvdG9GdW5jR2V0VWludDE2KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZp
ZXdQcm90b0Z1bmNHZXRVaW50MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRhVmll
d1Byb3RvRnVuY0dldEZsb2F0MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRhVmll
d1Byb3RvRnVuY0dldEZsb2F0NjQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRhVmll
d1Byb3RvRnVuY1NldEludDgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1By
b3RvRnVuY1NldEludDE2KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90
b0Z1bmNTZXRJbnQzMik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9G
dW5jU2V0VWludDgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVu
Y1NldFVpbnQxNik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5j
U2V0VWludDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDY0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0dldHRl
ckJ1ZmZlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJC
eXRlTGVuZ3RoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0dldHRl
ckJ5dGVPZmZzZXQpOwogCiB9CiAKQEAgLTIxNSw3ICsyMTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBz
ZXREYXRhKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogCiBJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm1pc3NpbmctcHJvdG90eXBlcyIpCiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ1ZmZlcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMjcsNyArMjI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh2aWV3LT5wb3NzaWJs
eVNoYXJlZEpTQnVmZmVyKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjQxLDcgKzI0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc051bWJlcih2aWV3LT5sZW5ndGgoKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zmc2V0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zmc2V0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNTUsODIgKzI1NSw4MiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodmlldy0+Ynl0ZU9mZnNldCgpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQ4
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50OCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gZ2V0RGF0YTxJbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MTYoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQxNiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
Z2V0RGF0YTxJbnQxNkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEludDMyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MzIsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGdl
dERhdGE8SW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50OChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQ4LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBnZXRE
YXRhPFVpbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBnZXRE
YXRhPFVpbnQxNkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gZ2V0
RGF0YTxVaW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9hdDMyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
Z2V0RGF0YTxGbG9hdDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQ2NChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0NjQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIGdldERhdGE8RmxvYXQ2NEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDgo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQ4LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBzZXREYXRhPEludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQxNihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDE2LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
ZXREYXRhPEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50MzIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0
RGF0YTxJbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldFVpbnQ4KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDgsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldERh
dGE8VWludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MTYoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MTYsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldERh
dGE8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDMyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDMyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXRE
YXRhPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEZsb2F0MzIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDMyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
ZXREYXRhPEZsb2F0MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0RmxvYXQ2NCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAppbmRleCBhN2Vi
NTg1NTA0YWM4NDFmN2FiMTgxZDY0NzZhOGQ2YzhiODE4ZjFjLi4yYTAwODg1NTk2MDZmODE0M2Vi
ZmJkYWM0YzgzNWIxNzhmNTQ3OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJp
ZXZlQXJndW1lbnRzKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTRnVuY3Rpb24qIGZ1
bmN0CiAgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
RnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGFyZ3VtZW50c0dldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpAQCAtMzc0LDcg
KzM3NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVyRnVuY3Rpb24oVk0mIHZtLCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNGdW5jdGlvbioKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1
bHQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY2FsbGVyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggYzA0NjgyYzA4YjIwZmUwMzk3ZjdiY2FjNmY1
NTNlZjdjM2ViMDNlMi4uMjU4OTU1ZjBlM2IyYjdiYmU0YTMzNWM4MzBiZGRlOTI5NDZkNjYzMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaApAQCAtNDksNyAr
NDksNyBAQCBjbGFzcyBTaWduYXR1cmU7CiB9CiAKIAotSlNfRVhQT1JUX1BSSVZBVEUgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvcik7CiAKIEpTX0VYUE9S
VF9QUklWQVRFIFN0cmluZyBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoVk0mLCBKU09iamVjdCop
OwogCkBAIC0yMTcsOSArMjE3LDYgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1YmxpYyBKU0NhbGxl
ZSB7CiAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxs
ZXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
LQogICAgIHVpbnRwdHJfdCBtX2V4ZWN1dGFibGVPclJhcmVEYXRhOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdD
b25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCmluZGV4IDRkYzRhZWE2ODE2M2E5MzFhYjU4ZDYxMDY4
NmFjZjA4OTEwNTkyMmMuLjBkOGI4MWY0OTViYjRlZGQ3YjM3NzM2YTNmNTFkZGU2MWQ2NzFkMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKQEAgLTI5LDYgKzI5LDI4IEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogCitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNhbGxJbnQ4QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsSW50MTZBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnQzMkFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFVpbnQ4QXJyYXkpOworSlNfRVhQT1JUX1BSSVZB
VEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVWludDhDbGFtcGVkQXJyYXkpOworSlNf
RVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVWludDE2QXJyYXkp
OworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVWludDMy
QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxs
RmxvYXQzMkFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY2FsbEZsb2F0NjRBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNhbGxEYXRhVmlldyk7CisKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50OEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50MTZBcnJheSk7CitKU19FWFBPUlRf
UFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludDMyQXJyYXkpOwor
SlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVaW50
OEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29u
c3RydWN0VWludDhDbGFtcGVkQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVaW50MTZBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFVpbnQzMkFycmF5KTsKK0pTX0VYUE9S
VF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RmxvYXQzMkFycmF5
KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
RmxvYXQ2NEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0RGF0YVZpZXcpOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBj
bGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIElu
dGVybmFsRnVuY3Rpb24gewogcHVibGljOgpAQCAtNDQsNiArNjYsNjQgQEAgY2xhc3MgSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0
aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYsIEpTR2xv
YmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogCisgICAgc3RhdGljIGNvbnN0ZXhwciBS
YXdOYXRpdmVGdW5jdGlvbiBjYWxsQ29uc3RydWN0b3IoKQorICAgIHsKKyAgICAgICAgc3dpdGNo
IChWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgeworICAgICAgICBjYXNlIFR5cGVJ
bnQ4OgorICAgICAgICAgICAgcmV0dXJuIGNhbGxJbnQ4QXJyYXk7CisgICAgICAgIGNhc2UgVHlw
ZUludDE2OgorICAgICAgICAgICAgcmV0dXJuIGNhbGxJbnQxNkFycmF5OworICAgICAgICBjYXNl
IFR5cGVJbnQzMjoKKyAgICAgICAgICAgIHJldHVybiBjYWxsSW50MzJBcnJheTsKKyAgICAgICAg
Y2FzZSBUeXBlVWludDg6CisgICAgICAgICAgICByZXR1cm4gY2FsbFVpbnQ4QXJyYXk7CisgICAg
ICAgIGNhc2UgVHlwZVVpbnQ4Q2xhbXBlZDoKKyAgICAgICAgICAgIHJldHVybiBjYWxsVWludDhD
bGFtcGVkQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQxNjoKKyAgICAgICAgICAgIHJldHVy
biBjYWxsVWludDE2QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQzMjoKKyAgICAgICAgICAg
IHJldHVybiBjYWxsVWludDMyQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6CisgICAg
ICAgICAgICByZXR1cm4gY2FsbEZsb2F0MzJBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlRmxvYXQ2
NDoKKyAgICAgICAgICAgIHJldHVybiBjYWxsRmxvYXQ2NEFycmF5OworICAgICAgICBjYXNlIFR5
cGVEYXRhVmlldzoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3REYXRhVmlldzsKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIENSQVNIX1VOREVSX0NPTlNURVhQUl9DT05URVhUKCk7
CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0
YXRpYyBjb25zdGV4cHIgUmF3TmF0aXZlRnVuY3Rpb24gY29uc3RydWN0Q29uc3RydWN0b3IoKQor
ICAgIHsKKyAgICAgICAgc3dpdGNoIChWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSkg
eworICAgICAgICBjYXNlIFR5cGVJbnQ4OgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdElu
dDhBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlSW50MTY6CisgICAgICAgICAgICByZXR1cm4gY29u
c3RydWN0SW50MTZBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlSW50MzI6CisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RydWN0SW50MzJBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDg6CisgICAg
ICAgICAgICByZXR1cm4gY29uc3RydWN0VWludDhBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWlu
dDhDbGFtcGVkOgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdFVpbnQ4Q2xhbXBlZEFycmF5
OworICAgICAgICBjYXNlIFR5cGVVaW50MTY6CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0
VWludDE2QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQzMjoKKyAgICAgICAgICAgIHJldHVy
biBjb25zdHJ1Y3RVaW50MzJBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoKKyAgICAg
ICAgICAgIHJldHVybiBjb25zdHJ1Y3RGbG9hdDMyQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZUZs
b2F0NjQ6CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0RmxvYXQ2NEFycmF5OworICAgICAg
ICBjYXNlIFR5cGVEYXRhVmlldzoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3REYXRhVmll
dzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIENSQVNIX1VOREVSX0NPTlNURVhQUl9D
T05URVhUKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0K
KwogcHJpdmF0ZToKICAgICBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKFZNJiwg
U3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0
KiwgSlNPYmplY3QqIHByb3RvdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBGdW5jdGlvbkV4ZWN1
dGFibGUqIHByaXZhdGVBbGxvY2F0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3JJbmxpbmVzLmgKaW5kZXggMWU5NTE2YWViNmJjNTU3ZjM4YThkOWM5YjIzMDQ5ZWFi
YjdjZGJhNS4uMmRmYTdlYjQwNWVmZDI1OTE4MjI3N2ExNDgzMTZkM2FiYTY0ZWVhNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdDb25zdHJ1Y3RvcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCkBAIC0zNywxNSAr
MzcsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNz
Pgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNUeXBlZEFy
cmF5VmlldyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVy
aWNUeXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+CiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
PFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEdlbmVy
aWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+LCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZp
ZXc8Vmlld0NsYXNzPikKKyAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbENvbnN0cnVjdG9y
KCksIGNvbnN0cnVjdENvbnN0cnVjdG9yKCkpCiB7CiB9CiAKQEAgLTIwNiw3ICsyMDAsNyBAQCBp
bmxpbmUgSlNPYmplY3QqIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld1dpdGhBcmd1bWVu
dHMoSlNHbG9iYWxPYmplY3QqIGdsbwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5
VmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0FMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlW
aWV3SW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQ3LDcgKzI0MSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFs
T2JqZWN0KiBnbG9iCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0FMV0FZU19JTkxJTkUgRW5j
b2RlZEpTVmFsdWUgY2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKaW5kZXggYTAzZGYzMWFj
MjQyODcwNzg5YTFlYjdmZTRiNmRlMThhYjc4NjljZi4uY2M2ZWRhMTE2OWVlMTI4Njc1MTczNmRk
NWU5OTVlZmU5NDQ3NDgxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlw
ZUZ1bmN0aW9ucy5oCkBAIC0xMDAsNyArMTAwLDcgQEAgaW5saW5lIHVuc2lnbmVkIGFyZ3VtZW50
Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQsIChWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTE0Nyw3ICsx
NDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvRnVuY1NldChWTSYgdm0sIEpTR2xvYmFsTwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
aWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluLCAoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCkBAIC0xNzksNyArMTc5LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmND
b3B5V2l0aGluKFZNJiB2bSwgSlMKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNJbmNsdWRlcyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5
Vmlld1Byb3RvRnVuY0luY2x1ZGVzLCAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCkBAIC0yMjQsNyArMjI0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyhWTSYgdm0s
IEpTR2wKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5k
ZXhPZiwgKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
IApAQCAtMjYxLDcgKzI2MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZihWTSYgdm0sIEpTR2xvCiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4sIChWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTMwMCw3ICszMDAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVu
Y0pvaW4oVk0mIHZtLCBKU0dsb2JhbAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0xhc3RJbmRleE9mKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YsIChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTM1MCw3ICszNTAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRl
eE9mKFZNJiB2bSwgSgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVu
Y0J1ZmZlcihWTSYsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvR2V0dGVyRnVuY0J1ZmZlciwgKFZNJiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDIyLjIuMy4zCiAgICAgVmlld0NsYXNz
KiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkp
OwpAQCAtMzU5LDcgKzM1OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKFZNJiwgSlNHCiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5l
cmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgsIChWTSYsIEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDIyLjIuMy4xNwogICAgIFZp
ZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKQEAgLTM2OCw3ICszNjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aChWTSYsIEpTRwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgoVk0mLCBK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChW
TSYsIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDIy
LjIuMy4yCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwpAQCAtMzc3LDcgKzM3Nyw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZUxl
bmd0aChWTSYsCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0
ZU9mZnNldChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5j
Qnl0ZU9mZnNldCwgKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgLy8gMjIuMi4zLjMKICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
Vmlld0NsYXNzKj4oY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CkBAIC0zODYsNyArMzg2LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dl
dHRlckZ1bmNCeXRlT2Zmc2V0KFZNJiwKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNz
PgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0Z1bmNSZXZlcnNlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSwgKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogLy8gICAgVk0mIHZtID0gZ2V0Vk0oZ2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC00MDMsNyArNDAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKFZNJiB2bSwgSlNHbG8KIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmlj
VHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQsIChWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKIC8vICAgIFZN
JiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNDE5LDcgKzQxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KFZNJiB2bSwgSlNHbG9i
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZSwgKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAtNTA4
LDcgKzUwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJy
YXlWaWV3UHJvdG9GdW5jU2xpY2UoVk0mIHZtLCBKU0dsb2JhCiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZShWTSZ2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZSwgKFZN
JnZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggN2U1
MjVkOTFkYTIxNThlNDQ0MjE1NGE1M2IwMzVhZmViNDY0YmY3YS4uYmQ1NGJiMTU5NTU0MjBjMzky
OTJjNzZhYTFiNzFmOTNiNWM1OGE1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMjQyLDYgKzI0MiwyMCBAQCBGT1JfRUFDSF9T
SU1QTEVfQlVJTFRJTl9UWVBFKENIRUNLX0ZFQVRVUkVfRkxBR19UWVBFKQogRk9SX0VBQ0hfQlVJ
TFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoQ0hFQ0tfRkVBVFVSRV9GTEFHX1RZUEUpCiBGT1Jf
RUFDSF9MQVpZX0JVSUxUSU5fVFlQRShDSEVDS19GRUFUVVJFX0ZMQUdfVFlQRSkKIAorc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFrZUJvdW5kRnVuY3Rpb24pOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaGFzT3duTGVuZ3RoUHJvcGVydHkpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY3JlYXRlUHJpdmF0ZVN5bWJvbCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihlbmFibGVTdXBlclNhbXBsZXIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGlzYWJsZVN1cGVyU2FtcGxlcik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihlbnF1ZXVlSm9iKTsKKyNpZiBBU1NFUlRfRU5BQkxFRAorc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXNzZXJ0Q2FsbCk7CisjZW5kaWYKKyNpZiBF
TkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihlbmFibGVTYW1wbGluZ1Byb2ZpbGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGRpc2FibGVTYW1wbGluZ1Byb2ZpbGVyKTsKKyNlbmRpZgorCiBzdGF0aWMgSlNWYWx1ZSBj
cmVhdGVQcm94eVByb3BlcnR5KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKIHsKICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsID0ganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4ob2JqZWN0KTsKQEAg
LTI3Miw3ICsyODYsNyBAQCBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVDb25zb2xlUHJvcGVydHkoVk0m
IHZtLCBKU09iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBDb25zb2xlT2JqZWN0OjpjcmVhdGUo
dm0sIGdsb2JhbCwgQ29uc29sZU9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWwsIGNv
bnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWFrZUJvdW5kRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFr
ZUJvdW5kRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4Niw3ICszMDAsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlQm91bmRGdW5jdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKEpTQm91bmRGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHRh
cmdldCwgYm91bmRUaGlzLCBib3VuZEFyZ3MuaXNDZWxsKCkgPyBqc0Nhc3Q8SlNJbW11dGFibGVC
dXR0ZXJmbHkqPihib3VuZEFyZ3MpIDogbnVsbHB0ciwgbGVuZ3RoLCBuYW1lU3RyaW5nKSkpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNPd25MZW5ndGhQcm9w
ZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihoYXNPd25MZW5ndGhQcm9wZXJ0eSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMzA2LDE0ICszMjAsMTQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgaGFzT3duTGVuZ3RoUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
IAogLy8gRklYTUU6IHVzZSBhIGJ5dGVjb2RlIG9yIGludHJpbnNpYyBmb3IgY3JlYXRpbmcgYSBw
cml2YXRlIHN5bWJvbC4KIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTI3ODIKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNyZWF0ZVByaXZh
dGVTeW1ib2woSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjcmVhdGVQcml2YXRlU3ltYm9sLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoU3ltYm9sOjpjcmVhdGUodm0sIFBy
aXZhdGVTeW1ib2xJbXBsOjpjcmVhdGVOdWxsU3ltYm9sKCkuZ2V0KCkpKTsKIH0KIAogI2lmIEFT
U0VSVF9FTkFCTEVECi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhc3NlcnRD
YWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFzc2VydENhbGwsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc0Jvb2xlYW4oKSk7CiAgICAgaWYgKGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkuYXNCb29sZWFuKCkpCkBAIC0zNDEsNyArMzU1LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXNzZXJ0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWwKICNlbmRpZiAvLyBBU1NFUlRfRU5BQkxFRAogCiAjaWYgRU5BQkxFKFNBTVBM
SU5HX1BST0ZJTEVSKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZW5hYmxl
U2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVNhbXBsaW5nUHJvZmlsZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBTYW1wbGluZ1By
b2ZpbGVyKiBwcm9maWxlciA9IGdsb2JhbE9iamVjdC0+dm0oKS5zYW1wbGluZ1Byb2ZpbGVyKCk7
CiAgICAgaWYgKCFwcm9maWxlcikKQEAgLTM1MCw3ICszNjQsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBlbmFibGVTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRpc2FibGVTYW1wbGluZ1Byb2Zp
bGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBTYW1wbGluZ1Byb2ZpbGVyKiBwcm9m
aWxlciA9IGdsb2JhbE9iamVjdC0+dm0oKS5zYW1wbGluZ1Byb2ZpbGVyKCk7CiAgICAgaWYgKCFw
cm9maWxlcikKQEAgLTM2NSwxMyArMzc5LDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRpc2FibGVTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiB9
CiAjZW5kaWYKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZW5hYmxlU3Vw
ZXJTYW1wbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihlbmFibGVTdXBlclNhbXBsZXIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
KQogewogICAgIGVuYWJsZVN1cGVyU2FtcGxlcigpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRpc2FibGVTdXBlclNhbXBsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRpc2FibGVTdXBlclNhbXBsZXIsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQogewogICAgIGRpc2FibGVTdXBlclNhbXBsZXIoKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtNDUyLDcgKzQ2Niw3IEBAIGNv
bnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlID0gewogQGVuZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZW5xdWV1ZUpvYihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihlbnF1ZXVlSm9iLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCmluZGV4IGY5
ZGM2NDQ4ODI5Nzk5NzQ1ODYxMWFjMWYwMjI4MDRlZTAwYWU0YTUuLjY2YzYyZmZkOTI2ZmVkZDUz
NTVjYWE4YTJkZWJjMDEzOTVkMjA0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKQEAgLTQ1OSw3ICs0
NTksNyBAQCBzdGF0aWMgZG91YmxlIHBhcnNlRmxvYXQoU3RyaW5nVmlldyBzKQogICAgIHJldHVy
biBqc1N0ckRlY2ltYWxMaXRlcmFsKGRhdGEsIGVuZCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZ2xvYmFsRnVuY0V2YWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVu
Y0V2YWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFdmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHZtLmludGVycHJldGVyLT5leGVjdXRlKGV2YWwsIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxUaGlzKCksIGdsb2JhbE9iamVjdC0+Z2xvYmFsU2NvcGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VJbnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1BhcnNlSW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgcmFkaXhWYWx1ZSA9IGNhbGxGcmFtZS0+
YXJndW1lbnQoMSk7CkBAIC01MjUsNyArNTI1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBnbG9iYWxGdW5jUGFyc2VJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EK
ICAgICB9KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFy
c2VGbG9hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUGFyc2VGbG9hdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtNTM3LDcgKzUzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHBhcnNlRmxvYXQodmlld1dpdGhT
dHJpbmcudmlldykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxG
dW5jRGVjb2RlVVJJKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNEZWNvZGVVUkksIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgc3RhdGljIEJpdG1hcDwyNTY+IGRvTm90VW5lc2NhcGVXaGVuRGVjb2RpbmdVUkkgPSBtYWtl
Q2hhcmFjdGVyQml0bWFwKAogICAgICAgICAiIyQmKywvOjs9P0AiCkBAIC01NDYsMTMgKzU0Niwx
MyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNEZWNvZGVVUkkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
ZGVjb2RlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgZG9Ob3RVbmVzY2Fw
ZVdoZW5EZWNvZGluZ1VSSSwgdHJ1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNEZWNvZGVVUklDb21wb25lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xv
YmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBzdGF0aWMgQml0bWFwPDI1Nj4gZW1wdHlC
aXRtYXA7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShkZWNvZGUoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUtPmFyZ3VtZW50KDApLCBlbXB0eUJpdG1hcCwgdHJ1ZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUkkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY0VuY29kZVVSSSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBzdGF0aWMgQml0bWFwPDI1Nj4gZG9Ob3RF
c2NhcGVXaGVuRW5jb2RpbmdVUkkgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAogICAgICAgICAiQUJD
REVGR0hJSktMTU5PUFFSU1RVVldYWVoiCkBAIC01NjQsNyArNTY0LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRW5jb2RlVVJJKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVuY29kZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVSSUNv
bXBvbmVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHN0YXRpYyBCaXRtYXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNvbXBv
bmVudCA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCiAgICAgICAgICJBQkNERUZHSElKS0xNTk9QUVJT
VFVWV1hZWiIKQEAgLTU3Niw3ICs1NzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZW5jb2RlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5h
cmd1bWVudCgwKSwgZG9Ob3RFc2NhcGVXaGVuRW5jb2RpbmdVUklDb21wb25lbnQpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNFc2NhcGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgc3RhdGljIEJpdG1hcDwyNTY+IGRvTm90
RXNjYXBlID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAgIkFCQ0RFRkdISUpLTE1OT1BR
UlNUVVZXWFlaIgpAQCAtNjIxLDcgKzYyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY0VzY2FwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAg
ICAgfSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVz
Y2FwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jVW5lc2NhcGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0b1N0cmluZ1ZpZXcoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLCBbJl0gKFN0cmluZ1ZpZXcgdmlldykgewogICAgICAgICAvLyBXZSB1c2UgaW50
IGZvciBrIGFuZCBsZW5ndGggaW50ZW50aW9uYWxseSBzaW5jZSB3ZSB3b3VsZCBsaWtlIHRvIGV2
YWx1YXRlCkBAIC02NzcsMzMgKzY3NywzMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNVbmVzY2FwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYQogICAg
IH0pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dU
eXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jVGhyb3dUeXBlRXJyb3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0NhbGxlZUFuZENhbGxlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFy
Z3VtZW50c0NhbGxlZUFuZENhbGxlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIidhcmd1bWVudHMnLCAnY2FsbGVlJywgYW5kICdj
YWxsZXInIGNhbm5vdCBiZSBhY2Nlc3NlZCBpbiB0aGlzIGNvbnRleHQuIik7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY01ha2VUeXBlRXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY01ha2VUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgU3RydWN0dXJlKiBlcnJv
clN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+ZXJyb3JTdHJ1Y3R1cmUoRXJyb3JUeXBlOjpUeXBl
RXJyb3IpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRl
KGdsb2JhbE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIG51
bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNQcm90b0dldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jUHJvdG9HZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpzdHJpY3QoKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUuZ2V0UHJvdG90eXBlKGdsb2JhbE9iamVjdCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUHJvdG9TZXR0ZXIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTczMCw3ICs3MzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNQcm90b1NldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihnbG9iYWxGdW5jU2V0UHJvdG90eXBlRGlyZWN0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC03NDUsNyArNzQ1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9i
YWxGdW5jU2V0UHJvdG90eXBlRGlyZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1
cm4geyB9OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNIb3N0
UHJvbWlzZVJlamVjdGlvblRyYWNrZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0hv
c3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzgwLDE4
ICs3ODAsMTggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSG9zdFBy
b21pc2VSZWplY3Rpb25UcmFja2VyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNCdWlsdGluTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNCdWls
dGluTG9nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIGRhdGFMb2coY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhn
bG9iYWxPYmplY3QpLCAiXG4iKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNCdWls
dGluRGVzY3JpYmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0J1aWx0aW5EZXNjcmli
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0o
KSwgdG9TdHJpbmcoY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogCkBAIC04MjMsNyArODIzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jSW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb21pc2UpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihnbG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTgzOSw3ICs4MzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1
bmNQcm9wZXJ0eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGVudW1lcmFibGUpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jT3duS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jT3duS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODQ4LDcgKzg0OCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY093bktleXMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUob3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQcm9w
ZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6
SW5jbHVkZSwgV1RGOjpudWxsb3B0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jRGF0ZVRpbWVGb3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4
IGEzNjdjMmJjMjdmMTY1ZWExOTIwNmE4YzRjNzhjODEyYmZhMDU2MTUuLjk4MjNjNmJjMDQyYTZm
OTM5ZWYyZDE4MTMyMDFiYzcyOGQzNjI4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaApAQCAtMzcsMjggKzM3
LDI4IEBAIGNsYXNzIEpTT2JqZWN0OwogCiBleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIE9iamVj
dFByb3RvQ2FsbGVkT25OdWxsT3JVbmRlZmluZWRFcnJvcjsKIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXZhbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VJbnQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY1BhcnNlRmxvYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0RlY29kZVVSSShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2Rl
VVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUkkoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVS
SUNvbXBvbmVudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNVbmVzY2FwZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jVGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1l
bnRzQ2FsbGVlQW5kQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1
bmNQcm90b0dldHRlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9TZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1NldFBy
b3RvdHlwZURpcmVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSG9zdFByb21pc2VSZWplY3Rpb25UcmFja2VyKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNCdWlsdGluTG9nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xv
YmFsRnVuY0ltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2xvYmFsRnVuY093bktleXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0RhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNF
dmFsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1BhcnNlSW50KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1BhcnNlRmxvYXQpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZ2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUkkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0VzY2FwZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1
bmNVbmVzY2FwZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5
cGVFcnJvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5cGVF
cnJvckFyZ3VtZW50c0NhbGxlZUFuZENhbGxlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xv
YmFsRnVuY1Byb3RvR2V0dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVu
Y1Byb3RvU2V0dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1NldFBy
b3RvdHlwZURpcmVjdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNIb3N0
UHJvbWlzZVJlamVjdGlvblRyYWNrZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9i
YWxGdW5jQnVpbHRpbkxvZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNC
dWlsdGluRGVzY3JpYmUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jSW1w
b3J0TW9kdWxlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3BlcnR5
SXNFbnVtZXJhYmxlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY093bktl
eXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGF0ZVRpbWVGb3JtYXQp
OwogCiBkb3VibGUganNUb051bWJlcihTdHJpbmdWaWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCmluZGV4IDZjZmQ0MDAxNjhlMjZl
YmUyM2JkNmEyODQwZjhhZTVmMTBhMDI3ZWQuLmIwOWZkNDRlNmFmNzIzMWM2N2VmYWUxYzkxYTE2
ZDcxNTM4MDMxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZUxvYWRlci5jcHAKQEAgLTQ0LDE0ICs0NCwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUGFyc2VNb2R1
bGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclJlcXVlc3RlZE1vZHVsZXMoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVs
ZUxvYWRlckV2YWx1YXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJNb2R1bGVEZWNsYXJhdGlvbklu
c3RhbnRpYXRpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVs
ZUxvYWRlclJlc29sdmVTeW5jKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bW9kdWxlTG9hZGVyR2V0TW9kdWxlTmFtZXNwYWNlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJQ
YXJzZU1vZHVsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2Fk
ZXJSZXF1ZXN0ZWRNb2R1bGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1v
ZHVsZUxvYWRlckV2YWx1YXRlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1v
ZHVsZUxvYWRlck1vZHVsZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJSZXNvbHZlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlclJlc29sdmVTeW5jKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlckZldGNoKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlckdldE1vZHVsZU5hbWVzcGFjZU9iamVjdCk7
CiAKIH0KIApAQCAtMzYyLDcgKzM2Miw3IEBAIEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0KiBKU01v
ZHVsZUxvYWRlcjo6Z2V0TW9kdWxlTmFtZXNwYWNlT2JqZWN0KEpTR2xvYmFsT2JqZWN0CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJQYXJzZU1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJQYXJzZU1v
ZHVsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKQEAgLTQwNiw3ICs0MDYs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclBhcnNlTW9kdWxl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cHJvbWlzZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVy
UmVxdWVzdGVkTW9kdWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJSZXF1ZXN0
ZWRNb2R1bGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MjQsNyArNDI0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJSZXF1ZXN0ZWRNb2R1bGVzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyTW9kdWxlRGVjbGFy
YXRpb25JbnN0YW50aWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlck1vZHVs
ZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDQyLDcg
KzQ0Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyTW9kdWxl
RGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKEpTR2xvYmFsCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBIb29rIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlclJlc29sdmUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIC8vIEhvb2sgcG9pbnQsIExvYWRlci5yZXNvbHZlLgpAQCAtNDU1
LDcgKzQ1NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVz
b2x2ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShsb2FkZXItPnJlc29sdmUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDIpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2ZVN5bmMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyUmVzb2x2ZVN5bmMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG1vZHVsZUxvYWRlclJlc29sdmVTeW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaWRlbnRpZmllclRvSlNWYWx1ZSh2bSwgcmVzdWx0KSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyRmV0Y2goSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyRmV0Y2gsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIC8vIEhvb2sgcG9pbnQsIExvYWRlci5mZXRjaApAQCAtNDgyLDcg
KzQ4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyRmV0Y2go
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShsb2FkZXItPmZldGNoKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgyKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlckdldE1vZHVsZU5hbWVzcGFj
ZU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ5Nyw3ICs0OTcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlckdldE1vZHVsZU5hbWVzcGFjZU9iamVj
dChKU0dsb2JhbE9iamVjdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tIEFkZGl0aW9uYWwgSG9v
ayBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bW9kdWxlTG9hZGVyRXZhbHVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gVG8gaW5zdHJ1bWVudCBhbmQgcmV0cmlldmUg
dGhlIGVycm9ycyByYWlzZWQgZnJvbSB0aGUgbW9kdWxlIGV4ZWN1dGlvbiwKICAgICAvLyB3ZSBp
bnNlcnRlZCB0aGUgaG9vayBwb2ludCBoZXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcAppbmRleCA3NGRjNjRiNmMwM2Yy
MjVlNWEyYTJjYTA4NTRiN2M3YTdiYWEwZmQ4Li40NWZmMzgyMGZhN2QyMzU0MTliYjJkODc5ODNi
MjhmZTM4ZTFkYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcApAQCAtMzMsNiArMzMsOCBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTTmF0aXZlU3RkRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU05hdGl2ZVN0ZEZ1bmN0aW9uKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihydW5TdGRGdW5jdGlvbik7CisKIEpTTmF0aXZlU3RkRnVuY3Rpb246OkpTTmF0aXZl
U3RkRnVuY3Rpb24oVk0mIHZtLCBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTmF0aXZlU3RkRnVu
Y3Rpb24mJiBmdW5jdGlvbikKICAgICA6IEJhc2Uodm0sIGV4ZWN1dGFibGUsIGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKQogICAgICwgbV9mdW5jdGlvbihXVEZNb3ZlKGZ1bmN0aW9uKSkKQEAgLTUy
LDcgKzU0LDcgQEAgdm9pZCBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIHUKICAgICBBU1NFUlQoaW5oZXJpdHMo
dm0sIGluZm8oKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBy
dW5TdGRGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihydW5TdGRGdW5jdGlvbiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBK
U05hdGl2ZVN0ZEZ1bmN0aW9uKiBmdW5jdGlvbiA9IGpzQ2FzdDxKU05hdGl2ZVN0ZEZ1bmN0aW9u
Kj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKICAgICBBU1NFUlQoZnVuY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA1MzkzN2RlN2Fj
MmM5OGIxNjI2MzBmNTg4Yjc3MGEwNTcyZDk0Mjg2Li4zMzkyOWIyZDRmZjg4M2VmMGY0MGRlMGEw
NjUwN2Y0NTA4MjRmZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcApAQCAtNDIsOCArNDIsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FT
U0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTT05PYmplY3QpOwogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEpTT05Qcm90b0Z1bmNQYXJzZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU09OUHJvdG9GdW5jU3Ry
aW5naWZ5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKEpTT05Qcm90b0Z1bmNQYXJzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEpT
T05Qcm90b0Z1bmNTdHJpbmdpZnkpOwogCiB9CiAKQEAgLTc5Miw3ICs3OTIsNyBAQCBORVZFUl9J
TkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogfQogCiAvLyBF
Q01BLTI2MiB2NSAxNS4xMi4yCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTT05Qcm90
b0Z1bmNQYXJzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihKU09OUHJvdG9GdW5jUGFyc2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTgzNCw3ICs4MzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTT05Qcm90b0Z1bmNQYXJzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YQogfQogCiAvLyBFQ01BLTI2MiB2NSAxNS4xMi4zCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEpTT05Qcm90b0Z1bmNTdHJpbmdpZnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSlNPTlByb3Rv
RnVuY1N0cmluZ2lmeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuY3BwCmluZGV4IDhlNTFlMDM4MmE0Y2UyYmM3OWU1ZWYwNjVhY2Q0
Mzc3ZDM4MDkyODUuLjk1YjdlOWFkOWYyZTI1NDk5OGZjOTU0M2VmNWY3ZGZhNGNiOTYzMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTIzNzIsNyAr
MjM3Miw3IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmF1bHRIYXNJbnN0YW5jZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBKCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJ
bnN0YW5jZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VP
ZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsK
ICAgICBKU1ZhbHVlIHByb3RvID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDU5OTdjMDc2YzcwMWY3
YjZhYjZlMjY1ZmE1ODZiMDg3NjMzNmEwYzguLjY1N2JmY2QxYTZiMjM0MGVjNGQxYjk4ZGFiMGRh
MmZhMTdjMGMxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApA
QCAtMTIzNCw3ICsxMjM0LDcgQEAgY2xhc3MgSlNGaW5hbE9iamVjdCBmaW5hbCA6IHB1YmxpYyBK
U09iamVjdCB7CiAgICAgfQogfTsKIAotSlNfRVhQT1JUX1BSSVZBVEUgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04ob2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKTsKIAogaW5saW5lIEpTRmluYWxPYmplY3Qq
IEpTRmluYWxPYmplY3Q6OmNyZWF0ZVdpdGhCdXR0ZXJmbHkoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgQnV0dGVyZmx5KiBidXR0ZXJmbHkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNw
cAppbmRleCBhZWU2ZjE5ZTQ0YTJjYzJkZWI5ODk1MDQ0NjVkNzVlMjIxNjU5MDNmLi5mYTMzMzgy
ZWZjODNjMDVmMTk1ZDU0YmU2ZjQ1MDg0M2MxMGFmNTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zdHJ1Y3RUeXBlZEFycmF5Vmlldyk7CiAKIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3LCBjb25z
dHJ1Y3RUeXBlZEFycmF5VmlldykKQEAgLTU3LDkgKzU3LDcgQEAgU3RydWN0dXJlKiBKU1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSgKICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCi0KLQotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRBcnJheVZpZXcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RUeXBlZEFycmF5VmlldywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5
cGUuY3BwCmluZGV4IDMxNjkyMTE0NTNmMjdiY2QwYWEwZTdkZDExMWY1MmRiMzYxMTAyNTAuLjJl
NjU4MTU0ZjM0ZTE4MGQ3Mjc4ODYwMjYxNjI1YTE5ZWZjMDZlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5
cGUuY3BwCkBAIC0zNCw2ICszNCwyMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVByb3RvVmlld0Z1bmNF
bnRyaWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jS2V5cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9m
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9G
dW5jSW5kZXhPZik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5
Vmlld1Byb3RvRnVuY0pvaW4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZmZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNC
eXRlTGVuZ3RoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlW
aWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZSk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY1Rv
U3RyaW5nVGFnKTsKKwogI2RlZmluZSBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVf
RlVOQ1RJT04oZnVuY3Rpb25OYW1lKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgIHN3aXRjaCAodGhpc1ZhbHVlLmdldE9iamVjdCgpLT5jbGFzc0luZm8odm0pLT50eXBlZEFy
cmF5U3RvcmFnZVR5cGUpIHsgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGNhc2UgVHlwZVVp
bnQ4Q2xhbXBlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtNjIsMjAgKzc5LDIwIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogfSB3aGlsZSAo
ZmFsc2UpCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2
YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGNhbGxG
cmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4odmFsdWUuaXNDZWxsKCkgJiYgaXNUeXBlZFZpZXcodmFsdWUuYXNDZWxsKCktPmNs
YXNzSW5mbyhnbG9iYWxPYmplY3QtPnZtKCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y0lzTmV1dGVyZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y0lzTmV1dGVyZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoMCk7CiAgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGFyZ3VtZW50Lmlz
Q2VsbCgpICYmIGlzVHlwZWRWaWV3KGFyZ3VtZW50LmFzQ2VsbCgpLT5jbGFzc0luZm8oZ2xvYmFs
T2JqZWN0LT52bSgpKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oanNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4oYXJndW1lbnQp
LT5pc05ldXRlcmVkKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBl
ZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJy
YXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkxLDcgKzEw
OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRl
RnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcih0aGlzT2JqZWN0LT5sZW5ndGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmln
aW5hbENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBU
eXBlZEFycmF5VHlwZSB0eXBlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKS5nZXRP
YmplY3QoKS0+Y2xhc3NJbmZvKHZtKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBlOwpAQCAtMTE1LDIy
ICsxMzIsMjIgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNyZWF0ZVR5cGVkQXJyYXlJdGVyYXRv
ck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPmFycmF5SXRl
cmF0b3JTdHJ1Y3R1cmUoKSwgdGhpc09iamVjdCwganNOdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGtpbmQpKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0
eXBlZEFycmF5Vmlld1Byb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY1ZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZWRBcnJheUl0ZXJh
dG9yT2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5UHJv
dG9WaWV3RnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVByb3RvVmll
d0Z1bmNFbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBjcmVhdGVUeXBlZEFycmF5SXRlcmF0b3JPYmplY3Qo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVu
Y0tleXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNLZXlzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBjcmVhdGVUeXBlZEFycmF5SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OktleXMpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMzksNyArMTU2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5
Vmlld1ByaXZhdGVGdW5jU29ydChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBDQUxMX0dFTkVS
SUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJp
dmF0ZUZ1bmNTb3J0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1MCw3ICsxNjcsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1NldChKU0dsb2JhbE9iamVjdCogZwogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BS
T1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0NvcHlXaXRoaW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNDb3B5V2l0aGluLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjEsNyArMTc4LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmND
b3B5V2l0aGluKEpTR2xvYmFsT2IKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbik7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jSW5jbHVkZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNJbmNsdWRlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcyLDcgKzE4OSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5j
bHVkZXMoSlNHbG9iYWxPYmplCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBF
X0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVu
Y0xhc3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODMsNyArMjAwLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNM
YXN0SW5kZXhPZihKU0dsb2JhbE8KICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1By
b3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTQsNyArMjExLDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRl
eE9mKEpTR2xvYmFsT2JqZWMKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVf
RlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZik7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
Sm9pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4sIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwNSw3ICsyMjIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4oSlNHbG9iYWxPYmpl
Y3QqCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjE2LDcgKzIzMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKEpTR2xv
YmFsCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVu
Z3RoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVu
Z3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjcsNyArMjQ0LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5n
dGgoSlNHbG9iYWwKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJ
T04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRl
ckZ1bmNCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9H
ZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM4LDcgKzI1NSw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aChKU0dsCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlf
UFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5
dGVMZW5ndGgpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBl
ZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yNDksNyArMjY2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KEpTR2wKICAgICBDQUxM
X0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI2MCw3ICsyNzcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoSlNHbG9iYWxPYmplYwogICAgIENB
TExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNSZXZlcnNlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNzEsNyArMjg4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUoSlNHbG9iYWxPYmoKICAg
ICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjgyLDcgKzI5OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqCiAgICAg
Q0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvRnVuY1NsaWNlKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNUb1N0cmluZ1RhZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY1RvU3RyaW5nVGFnLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKICAgICBpZiAo
IXRoaXNWYWx1ZS5pc09iamVjdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCmluZGV4IDkyMWE1ZDA5ZmIz
YjM3ZThmYjExNmMzYTNhNDFmYzc1ZDlkMTBjZGUuLjhlN2RhYzE0MWJjYWI4NDYyMGE5NDhjNWY5
MzcxOTBhMmViZDA3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKQEAgLTUxLDExICs1MSwxMSBAQCBj
bGFzcyBKU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxP
YmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwog
fTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVG
dW5jSXNUeXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJl
ZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZh
dGVGdW5jTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5Vmlldyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc05ldXRlcmVkKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFs
Q29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1By
aXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpOwogICAgIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCmluZGV4IGQx
YjVmZjEyYWE1ZjdlNWJkZjdlMDJjMzdkMWJlZGM4YjY3NjExOTguLmZiZDkzNjFkN2MzYjdkYjM5
ZjFjOWM0ZDQ1NWExNzMxOTNlYTg3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCkBAIC0yOSwxNiArMjksMjYgQEAKICNpbmNsdWRlICJH
ZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgog
I2luY2x1ZGUgIkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgorI2luY2x1ZGUgIkpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCisjZGVmaW5lIE1BS0VfQ09OU1RSVUNUT1JTKENsYXNzKSBcCisgICAgSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNhbGwjI0NsYXNzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKSB7IFwKKyAgICAgICAgcmV0dXJuIGNhbGxHZW5lcmlj
VHlwZWRBcnJheVZpZXdJbXBsPEpTIyNDbGFzcz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOyBc
CisgICAgfSBcCisgICAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdCMjQ2xhc3Ms
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpIHsg
XAorICAgICAgICByZXR1cm4gY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1wbDxKUyMj
Q2xhc3M+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsgXAorICAgIH0KKwogI3VuZGVmIE1BS0Vf
U19JTkZPCiAjZGVmaW5lIE1BS0VfU19JTkZPKHR5cGUpIFwKICAgICB0ZW1wbGF0ZTw+IGNvbnN0
IENsYXNzSW5mbyBKUyMjdHlwZSMjQXJyYXk6OnNfaW5mbyA9IHsgXAogICAgICAgICAjdHlwZSAi
QXJyYXkiLCAmSlMjI3R5cGUjI0FycmF5OjpCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IFwKICAgICAgICAgQ1JFQVRFX01FVEhPRF9UQUJMRShKUyMjdHlwZSMjQXJyYXkpIFwKICAgICB9
OyBcCi0gICAgY29uc3QgQ2xhc3NJbmZvKiBnZXQjI3R5cGUjI0FycmF5Q2xhc3NJbmZvKCkgeyBy
ZXR1cm4gJkpTIyN0eXBlIyNBcnJheTo6c19pbmZvOyB9CisgICAgY29uc3QgQ2xhc3NJbmZvKiBn
ZXQjI3R5cGUjI0FycmF5Q2xhc3NJbmZvKCkgeyByZXR1cm4gJkpTIyN0eXBlIyNBcnJheTo6c19p
bmZvOyB9IFwKKyAgICBNQUtFX0NPTlNUUlVDVE9SUyh0eXBlIyNBcnJheSkKIAogTUFLRV9TX0lO
Rk8oSW50OCk7CiBNQUtFX1NfSU5GTyhJbnQxNik7CkBAIC01MCwxMSArNjAsNyBAQCBNQUtFX1Nf
SU5GTyhVaW50MzIpOwogTUFLRV9TX0lORk8oRmxvYXQzMik7CiBNQUtFX1NfSU5GTyhGbG9hdDY0
KTsKIAotSlNVaW50OEFycmF5KiBjcmVhdGVVaW50OFR5cGVkQXJyYXkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxBcnJheUJ1ZmZlcj4m
JiBidWZmZXIsIHVuc2lnbmVkIGJ5dGVPZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkKLXsKLSAgICBy
ZXR1cm4gSlNVaW50OEFycmF5OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIFdURk1v
dmUoYnVmZmVyKSwgYnl0ZU9mZnNldCwgbGVuZ3RoKTsKLX0KLQorTUFLRV9DT05TVFJVQ1RPUlMo
RGF0YVZpZXcpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IDEwOWQ1OGQ4Zjk4MmJhMWQ2
NGE1ZTRiYjkwYmUwMTRmMzljY2NmZDYuLjJjMzczMjU4MGNiZWNlMTM1YjJjZTUwYzkzMmRlYmEx
ODBiY2YyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQyLDIyICs0MiwyMiBAQCB2b2lkIE1hcENvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIE1hcFByb3RvdHlwZSogbWFwUHJvdG90eXBlLCBHZXR0ZXJTZQog
ICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3JXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+c3BlY2llc1N5bWJvbCwgc3BlY2llc1N5bWJvbCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkFjY2Vzc29yIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbE1hcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsTWFwKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdE1hcCk7CiAKIE1hcENvbnN0cnVj
dG9yOjpNYXBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDog
QmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsTWFwLCBjb25zdHJ1Y3RNYXApCiB7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxNYXAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsTWFw
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JD
YW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIk1h
cCIpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
TWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdE1hcCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdE1hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShtYXApOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcml2
YXRlRnVuY01hcEJ1Y2tldEhlYWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGpz
RHluYW1pY0Nhc3Q8SlNNYXAqPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCkpKTsKICAgICBKU01hcCogbWFwID0ganNDYXN0PEpTTWFwKj4oY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhlYWQpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0TmV4dChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGpzRHlu
YW1pY0Nhc3Q8SlNNYXA6OkJ1Y2tldFR5cGUqPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkpKTsKICAgICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNNYXA6OkJ1Y2tl
dFR5cGUqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTEzNSw3ICsxMzUs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0
TmV4dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Z2xvYmFsT2JqZWN0LT52bSgpLnNlbnRpbmVsTWFwQnVja2V0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0S2V5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0S2V5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVF9VTlVTRUQo
Z2xvYmFsT2JqZWN0LCBqc0R5bmFtaWNDYXN0PEpTTWFwOjpCdWNrZXRUeXBlKj4oZ2xvYmFsT2Jq
ZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAgYXV0byogYnVja2V0ID0g
anNDYXN0PEpTTWFwOjpCdWNrZXRUeXBlKj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KSk7CkBAIC0xNDMsNyArMTQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQ
cml2YXRlRnVuY01hcEJ1Y2tldEtleShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGJ1Y2tldC0+a2V5KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0VmFsdWUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04obWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGds
b2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGdsb2JhbE9iamVj
dC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIGF1dG8qIGJ1Y2tldCA9IGpz
Q2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0
b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKaW5k
ZXggZGI5ZDQ3ZGIzZTE3NTRhMjhhMGE4YjJlZWVkMzFlYmJhZjJiZmE5MS4uN2EzNWFlNzg0NWI4
ZTE3NmI0M2JjZjNhNjNiNDI4OTM0NThlNGVkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCkBAIC01Nyw5ICs1Nyw5IEBAIGNsYXNzIE1hcENv
bnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogfTsKIFNUQVRJQ19B
U1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKE1hcENvbnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0
aW9uKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1
Y2tldEhlYWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5j
TWFwQnVja2V0S2V5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0VmFsdWUoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJpdmF0ZUZ1
bmNNYXBCdWNrZXRIZWFkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJpdmF0ZUZ1
bmNNYXBCdWNrZXROZXh0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJpdmF0ZUZ1
bmNNYXBCdWNrZXRLZXkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXBQcml2YXRlRnVu
Y01hcEJ1Y2tldFZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcAppbmRleCBlNzQ0MTlmMzZmYzI0Y2Y2
NzE5YmU0OWI1NDMzNDY4YTQ3OTdmZDhlLi40ZmFlNmE5MzRkN2IzMzY3MTIxNzc2OTIzODE5NDI2
NDdhNmFkOGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQ
cm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3Rv
dHlwZS5jcHAKQEAgLTQzLDE2ICs0MywxNiBAQCBjb25zdCBDbGFzc0luZm8gTWFwUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJNYXAiLCAmQmFzZTo6c19pbmZvLCAmbWFwUHJvdG90eXBlVGFibAogQGVu
ZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5j
Q2xlYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0RlbGV0ZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5j
R2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNIYXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1NldChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWFwUHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNLZXlzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXBQcm90b0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1NpemUo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hcFByb3RvRnVuY0NsZWFyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hcFByb3RvRnVuY0RlbGV0ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYXBQcm90b0Z1bmNHZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFw
UHJvdG9GdW5jSGFzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFByb3Rv
RnVuY1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNW
YWx1ZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jS2V5
cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNFbnRyaWVz
KTsKKworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jU2l6ZSk7
CiAgICAgCiB2b2lkIE1hcFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtOTcsNyArOTcsNyBAQCBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBKU01hcCogZ2V0TWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgdGhpc1ZhbAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hcFByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByb3Rv
RnVuY0NsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTEwNiw3ICsxMDYsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jRGVs
ZXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVuY0RlbGV0ZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU01hcCog
bWFwID0gZ2V0TWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAg
aWYgKCFtYXApCkBAIC0xMTQsNyArMTE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXBQcm90b0Z1bmNEZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihtYXAtPnJlbW92ZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWFwUHJvdG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVu
Y0dldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBKU01hcCogbWFwID0gZ2V0TWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50
aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFtYXApCkBAIC0xMjIsNyArMTIyLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1hcC0+Z2V0KGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0hhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcm90
b0Z1bmNIYXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1hcChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtMTMwLDcgKzEzMCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jSGFzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
bWFwLT5oYXMoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1NldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXBQcm90b0Z1bmNTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJh
bWUtPnRoaXNWYWx1ZSgpOwogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUpOwpAQCAtMTUwLDIyICsxNTAsMjIgQEAgaW5saW5lIEpTVmFsdWUgY3JlYXRlTWFw
SXRlcmF0b3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKgog
ICAgIHJldHVybiBKU01hcEl0ZXJhdG9yOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+bWFwSXRl
cmF0b3JTdHJ1Y3R1cmUoKSwgbWFwLCBraW5kKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXBQcm90b0Z1bmNWYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9G
dW5jVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlTWFwSXRlcmF0b3JP
YmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0tleXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNyZWF0ZU1hcEl0ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVy
YXRpb25LaW5kOjpLZXlzKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFw
UHJvdG9GdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNFbnRyaWVz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlTWFwSXRlcmF0b3JPYmplY3QoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNTaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG1hcFByb3RvRnVuY1NpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1hcChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAppbmRleCBkZmY3ODk5N2Y3Y2M4
NGNiMWE2NGJkOGUzNWIzZDBkMjE4MjI5NDllLi42ODkxOTIzMDUwNmQwNWMwY2VjZmM3MGY2ZTFl
ZmM3MzFiOGExM2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXRoT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmNwcApAQCAtMzEsMzggKzMxLDM4IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoTWF0aE9iamVjdCk7CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FDb3MoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FDb3No
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNBU2luKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBU2luaChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jQVRhbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQVRhbmgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FUYW4yKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNDYnJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDZWlsKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDbHoz
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXRoUHJvdG9GdW5jQ29zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDb3NoKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1
bmNFeHAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnVuY0V4cG0xKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNGcm91bmQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0
aFByb3RvRnVuY0h5cG90KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNMb2coSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzFw
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNMb2cxMChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTG9nMihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jTWF4KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNNaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1BvdyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jUmFuZG9tKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNSb3VuZChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jU2lnbihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jU2luKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaW5oKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNT
cXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1bmNUYW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RhbmgoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3Rv
RnVuY0lNdWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obWF0aFByb3RvRnVuY0FDb3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiht
YXRoUHJvdG9GdW5jQUNvc2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9G
dW5jQVNpbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBU2luaCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBVGFuKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0FUYW5oKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obWF0aFByb3RvRnVuY0FUYW4yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
bWF0aFByb3RvRnVuY0NicnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9G
dW5jQ2VpbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNDbHozMik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNDb3MpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ29zaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNFeHApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRo
UHJvdG9GdW5jRXhwbTEpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
RnJvdW5kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0h5cG90KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cxcCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cxMCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1h
dGhQcm90b0Z1bmNMb2cyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVu
Y01heCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNNaW4pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUG93KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1JhbmRvbSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hdGhQcm90b0Z1bmNSb3VuZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQ
cm90b0Z1bmNTaWduKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1Np
bik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNTaW5oKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1NxcnQpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihtYXRoUHJvdG9GdW5jVGFuKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
bWF0aFByb3RvRnVuY1RhbmgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9G
dW5jSU11bCk7CiAKIGNvbnN0IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2luZm8gPSB7ICJNYXRo
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShN
YXRoT2JqZWN0KSB9OwogCkBAIC0xMjUsMjcgKzEyNSwyNyBAQCB2b2lkIE1hdGhPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNBYnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0FicywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGZhYnMoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50
b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNBQ29zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNB
Q29zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6YWNv
cyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FTaW4oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0FTaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc0RvdWJsZU51bWJlcihNYXRoOjphc2luKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1i
ZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jQVRhbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmF0YW4oY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuMihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbjIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1Niwx
MiArMTU2LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FU
YW4yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0RvdWJsZU51bWJlcihhdGFuMihhcmcwLCBhcmcxKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDZWlsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG1hdGhQcm90b0Z1bmNDZWlsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoY2VpbChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NsejMyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNDbHozMiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTcwLDIyICsxNzAsMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jQ2x6MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoY2x6KHZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDb3MoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bWF0aFByb3RvRnVuY0NvcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVt
YmVyKE1hdGg6OmNvcyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0V4
cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jRXhwLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6ZXhwKGNhbGxGcmFtZS0+YXJndW1lbnQo
MCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXRoUHJvdG9GdW5jRmxvb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3Rv
RnVuY0Zsb29yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmxvb3IoY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNIeXBvdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jSHlwb3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNSwx
MiArMjE1LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0h5
cG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0RvdWJsZU51bWJlcihzcXJ0KHN1bSkgKiBtYXgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG1hdGhQcm90b0Z1bmNMb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51
bWJlcihNYXRoOjpsb2coY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmpl
Y3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNN
YXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY01heCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0
aFByb3RvRnVuY01heChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTWluKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
dGhQcm90b0Z1bmNNaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1NCw3ICsyNTQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNNaW4oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIocmVzdWx0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3Rv
RnVuY1BvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUG93LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIEVD
TUEgMTUuOC4yLjEuMTMKIApAQCAtMjY5LDE3ICsyNjksMTcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jUG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUob3BlcmF0aW9uTWF0aFBv
dyhhcmcsIGFyZzIpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFBy
b3RvRnVuY1JhbmRvbShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNSYW5kb20sIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzRG91YmxlTnVtYmVyKGdsb2JhbE9iamVjdC0+d2Vha1JhbmRvbU51bWJlcigpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1JvdW5kKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNSb3VuZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGpzUm91bmQoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJl
cihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNTaWduKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNTaWduLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIGRvdWJsZSBhcmcgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9i
amVjdCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4oYXJnKSkKQEAgLTI4OSwyMiArMjg5LDIyIEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpZ24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihzdGQ6OnNpZ25iaXQoYXJnKSA/IC0xIDogMSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3Rv
RnVuY1NpbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6
OnNpbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NxcnQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1NxcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0RvdWJsZU51bWJlcihzcXJ0KGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jVGFuKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNUYW4sIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjp0YW4oY2FsbEZyYW1l
LT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNJTXVsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG1hdGhQcm90b0Z1bmNJTXVsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTUsNjcgKzMxNSw2
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNJTXVsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIobGVmdCAqIHJpZ2h0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY0FDb3NoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNB
Q29zaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmFj
b3NoKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQVNpbmgoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0FTaW5oLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6YXNpbmgoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50
b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNBVGFuaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
QVRhbmgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjph
dGFuaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NicnQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0NicnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0RvdWJsZU51bWJlcihNYXRoOjpjYnJ0KGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9O
dW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jQ29zaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ29z
aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmNvc2go
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNFeHBtMShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihtYXRoUHJvdG9GdW5jRXhwbTEsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc0RvdWJsZU51bWJlcihNYXRoOjpleHBtMShjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVt
YmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWF0aFByb3RvRnVuY0Zyb3VuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jRnJv
dW5kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTG9nMXAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzFwLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6bG9nMXAoY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNMb2cxMChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJv
dG9GdW5jTG9nMTAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihN
YXRoOjpsb2cxMChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzIsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjpsb2cyKGNhbGxGcmFtZS0+YXJndW1lbnQo
MCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXRoUHJvdG9GdW5jU2luaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9G
dW5jU2luaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6
OnNpbmgoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW5oKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNUYW5oLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6dGFuaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRv
TnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY1RydW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNU
cnVuYywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCkudG9JbnRlZ2VyUHJlc2VydmVOYU4oZ2xvYmFsT2JqZWN0KSkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCmluZGV4IGNkNGU2NDdkMWQ5NTMz
OWVmYzk3NjY1M2ZkMDJhZGE0YmNhNzMxNzMuLjY3MmJjMTM2MGFiYzU5YmI2NDdmNzQyMWI3MjYw
NzExNjEzNjZmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
dGhPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmgKQEAgLTU0LDggKzU0LDggQEAgY2xhc3MgTWF0aE9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0Fi
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXRoUHJvdG9GdW5jRmxvb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RydW5jKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1
bmNBYnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jRmxvb3IpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jVHJ1bmMpOwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMTY3NTQ2OWJjNzFiYmQyM2FjYzQ5ODk4
ZmY2MDc0NmNiYjIyZDBiZC4uN2NjMTFiNWY1ZTEyOTcyMjAxNmI4NjcxZjEzN2M2YmIxNzIxMzg0
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTMxLDYgKzMxLDE5IEBAIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZSk7CiAKIGNv
bnN0IENsYXNzSW5mbyBOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZTo6c19pbmZvID0geyAiRnVu
Y3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKE5hdGl2ZUVycm9yQ29uc3RydWN0b3JCYXNlKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsRXZhbEVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEV2YWxFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjYWxsUmFuZ2VFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zdHJ1Y3RSYW5nZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxSZWZlcmVuY2VFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RSZWZlcmVuY2VFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsU3ludGF4RXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0U3ludGF4RXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFR5
cGVFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RUeXBl
RXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFVSSUVycm9yKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFVSSUVycm9yKTsKKwog
dGVtcGxhdGU8RXJyb3JUeXBlIGVycm9yVHlwZT4KIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRp
dmVFcnJvckNvbnN0cnVjdG9yPGVycm9yVHlwZT46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CkBAIC01Niw1NiArNjks
NTYgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JU
eXBlPjo6Y2FsbEltcGwoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBtZXNz
YWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEV2YWxFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihj
YWxsRXZhbEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlw
ZTo6RXZhbEVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0RXZhbEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEV2YWxFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OkV2YWxFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsUmFuZ2VFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUmFuZ2VFcnJvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlJhbmdlRXJyb3I+
OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RSYW5nZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFJhbmdlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0
b3I8RXJyb3JUeXBlOjpSYW5nZUVycm9yPjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxS
ZWZlcmVuY2VFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUmVmZXJlbmNlRXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJv
cj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdFJlZmVyZW5jZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6UmVmZXJlbmNlRXJyb3I+Ojpjb25zdHJ1Y3RJbXBsKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbFN5bnRheEVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxTeW50YXhF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlN5bnRh
eEVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U3ludGF4RXJyb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0U3ludGF4RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9y
Q29uc3RydWN0b3I8RXJyb3JUeXBlOjpTeW50YXhFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUeXBlRXJyb3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpUeXBlRXJyb3I+Ojpj
YWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0VHlwZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVy
cm9yVHlwZTo6VHlwZUVycm9yPjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxVUklFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsVVJJRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpVUklFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKTsKIH0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdFVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFVSSUVycm9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6VVJJRXJyb3I+Ojpj
b25zdHJ1Y3RJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCmluZGV4IGIxNjU4NDU4ZThkOWZj
NTgxMGQ1YjkwNWVhMWE5OWU1NjMwZTVlMzcuLmVjOWIyZDU4MzBmMGNjNGNiMzI1NmMyNzU5OTBk
ZGRmZjFlMTAxZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RnVuY3Rpb24uaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgQ2Fs
bEZyYW1lOwogCi10eXBlZGVmIEVuY29kZWRKU1ZhbHVlIChKU0NfSE9TVF9DQUxMICpSYXdOYXRp
dmVGdW5jdGlvbikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3R5cGVkZWYgRW5jb2Rl
ZEpTVmFsdWUgKEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyAqUmF3TmF0aXZlRnVuY3Rpb24pKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CiAKIGNsYXNzIE5hdGl2ZUZ1bmN0aW9uIHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0
ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVy
RnVuY3Rpb24uY3BwCmluZGV4IDIzODk1NTU4NTg2MDI4ZjgyMzA4ZDU2MzVhYTI2ZGVkNzA1ZjFm
NTQuLmFhZTIwYTViYzc1OWIwNTJjZjE5Mzk3ODhiNmMwMGMyYWRiMjJjZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmNwcApA
QCAtMzMsNyArMzMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiBjb25zdCBDbGFzc0luZm8gTnVsbEdl
dHRlckZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoTnVsbEdldHRlckZ1bmN0aW9uKSB9Owog
CiBuYW1lc3BhY2UgTnVsbEdldHRlckZ1bmN0aW9uSW50ZXJuYWwgewotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJldHVyblVuZGVmaW5lZChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopCisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSZXR1
cm5VbmRlZmluZWQpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJldHVyblVuZGVm
aW5lZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCmluZGV4IDQ5OTQ4OTcxMzFlOGVm
NjcxZmM4ZDI5NzQ3ZDdhNjkwODIwYjgwOWEuLjI2ZjNiNmE4ZjlkYjY3OGNkOTRkMDVhZTg4YjEx
Yjg5ZTYxYzBlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bGxTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TnVsbFNldHRlckZ1bmN0aW9uLmNwcApAQCAtNzUsNyArNzUsMTAgQEAgc3RhdGljIGJvb2wgY2Fs
bGVySXNTdHJpY3QoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIAogbmFtZXNwYWNlIE51
bGxTZXR0ZXJGdW5jdGlvbkludGVybmFsIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbFJldHVyblVuZGVmaW5lZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxSZXR1cm5VbmRlZmluZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Y2FsbFRocm93RXJyb3IpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJldHVyblVu
ZGVmaW5lZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICNpZiAhQVNTRVJUX0VOQUJMRUQKICAgICBVTlVTRURfUEFSQU0oZ2xvYmFsT2Jq
ZWN0KTsKQEAgLTg1LDcgKzg4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFJldHVyblVuZGVmaW5lZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsVGhyb3dFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUaHJvd0Vy
cm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCA0MDRlNzliM2Q1YzNiMTMxOWFhNTgyODcwZjQ2YjFl
NWI5MzQxMzIyLi44ZmY0NTM0OTU1YTBhODE3OWRiNTJjMDIzMDg0NDc4OGJmMzhkODZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwCkBAIC0yOCw4ICsyOCw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVnZXIoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlckNv
bnN0cnVjdG9yRnVuY0lzSW50ZWdlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc1NhZmVJbnRlZ2VyKTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKQEAgLTQ5LDggKzQ5LDggQEAgY29uc3QgQ2xhc3NJbmZvIE51bWJlckNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICov
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1iZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxOdW1i
ZXJDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3ROdW1iZXJDb25zdHJ1Y3Rvcik7CiAKIE51bWJlckNvbnN0cnVjdG9yOjpOdW1iZXJDb25zdHJ1
Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlv
bih2bSwgc3RydWN0dXJlLCBjYWxsTnVtYmVyQ29uc3RydWN0b3IsIGNvbnN0cnVjdE51bWJlckNv
bnN0cnVjdG9yKQpAQCAtODIsNyArODIsNyBAQCB2b2lkIE51bWJlckNvbnN0cnVjdG9yOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIE51bWJlclByb3RvdHlwZSogbnVtYmVyUHJvdG90eXBlKQogfQog
CiAvLyBFQ01BIDE1LjcuMQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0TnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0TnVt
YmVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogZwogfQogCiAvLyBFQ01BIDE1LjcuMgotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxOdW1iZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTI3LDEzICsxMjcsMTMgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIH0KIAogLy8gRUNNQS0y
NjIgMjAuMS4yLjMKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlckNv
bnN0cnVjdG9yRnVuY0lzSW50ZWdlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50
ZWdlciwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKE51bWJlckNvbnN0cnVjdG9yOjppc0ludGVn
ZXJJbXBsKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKSk7CiB9CiAKIC8vIEVDTUEtMjYyIDIwLjEu
Mi41Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJDb25zdHJ1Y3Rv
ckZ1bmNJc1NhZmVJbnRlZ2VyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyQ29uc3RydWN0b3JGdW5jSXNTYWZlSW50
ZWdlciwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpT
VmFsdWUgYXJndW1lbnQgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIGlmIChhcmd1bWVu
dC5pc0ludDMyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmNwcAppbmRleCA1OGFjMThjZjIwZDVmOWYxZjFmNDVkY2UyYTc5NmI3NzlmZTY5
YjEwLi5lZmM2NzczNTE5MDkyY2FiNjc5NzljYzRjZGJmZjg5ZjU1NTMzM2Q5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKQEAgLTQw
LDEwICs0MCwxMCBAQCB0eXBlZGVmIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OlN0cmluZ0J1aWxk
ZXIgRG91YmxlQ29udmVyc2lvblN0cmluZ0J1aWxkZXI7CiAKIG5hbWVzcGFjZSBKU0MgewogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0xvY2Fs
ZVN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9GaXhlZChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVy
UHJvdG9GdW5jVG9FeHBvbmVudGlhbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9QcmVjaXNp
b24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvRml4ZWQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik7
CiAKIH0KIApAQCAtMzgyLDcgKzM4Miw3IEBAIFN0cmluZyB0b1N0cmluZ1dpdGhSYWRpeChkb3Vi
bGUgZG91YmxlVmFsdWUsIGludDMyX3QgcmFkaXgpCiAvLyBUaGlzIG1ldGhvZCB0YWtlcyBhbiBv
cHRpb25hbCBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mICpkZWNpbWFsIHBsYWNlcyoK
IC8vIHRvIHJvdW5kIHRoZSBzaWduaWZpY2FuZCB0byAob3IsIHB1dCBhbm90aGVyIHdheSwgdGhp
cyBtZXRob2Qgb3B0aW9uYWxseSByb3VuZHMKIC8vIHRvIGFyZ3VtZW50LXBsdXMtb25lIHNpZ25p
ZmljYW50IGZpZ3VyZXMpLgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90
b0Z1bmNUb0V4cG9uZW50aWFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1Rv
RXhwb25lbnRpYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQxOSw3ICs0MTksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbAogLy8gVGhpcyBtZXRob2QgdGFrZXMgYW4gYXJndW1lbnQgc3Bl
Y2lmeWluZyBhIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyB0byByb3VuZCB0aGUKIC8vIHNpZ25p
ZmljYW5kIHRvLiBIb3dldmVyIHdoZW4gY29udmVydGluZyBsYXJnZSB2YWx1ZXMgKDFlKzIxIGFu
ZCBhYm92ZSkgdGhpcwogLy8gbWV0aG9kIHdpbGwgaW5zdGVhZCBmYWxsYmFjayB0byBjYWxsaW5n
IFRvU3RyaW5nLiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VG9GaXhlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb0ZpeGVkLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC00NTMsNyArNDUzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QKIC8vIGRlY2ltYWwsIHdoaWxzdCAxMDAwIGlzIGNvbnZlcnRlZCB0byB0aGUgZXhwb25lbnRp
YWwgcmVwcmVzZW50YXRpb24gMS4wMGUrMy4KIC8vIEZvciBuZWdhdGl2ZSBleHBvbmVudHMgdmFs
dWVzID49IDFlLTYgYXJlIGZvcm1hdGVkIGFzIGRlY2ltYWwgZnJhY3Rpb25zLAogLy8gd2l0aCBz
bWFsbGVyIHZhbHVlcyBjb252ZXJ0ZWQgdG8gZXhwb25lbnRpYWwgcmVwcmVzZW50YXRpb24uCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvUHJlY2lzaW9uLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC01NDksNyArNTQ5LDcgQEAgSlNTdHJpbmcqIG51bWJlclRvU3RyaW5nKFZN
JiB2bSwgZG91YmxlIGRvdWJsZVZhbHVlLCBpbnQzMl90IHJhZGl4KQogICAgIHJldHVybiBudW1i
ZXJUb1N0cmluZ0ludGVybmFsKHZtLCBkb3VibGVWYWx1ZSwgcmFkaXgpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC01NjQsNyArNTY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKG51bWJlclRvU3RyaW5nSW50ZXJuYWwodm0sIGRvdWJsZVZhbHVlLCByYWRp
eCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1Rv
TG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NzksNyArNTc5LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShudW1iZXJGb3JtYXQtPmZvcm1hdChnbG9iYWxPYmplY3QsIHgpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCmluZGV4
IDNlMDgzZWEzOGU0YjUyZDNlNTNmYmQ1YzBjMWY2YTc3YmIxMWUxZmUuLjVjMGU0ZmVkNDIzMmQ2
ODNkNjg1MDYxOTYzYmJkZDA2MWQ5MmUzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oCkBAIC00OSw4ICs0OSw4IEBAIGNsYXNzIE51bWJl
clByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBOdW1iZXJPYmplY3QgewogfTsKIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKE51bWJlclByb3RvdHlwZSwgTnVtYmVyT2JqZWN0KTsK
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1ZhbHVlT2YpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb1N0cmluZyk7CiBKU1N0cmluZyog
aW50MzJUb1N0cmluZyhWTSYsIGludDMyX3QgdmFsdWUsIGludDMyX3QgcmFkaXgpOwogSlNTdHJp
bmcqIGludDUyVG9TdHJpbmcoVk0mLCBpbnQ2NF90IHZhbHVlLCBpbnQzMl90IHJhZGl4KTsKIEpT
U3RyaW5nKiBudW1iZXJUb1N0cmluZyhWTSYsIGRvdWJsZSB2YWx1ZSwgaW50MzJfdCByYWRpeCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggZDVmMWMyNmNiOThmZTRiMDFhMzkzMDVlZjBiMGQwYzNmYzIzMGExZi4uYjMx
ZTliY2U4M2I0ZmExMDU4Njc5YWJmNjc1YWIzMDYwZDI3ZWM2MSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtMzEsMjAg
KzMxLDIwIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yQXNzaWduKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yVmFsdWVzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JTZXRQ
cm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVBy
b3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JDcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JT
ZWFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRnJlZXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yUHJldmVu
dEV4dGVuc2lvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1
Y3RvcklzRnJvemVuKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXNFeHRlbnNpYmxlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0
cnVjdG9yQXNzaWduKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0
b3JWYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3Rvckdl
dFByb3RvdHlwZU9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0
b3JTZXRQcm90b3R5cGVPZik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0
cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9i
amVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG9iamVjdENvbnN0cnVjdG9yU2VhbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9i
amVjdENvbnN0cnVjdG9yRnJlZXplKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0
Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KG9iamVjdENvbnN0cnVjdG9ySXNTZWFsZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvcklzRnJvemVuKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0Q29uc3RydWN0b3JJc0V4dGVuc2libGUpOwogCiB9CiAKQEAgLTgzLDggKzgzLDggQEAgY29u
c3QgQ2xhc3NJbmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJ
bnRlcm5hbEZ1bmN0aW9uOjpzX2kKICovCiAKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoT2Jq
ZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxPYmplY3RDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpOwog
CiBPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbE9i
amVjdENvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpCkBAIC0xMzAs
MjIgKzEzMCwyMiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU09iamVjdCogY29uc3RydWN0T2Jq
ZWN0V2l0aE5ld1RhcmdldChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgYXJndW1lbnQudG9PYmplY3QoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3RXaXRoTmV3VGFyZ2V0
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYWxsRnJhbWUtPm5ld1RhcmdldCgpKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsT2JqZWN0Q29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RPYmplY3RXaXRoTmV3VGFyZ2V0KGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBKU1ZhbHVlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmdldFByb3RvdHlwZShnbG9iYWxPYmplY3QpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvclNldFBy
b3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yU2V0UHJvdG90
eXBlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBKU1ZhbHVlIG9i
amVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBkZXNjcmlwdG9yczsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVz
Y3JpcHRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI0LDcgKzIyNCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIHByb3BlcnR5TmFtZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzMsNyArMjMzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMo
SlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZ2xvYmFsT2JqZWN0LCBv
YmplY3QpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3Ry
dWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0
cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQzLDcg
KzI0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JH
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0CiB9CiAKIC8vIEZJWE1FOiBVc2UgdGhl
IGVudW1lcmF0aW9uIGNhY2hlLgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvckdldE93blByb3BlcnR5U3ltYm9scyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmpl
Y3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5U3ltYm9scywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjUyLDcgKzI1Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29u
c3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMoSlNHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUob3duUHJvcGVydHlLZXlzKGdsb2JhbE9i
amVjdCwgb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlOjpTeW1ib2xzLCBEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpJbmNsdWRlLCBXVEY6Om51bGxvcHQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JLZXlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9i
amVjdENvbnN0cnVjdG9yS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYxLDcgKzI2MSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JLZXlzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUob3duUHJvcGVydHlLZXlzKGdsb2JhbE9iamVjdCwgb2JqZWN0LCBQ
cm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRl
LCBDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZDo6S2V5cykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvckFzc2lnbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzg5LDcg
KzM4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JB
c3NpZ24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0YXJnZXQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yVmFs
dWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MzEsNyArNTMxLDcgQEAgYm9vbCB0b1Byb3Bl
cnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGluLCBQ
cm9wZXJ0eURlc2MKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHksIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTU5OCw3ICs1OTgsNyBAQCBzdGF0aWMgSlNWYWx1ZSBkZWZpbmVQcm9wZXJ0aWVzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QsCiAgICAgcmV0dXJuIG9i
amVjdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
ckRlZmluZVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JE
ZWZpbmVQcm9wZXJ0aWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MTMsNyArNjEzLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3Bl
cnRpZXMoSlNHbG9iYWxPYmplY3QqIGcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpT
VmFsdWU6OmVuY29kZShkZWZpbmVQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgdGFyZ2V0T2JqLCBw
cm9wcykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1
Y3RvckNyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIEpTT2JqZWN0KiBvYmplY3RD
b25zdHJ1Y3RvclNlYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9i
amVjdCkKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yU2VhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25z
dHJ1Y3RvclNlYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc3OSw3ICs3NzksNyBAQCBKU09i
amVjdCogb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIG9iamVjdAogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JGcmVlemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc5
Miw3ICs3OTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVj
dG9yRnJlZXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvclByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVj
dENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgw
OCw3ICs4MDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVj
dG9yUHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShvYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9ySXNTZWFsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0
b3JJc1NlYWxlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKQEAgLTgyNiw3
ICs4MjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
SXNTZWFsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKHRlc3RJbnRlZ3JpdHlMZXZlbDxJbnRlZ3JpdHlMZXZlbDo6U2VhbGVk
PihnbG9iYWxPYmplY3QsIHZtLCBvYmplY3QpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc0Zyb3plbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvcklzRnJvemVuLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKIApAQCAtODQ0LDcgKzg0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0Q29uc3RydWN0b3JJc0Zyb3plbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odGVzdEludGVncml0eUxldmVsPEludGVncml0
eUxldmVsOjpGcm96ZW4+KGdsb2JhbE9iamVjdCwgdm0sIG9iamVjdCkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtODU3LDcgKzg1Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0Q29uc3RydWN0b3JJc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNFeHRlbnNpYmxlKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKHNhbWVWYWx1ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSkpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCBiODhjMzU5OTFlMDM5
MjUwMDdkNDU3ODQ3MzNmNmExODE3OWFlMjhmLi41YzI4Yjc5YWMxOTM4OGNmYmZkYzBiYjVhYzYy
ZDBjYjA5MGRkOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdENvbnN0cnVjdG9yLmgKQEAgLTI2LDExICsyNiwxMSBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3Jp
cHRvcnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yS2V5cyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVy
dHlTeW1ib2xzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JH
ZXRPd25Qcm9wZXJ0eU5hbWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29u
c3RydWN0b3JLZXlzKTsKIAogY2xhc3MgT2JqZWN0UHJvdG90eXBlOwogCkBAIC0xNjYsNiArMTY2
LDYgQEAgSlNWYWx1ZSBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMo
SlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCopOwogSlNBcnJheSogb3duUHJvcGVydHlLZXlzKEpT
R2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqLCBQcm9wZXJ0eU5hbWVNb2RlLCBEb250RW51bVByb3Bl
cnRpZXNNb2RlLCBPcHRpb25hbDxDYWNoZWRQcm9wZXJ0eU5hbWVzS2luZD4pOwogYm9vbCB0b1By
b3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUsIFByb3BlcnR5RGVzY3Jp
cHRvciYpOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
SXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04ob2JqZWN0Q29uc3RydWN0b3JJcyk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKaW5kZXggNTc3
N2FmYmEyNjI3OTY4MDZkYWFlNGM5Y2U3MWVhYjUzZTBkZTI5MC4uYzgxNTNkMDUyY2YyZTcxMzdh
NWJhMTQ2MmZiOWYxN2JlNzZiMjc4YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCkBAIC0yOSwxNSArMjksMTUgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFBy
b3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNJc1Byb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90
b0Z1bmNEZWZpbmVHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90
b0Z1bmNMb29rdXBTZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVt
ZXJhYmxlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0UHJvdG9GdW5jVmFsdWVPZik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNIYXNPd25Qcm9wZXJ0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihvYmplY3RQcm90b0Z1bmNJc1Byb3RvdHlwZU9mKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlcik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVy
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0xvb2t1
cFNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1
bmNQcm9wZXJ0eUlzRW51bWVyYWJsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJ
VklBTExZX0RFU1RSVUNUSUJMRShPYmplY3RQcm90b3R5cGUpOwogCkBAIC03NCw3ICs3NCw3IEBA
IE9iamVjdFByb3RvdHlwZSogT2JqZWN0UHJvdG90eXBlOjpjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY1ZhbHVlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpLnRvVGhpcyhnbG9iYWxPYmplY3QsIEVDTUFNb2RlOjpz
dHJpY3QoKSk7CiAgICAgSlNPYmplY3QqIHZhbHVlT2JqID0gdGhpc1ZhbHVlLnRvT2JqZWN0KGds
b2JhbE9iamVjdCk7CkBAIC0xMTAsNyArMTEwLDcgQEAgYm9vbCBvYmplY3RQcm90b3R5cGVIYXNP
d25Qcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGJhc2UsIGMK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFBy
b3RvRnVuY0hhc093blByb3BlcnR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjIsNyArMTIy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNIYXNPd25Q
cm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihvYmplY3RQcm90b3R5cGVIYXNPd25Qcm9wZXJ0eShnbG9iYWxPYmplY3QsIGJh
c2UsIHByb3BlcnR5TmFtZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcm90b0Z1bmNJc1Byb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFBy
b3RvRnVuY0lzUHJvdG90eXBlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0OSw3ICsxNDks
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90
eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIH0KIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0UHJvdG9GdW5jRGVmaW5lR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xNzYsNyArMTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90
b0Z1bmNEZWZpbmVHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMyw3
ICsyMDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0Rl
ZmluZVNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFBy
b3RvRnVuY0xvb2t1cEdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjMzLDcgKzIzMyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQ
cm90b0Z1bmNMb29rdXBTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5j
TG9va3VwU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjMsNyArMjYzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBTZXR0ZXIoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVu
Y1Byb3BlcnR5SXNFbnVtZXJhYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVu
Y1Byb3BlcnR5SXNFbnVtZXJhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODEsNyArMjgx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNQcm9wZXJ0
eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCoKIH0KIAogLy8gMTUuMi40LjMgT2JqZWN0LnBy
b3RvdHlwZS50b0xvY2FsZVN0cmluZygpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFBy
b3RvRnVuY1RvTG9jYWxlU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTEsNyArMzEx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb0xvY2Fs
ZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgdG9TdHJpbmcsIGNhbGxEYXRh
LCB0aGlzVmFsdWUsICp2bS5lbXB0eUxpc3QpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0UHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggYzM3NmU2Y2IwNzkz
YjAyOTk3NTdmZTE4NjZiODIxNWI2OTQxMTM1NC4uODQ3YjlhZjM4MTY2N2Q5MzAxMTEyN2MxZTMz
Nzg1MzdjMjJjMzkyZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T2JqZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmgKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgT2JqZWN0UHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotSlNfRVhQT1JUX1BSSVZBVEUgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk7CiBib29sIG9iamVjdFByb3RvdHlwZUhhc093
blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNwcAppbmRleCAzMTRhMjYzZjExMGQ0
MTVlMmJlY2I4ZDNmZDAxYjEzNzM3NjI2YjQ4Li5kY2NmY2RjOGFmYjM2OGUzMDM1NGFhNmVlNjkw
ZTgwOTBhMzZkMzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm94eUNvbnN0cnVjdG9yLmNwcApAQCAtNDQsMTUgKzQ0LDE2IEBAIFByb3h5Q29uc3RydWN0b3Iq
IFByb3h5Q29uc3RydWN0b3I6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbFByb3h5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RQcm94eU9iamVjdChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Y2FsbFByb3h5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFBy
b3h5T2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1ha2VSZXZvY2Fi
bGVQcm94eSk7CiAKIFByb3h5Q29uc3RydWN0b3I6OlByb3h5Q29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFByb3h5
LCBjb25zdHJ1Y3RQcm94eU9iamVjdCkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbWFrZVJldm9jYWJsZVByb3h5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1ha2VS
ZXZvY2FibGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzksMTQgKzgwLDE0IEBAIHZv
aWQgUHJveHlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBjaGFyKiBu
YW1lLCBKU0dsb2JhbE9iamVjdCoKICAgICBwdXREaXJlY3Qodm0sIG1ha2VJZGVudGlmaWVyKHZt
LCAicmV2b2NhYmxlIiksIEpTRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCAyLCAi
cmV2b2NhYmxlIl9zLCBtYWtlUmV2b2NhYmxlUHJveHkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0UHJveHlPYmplY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0UHJveHlPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0YXJnZXQgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgaGFuZGxlciA9IGNhbGxGcmFtZS0+YXJndW1l
bnQoMSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShQcm94eU9iamVjdDo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgdGFyZ2V0LCBoYW5kbGVyKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxQcm94eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxQcm94eSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJQcm94eSIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRleCBlNjI2NThkMTA5MDMwZjI1NjdhNDdi
MjU4YTA0OGQyZWI1OTcxYTA4Li41MTk2MmFmODBkOWE5MzU0ODA1M2ExMDY0M2E1MWM2ZWQ5ZDA2
NjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3Bw
CkBAIC00MCw2ICs0MCw5IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShQcm94eU9iamVjdCk7CiAKIGNvbnN0IENsYXNzSW5mbyBQcm94eU9iamVjdDo6c19pbmZvID0g
eyAiUHJveHlPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFByb3h5T2JqZWN0KSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihwZXJmb3JtUHJveHlDYWxsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHBlcmZvcm1Qcm94eUNvbnN0cnVjdCk7CisKIFByb3h5T2JqZWN0OjpQcm94eU9iamVjdChW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQog
ewpAQCAtNDcwLDcgKzQ3Myw3IEBAIGJvb2wgUHJveHlPYmplY3Q6OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QtPnB1dEJ5SW5kZXhDb21tb24oZ2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHBlcmZvcm1Qcm94eUNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
cGVyZm9ybVByb3h5Q2FsbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBOT19UQUlMX0NBTExTKCk7CiAKQEAgLTUxNyw3ICs1MjAs
NyBAQCBDYWxsRGF0YSBQcm94eU9iamVjdDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogICAg
IHJldHVybiBjYWxsRGF0YTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcGVyZm9ybVByb3h5Q29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94
eUNvbnN0cnVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBOT19UQUlMX0NBTExTKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5UmV2b2tlLmNwcAppbmRleCAwNGFhNmZkZTE5YjY5NDdiMDdjYTQx
MjFlNTY3MjJhZWRhOTQ2OTU3Li44ZmU3NDY2ODUwMTJkZGQxMDcxZjRjZjVjNDYyMzEyMmU0Njk4
MDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9r
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3Bw
CkBAIC00Miw3ICs0Miw3IEBAIFByb3h5UmV2b2tlKiBQcm94eVJldm9rZTo6Y3JlYXRlKFZNJiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFByb3h5T2JqZWN0KiBwcm94CiAgICAgcmV0dXJuIHJl
dm9rZTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVBy
b3h5UmV2b2tlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJveHlSZXZva2UpOwogCiBQcm94eVJldm9rZTo6UHJv
eHlSZXZva2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSwgcGVyZm9ybVByb3h5UmV2b2tlLCBudWxscHRyKQpAQCAtNTUsNyArNTUsNyBAQCB2
b2lkIFByb3h5UmV2b2tlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFByb3h5T2JqZWN0KiBwcm94
eSkKICAgICBtX3Byb3h5LnNldCh2bSwgdGhpcywgcHJveHkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwZXJmb3JtUHJveHlSZXZva2UoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ocGVyZm9ybVByb3h5UmV2b2tlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFByb3h5UmV2b2tlKiBwcm94eVJldm9rZSA9
IGpzQ2FzdDxQcm94eVJldm9rZSo+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgSlNWYWx1
ZSBwcm94eVZhbHVlID0gcHJveHlSZXZva2UtPnByb3h5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCmluZGV4IDMyMjU1ZjhlNmEwNzY4YWVl
ZWI2ZTg0OGNmOThkZTNhOTY2YTljN2MuLjQwMWNhZmU1YTQ4NDRiODI3MWFhMGU0YWI1YzVmNWJk
YzdlNzQzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxl
Y3RPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RP
YmplY3QuY3BwCkBAIC0zMSwxNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RDb25zdHJ1Y3QoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZmxlY3RPYmplY3REZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVj
dEdldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcmVmbGVjdE9iamVjdEdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0
SXNFeHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0T3duS2V5cyhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVm
bGVjdE9iamVjdFByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0U2V0KEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RD
b25zdHJ1Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVj
dERlZmluZVByb3BlcnR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxl
Y3RPYmplY3RHZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9i
amVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWZsZWN0T2JqZWN0R2V0UHJvdG90eXBlT2YpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdElzRXh0ZW5zaWJsZSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0T3duS2V5cyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0UHJldmVudEV4dGVuc2lvbnMpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdFNldCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YpOwog
CiB9CiAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBSZWZsZWN0T2JqZWN0OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLy8gaHR0
cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5jb25zdHJ1Y3QKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdENvbnN0cnVjdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWZsZWN0T2JqZWN0Q29uc3RydWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMjQsNyArMTI0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2Jq
ZWN0Q29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIH0KIAogLy8gaHR0cHM6
Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5kZWZpbmVwcm9wZXJ0eQotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdERlZmluZVByb3BlcnR5LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNTAsNyArMTUwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIH0K
IAogLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5nZXQKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdEdldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWZsZWN0T2JqZWN0R2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzEsNyAr
MTcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKIH0KIAogLy8gaHR0cHM6Ly90YzM5Lmdp
dGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODcsNyArMTg3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKEpTR2xvYmFsT2JqZWMKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYy
LyNzZWMtcmVmbGVjdC5nZXRwcm90b3R5cGVvZgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWZsZWN0T2JqZWN0R2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVmbGVj
dE9iamVjdEdldFByb3RvdHlwZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0UHJvdG90
eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIH0KIAogLy8gaHR0cHM6Ly90YzM5LmdpdGh1
Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5pc2V4dGVuc2libGUKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdElzRXh0ZW5zaWJsZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihyZWZsZWN0T2JqZWN0SXNFeHRlbnNpYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTQs
NyArMjE0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0SXNF
eHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKIH0KIAogLy8gaHR0cHM6Ly90YzM5
LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5vd25rZXlzCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RPd25LZXlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJl
ZmxlY3RPYmplY3RPd25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjYsNyArMjI2LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0T3duS2V5cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogfQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlv
L2VjbWEyNjIvI3NlYy1yZWZsZWN0LnByZXZlbnRleHRlbnNpb25zCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWZsZWN0T2JqZWN0UHJldmVudEV4dGVuc2lvbnMsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTI0MSw3ICsyNDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxl
Y3RPYmplY3RQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYgogfQogCiAvLyBo
dHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LnNldAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0U2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZmxlY3RPYmplY3RTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2NSw3ICsyNjUsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RTZXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogfQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlv
L2VjbWEyNjIvI3NlYy1yZWZsZWN0LnNldHByb3RvdHlwZW9mCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHJlZmxlY3RPYmplY3RTZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihyZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApp
bmRleCAyMDMxNTNkMzg3NGI1ZTAwYWE1ZDg1ZTU0MGRhMzNjNTIwNjRjNzRkLi42NGIyMTNiN2Q5
MTFjOTUxYTkxMDQwMjVkYjY5M2QzY2EyNTFlOTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC04Miw4ICs4Miw4IEBA
IGNvbnN0IENsYXNzSW5mbyBSZWdFeHBDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAqLwogCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0
aFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsUmVnRXhwQ29uc3RydWN0b3IpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9y
KTsKIAogUmVnRXhwQ29uc3RydWN0b3I6OlJlZ0V4cENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxSZWdFeHBDb25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yKQpAQCAt
MzA5LDI2ICszMDksMjYgQEAgSlNPYmplY3QqIGNvbnN0cnVjdFJlZ0V4cChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBjb25zdCBBcmdMaXN0JiBhcmdzLCAgSlMKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIHJlZ0V4cENyZWF0ZShnbG9iYWxPYmplY3QsIG5ld1RhcmdldCwgcGF0
dGVybkFyZywgZmxhZ3NBcmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBl
c1NwZWNSZWdFeHBDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZXNTcGVjUmVnRXhwQ3JlYXRl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIEpTVmFsdWUgcGF0dGVybkFyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAg
SlNWYWx1ZSBmbGFnc0FyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZWdFeHBDcmVhdGUoZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlKCksIHBhdHRl
cm5BcmcsIGZsYWdzQXJnKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZXNT
cGVjSXNSZWdFeHAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZXNTcGVjSXNSZWdFeHAsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGlzUmVnRXhwKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkp
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdp
dGhSZWdFeHBDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoUmVn
RXhwQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RSZWdFeHAoZ2xvYmFsT2JqZWN0LCBhcmdzLCBjYWxs
RnJhbWUtPmpzQ2FsbGVlKCksIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNhbGxSZWdFeHBDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3Mo
Y2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChn
bG9iYWxPYmplY3QsIGFyZ3MsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKaW5kZXggYjJhNjQy
MTQ0ZDA0N2YxYmNiYzYzNDQ5MTQ5Y2MyZTBkMDc3YzUxNC4uY2I1NjNhNDJlZjNiMGZmZmQyZTFk
YjljZDEwYzcwYjI5MDYzNjJlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCkBAIC03Miw3ICs3Miw3IEBAIEFMV0FZU19JTkxJTkUg
Ym9vbCBpc1JlZ0V4cChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFs
dWUgdmFsdWUpCiAgICAgcmV0dXJuIG9iamVjdC0+aW5oZXJpdHM8UmVnRXhwT2JqZWN0Pih2bSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZXNTcGVjUmVnRXhwQ3JlYXRlKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGVzU3BlY0lzUmVnRXhwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGVzU3BlY1JlZ0V4cENyZWF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGVzU3BlY0lzUmVnRXhwKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAppbmRleCAzZWE1
NTA0ZDYwZGZkYTQ2NDM5Y2ZjYzA5NmJmYTkyMWNjNWMxOGM5Li5jMmQ2NTcyMGI4ZDJlNmY1OGY2
MDA4M2ZhMjIxOWI2MmFjOTU5OWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTM2LDE3ICszNiwxNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9GdW5jRXhlYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVn
RXhwUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyR2xvYmFsKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyTXVsdGlsaW5lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckRvdEFsbChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcmVnRXhwUHJvdG9HZXR0ZXJTdGlja3koSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5p
Y29kZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFBy
b3RvR2V0dGVyRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY0V4ZWMpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jQ29tcGlsZSk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNUb1N0cmluZyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0dldHRlckdsb2JhbCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2Up
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJNdWx0
aWxpbmUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0
ZXJEb3RBbGwpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9H
ZXR0ZXJTdGlja3kpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJv
dG9HZXR0ZXJVbmljb2RlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4
cFByb3RvR2V0dGVyU291cmNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJl
Z0V4cFByb3RvR2V0dGVyRmxhZ3MpOwogCiBjb25zdCBDbGFzc0luZm8gUmVnRXhwUHJvdG90eXBl
OjpzX2luZm8gPSB7ICJPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFJlZ0V4cFByb3RvdHlwZSkgfTsKIApAQCAtODAsNyArODAsNyBA
QCB2b2lkIFJlZ0V4cFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
RnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05Niw3ICs5
Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVGVzdEZh
c3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+dGVzdChnbG9iYWxPYmplY3Qs
IHN0cmluZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9GdW5jRXhlYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNFeGVjLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShyZWdleHAt
PmV4ZWMoZ2xvYmFsT2JqZWN0LCBzdHJpbmcpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJl
Z0V4cFByb3RvRnVuY01hdGNoRmFzdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBSZWdFeHBPYmplY3QqIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8UmVnRXhwT2JqZWN0Kj4oY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgSlNTdHJp
bmcqIHN0cmluZyA9IGpzQ2FzdDxKU1N0cmluZyo+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoMCkpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
cmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5tYXRjaEdsb2JhbChnbG9iYWxPYmpl
Y3QsIHN0cmluZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFBy
b3RvRnVuY0NvbXBpbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jQ29tcGls
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHN0YXRpYyBpbmxpbmUg
RmxhZ3NTdHJpbmcgZmxhZ3NTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNP
YmplY3QqIHJlCiAgICAgcmV0dXJuIHN0cmluZzsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdF
eHBQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjMxLDcgKzIzMSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVG9TdHJpbmco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhnbG9iYWxPYmplY3QsICcv
Jywgc291cmNlLCAnLycsIGZsYWdzKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvR2V0dGVyR2xvYmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFBy
b3RvR2V0dGVyR2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDcsNyArMjQ3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckdsb2JhbChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9v
bGVhbihyZWdleHAtPnJlZ0V4cCgpLT5nbG9iYWwoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI2Myw3ICsyNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVySWdub3JlQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmlnbm9yZUNhc2UoKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyTXVsdGls
aW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVyTXVsdGlsaW5lLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNzksNyArMjc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0dldHRlck11bHRpbGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgp
LT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvR2V0dGVyRG90QWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVy
RG90QWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTUsNyArMjk1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckRvdEFsbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdl
eHAtPnJlZ0V4cCgpLT5kb3RBbGwoKSkpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdF
eHBQcm90b0dldHRlclN0aWNreSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzExLDcgKzMxMSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTdGlja3ko
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+c3RpY2t5KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclVuaWNvZGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJVbmljb2RlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
MjcsNyArMzI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dl
dHRlclVuaWNvZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT51bmljb2RlKCkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckZsYWdzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVyRmxhZ3MsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTQ0OSw3ICs0NDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgcmVnRXhwUHJvdG9H
ZXR0ZXJTb3VyY2VJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVy
biBqc1N0cmluZyh2bSwgcmVzdWx0LnRvU3RyaW5nKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZ0V4cFByb3RvR2V0dGVyU291cmNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NjgsNyAr
NDY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNv
dXJjZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlZ0V4cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBwYXR0ZXJu
LCBwYXR0ZXJuLmNoYXJhY3RlcnMxNigpLCBwYXR0ZXJuLmxlbmd0aCgpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC01ODUsNyArNTg1LDcgQEAgdm9pZCBnZW5lcmljU3BsaXQoCiB9CiAKIC8vIEVTIDIx
LjIuNS4xMSBSZWdFeHAucHJvdG90eXBlW0BAc3BsaXRdKHN0cmluZywgbGltaXQpCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKaW5k
ZXggZmUxMmM5YzRkMjg2NTM1MmI4NjQ5ZGY3NjBmYjVlYjA2YjgyZjE3Zi4uMTVjNzgzOTg1Zjc0
YjZjZWY1NjBlMGNlOWJhMjljZjczODllZTlhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmgKQEAgLTU2LDkgKzU2LDkgQEAgY2xhc3MgUmVn
RXhwUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jU2VhcmNoRmFzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9G
dW5jVGVzdEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHJlZ0V4cFByb3RvRnVuY1Rlc3RGYXN0KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MDg2YTQ2NjQ3ZjliYzc2ZWIxMDc3ZGJlYTVmZmQ5YTNiOWUwNmFjYi4uOWZkYTg5YzZkNzZkNmRm
NmNlZjJlZGRiMzI5MGZjZDg3YjFlOTJlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcApAQCAtNDIsMjIgKzQyLDIyIEBAIHZvaWQgU2V0
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU2V0UHJvdG90eXBlKiBzZXRQcm90
b3R5cGUsIEdldHRlclNlCiAgICAgcHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9s
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxTZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0U2V0
KTsKIAogU2V0Q29uc3RydWN0b3I6OlNldENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTZXQsIGNvbnN0cnVjdFNl
dCkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFNldChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiU2V0IikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0U2V0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC05OCw3ICs5OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzZXQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChn
bG9iYWxPYmplY3QsIGpzRHluYW1pY0Nhc3Q8SlNTZXQqPihnbG9iYWxPYmplY3QtPnZtKCksIGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKICAgICBKU1NldCogc2V0ID0ganNDYXN0PEpTU2V0Kj4o
Y2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CkBAIC0xMDcsNyArMTA3LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGhlYWQpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0
TmV4dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRlRnVuY1NldEJ1Y2tldE5leHQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgQVNTRVJUKGpzRHluYW1pY0Nhc3Q8SlNTZXQ6OkJ1Y2tldFR5cGUqPihnbG9iYWxPYmplY3Qt
PnZtKCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKICAgICBhdXRvKiBidWNrZXQgPSBqc0Nh
c3Q8SlNTZXQ6OkJ1Y2tldFR5cGUqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsK
QEAgLTEyMSw3ICsxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZh
dGVGdW5jU2V0QnVja2V0TmV4dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoZ2xvYmFsT2JqZWN0LT52bSgpLnNlbnRpbmVsU2V0QnVja2V0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0
S2V5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5jU2V0QnVja2V0S2V5LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBqc0R5bmFtaWNDYXN0PEpTU2V0OjpCdWNrZXRU
eXBlKj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAg
YXV0byogYnVja2V0ID0ganNDYXN0PEpTU2V0OjpCdWNrZXRUeXBlKj4oY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TZXRDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0
Q29uc3RydWN0b3IuaAppbmRleCBlYjFjNjFiMjAyMjUwYWViZGZmNzU0YjVjNDcwM2I4MzRiMzYy
YzI3Li4xNzZhMWNkZTdkOWE2NmFiZDVhMDk2Zjg4ZGY2OWE5YjAwMzk3NjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmgKQEAgLTU2LDggKzU2
LDggQEAgY2xhc3MgU2V0Q29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoU2V0Q29uc3RydWN0
b3IsIEludGVybmFsRnVuY3Rpb24pOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNl
dFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldE5leHQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRLZXkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRIZWFk
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXROZXh0
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRLZXkp
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TZXRQcm90b3R5cGUuY3BwCmluZGV4IDRjNDdmYWMwOTdmNWQ4Mjk2MWEzYjRhMTRiNDgzNTg2
YjQyZWE1MTQuLjMzYTA0OTFjNjU0NTc2YjUzMTUzNzRmNmM0ZTBkYmY3OGI3N2QwNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcApAQCAtNDMs
MTQgKzQzLDE0IEBAIGNvbnN0IENsYXNzSW5mbyBTZXRQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlNl
dCIsICZCYXNlOjpzX2luZm8sICZzZXRQcm90b3R5cGVUYWJsCiBAZW5kCiAqLwogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNBZGQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNl
dFByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNEZWxldGUoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNl
dFByb3RvRnVuY0hhcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQ
cm90b0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNBZGQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jQ2xlYXIpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jRGVsZXRlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0hhcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihzZXRQcm90b0Z1bmNWYWx1ZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oc2V0UHJvdG9GdW5jRW50cmllcyk7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHNldFByb3RvRnVuY1NpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY1NpemUpOwogCiB2
b2lkIFNldFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewpAQCAtOTIsNyArOTIsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBK
U1NldCogZ2V0U2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdGhpc1Zh
bAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHNldFByb3RvRnVuY0FkZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNBZGQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwogICAgIEpTU2V0
KiBzZXQgPSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUpOwpAQCAtMTAyLDcgKzEwMiw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQWRkKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aGlzVmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVu
Y0NsZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0NsZWFyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTU2V0
KiBzZXQgPSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAg
ICBpZiAoIXNldCkKQEAgLTExMSw3ICsxMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHNldFByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHNldFByb3RvRnVuY0RlbGV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1NldCogc2V0ID0gZ2V0U2V0KGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFzZXQpCkBAIC0xMTksNyAr
MTE5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNEZWxldGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihzZXQtPnJlbW92ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5j
SGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0hhcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1NldCogc2V0
ID0gZ2V0U2V0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYg
KCFzZXQpCkBAIC0xMjcsNyArMTI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
ZXRQcm90b0Z1bmNIYXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzZXQtPmhhcyhnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc2V0UHJvdG9GdW5jU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNTaXpl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIEpTU2V0KiBzZXQgPSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKICAgICBpZiAoIXNldCkKQEAgLTE0NSwxMiArMTQ1LDEyIEBAIGlubGluZSBKU1Zh
bHVlIGNyZWF0ZVNldEl0ZXJhdG9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSoKICAgICByZXR1cm4gSlNTZXRJdGVyYXRvcjo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QtPnNldEl0ZXJhdG9yU3RydWN0dXJlKCksIHNldCwga2luZCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHNldFByb3RvRnVuY1ZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNyZWF0
ZVNldEl0ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5k
OjpWYWx1ZXMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1
bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0VudHJpZXMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVTZXRJdGVyYXRvck9iamVjdChnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6RW50cmllcykpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCmluZGV4IGFl
Njc1MmQzYTY3MmQwMjRiZmVjMDc3M2MzYjQyZjFmZmEwNzM5ZTAuLmYyYmE1YzQxMWJhNjJlMDYw
YmVhNWRlY2M1ZThkNTU5MWY1YTJjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTI3LDggKzI3LDggQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z0Zyb21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNvZGVQb2ludChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5n
RnJvbUNoYXJDb2RlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ0Zy
b21Db2RlUG9pbnQpOwogCiB9CiAKQEAgLTQ5LDggKzQ5LDggQEAgY29uc3QgQ2xhc3NJbmZvIFN0
cmluZ0NvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9u
OjpzX2kKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShTdHJpbmdDb25z
dHJ1Y3Rvcik7CiAKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0
cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxTdHJpbmdDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IpOwogCiBTdHJpbmdDb25zdHJ1
Y3Rvcjo6U3RyaW5nQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFN0cmluZ0NvbnN0cnVjdG9y
LCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IpCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQg
U3RyaW5nQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgU3RyaW5nUHJvdG90eXBl
KiBzdHJpbmdQcm90b3R5cGUpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBG
dW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHN0cmluZ0Zyb21DaGFyQ29kZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAwLDEy
ICsxMDAsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJv
bUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgV1RGTW92ZShpbXBsOEJpdCkp
KSk7CiB9CiAKLUpTU3RyaW5nKiBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21DaGFyQ29kZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBpbnQzMl90IGFyZykKK0pTU3RyaW5nKiBzdHJpbmdG
cm9tQ2hhckNvZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBhcmcpCiB7
CiAgICAgcmV0dXJuIGpzU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0oKSwg
YXJnKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJv
bUNvZGVQb2ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdGcm9tQ29kZVBvaW50LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNvZGVQb2ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N0cmlu
Zyh2bSwgYnVpbGRlci50b1N0cmluZygpKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xNjAsNyArMTYwLDcgQEAgSlNTdHJpbmcqIHN0cmluZ0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYXJndW1lbnQpCiAgICAgcmV0dXJuIGFy
Z3VtZW50LnRvU3RyaW5nKGdsb2JhbE9iamVjdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxTdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsU3RyaW5nQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCA1Zjk0NzFlYTRj
MGJlZjkxNTMwYzE3MmU0YzQzOGJlOTkwOThlYzMxLi5iYjk0MzEwOGI2Nzg4ZDhjMTc5ZmUwZGZl
MDZhYzg4MzZlZDA1OTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgU3RyaW5nQ29uc3Ry
dWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiB9OwogU1RBVElDX0FTU0VS
VF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoU3RyaW5nQ29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rp
b24pOwogCi1KU1N0cmluZyogSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9i
YWxPYmplY3QqLCBpbnQzMl90KTsKK0pTU3RyaW5nKiBzdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9i
YWxPYmplY3QqLCBpbnQzMl90KTsKIEpTU3RyaW5nKiBzdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCosIEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IDFhMmRjNWY1
OGEyOTIyNDI2MDJhZjAzMzFjNGRiMTQzYTM4NjNiNzkuLmU5ZWM2NTE1OTRjNjhjODc3NTc0MmMy
NTY0ZDg1MDQ3MjM0OTEyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RyaW5nUHJvdG90eXBlLmNwcApAQCAtNTMsMzEgKzUzLDMxIEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoU3RyaW5nUHJvdG90
eXBlKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb1N0
cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDaGFyQXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVB
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9m
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VV
c2luZ1JlZ0V4cChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2goSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJz
dHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9V
cHBlckNhc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTG9jYWxlQ29tcGFyZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNUb0xvY2FsZUxvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZShK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNUcmltKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW1TdGFydChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdQcm90b0Z1bmNUcmltRW5kKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N0YXJ0c1dpdGgoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jRW5kc1dpdGgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jTm9ybWFsaXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVu
Y1RvU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jQ2hh
ckF0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jQ2hhckNvZGVB
dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jSW5kZXhPZik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhw
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5n
U3RyaW5nU2VhcmNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
UmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jU2xpY2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQ
cm90b0Z1bmNTdWJzdHIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1
bmNTdWJzdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNU
b0xvd2VyQ2FzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1Rv
VXBwZXJDYXNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jTG9j
YWxlQ29tcGFyZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1Rv
TG9jYWxlTG93ZXJDYXNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9G
dW5jVG9Mb2NhbGVVcHBlckNhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQ
cm90b0Z1bmNUcmltKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
VHJpbVN0YXJ0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jVHJp
bUVuZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1N0YXJ0c1dp
dGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVzKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IpOwogCiB9CiAKQEAg
LTg0NCw3ICs4NDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2hlY2tPYmplY3RDb2VyY2libGUo
SlNWYWx1ZSB0aGlzVmFsdWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtOTAwLDcgKzkwMCw3IEBAIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIHJlcGxhY2Uo
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZXBsYWNlKHZtLCBnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgc3RyaW5nLCBzZWFyY2hWYWx1ZSwgcmVwbGFjZVZhbHVlKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVn
RXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4
cCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTE1LDcgKzkxNSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwKEpTR2xvYmFs
T2JqZWN0KiBnCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
cmVwbGFjZVVzaW5nUmVnRXhwU2VhcmNoKHZtLCBnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Ry
aW5nLCBzZWFyY2hWYWx1ZSwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdT
ZWFyY2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3Ry
aW5nU2VhcmNoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MjYsNyArOTI2LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdT
ZWFyY2goSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShyZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2godm0sIGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCBzdHJpbmcsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQo
MSksIFJlcGxhY2VNb2RlOjpTaW5nbGUpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVzaW5nU3RyaW5nU2VhcmNoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VBbGxVc2luZ1N0cmluZ1NlYXJjaCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTUwLDcgKzk1MCw3IEBAIEpTQ2VsbCogSklUX09QRVJB
VElPTiBvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlR2VuZXJpYyhKU0dsb2JhbE9iamVj
dCogZ2xvCiAKIElHTk9SRV9XQVJOSU5HU19FTkQKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQ
cm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTcxLDcgKzk3MSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzdHJp
bmdPYmplY3QtPmludGVybmFsVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1By
b3RvRnVuY0NoYXJBdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTk4LDcgKzk5OCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0VtcHR5
U3RyaW5nKHZtKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJv
dG9GdW5jQ2hhckNvZGVBdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNDaGFy
Q29kZUF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDM1LDcgKzEwMzUsNyBAQCBzdGF0aWMg
aW5saW5lIFVDaGFyMzIgY29kZVBvaW50QXQoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHVuc2lnbmVk
IHBvc2l0aW9uLCB1bnNpZwogICAgIHJldHVybiBjaGFyYWN0ZXI7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ29kZVBvaW50QXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jQ29kZVBvaW50QXQsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTExMTIsMTIgKzExMTIsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ0luZGV4
T2ZJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSoKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oc3RyaW5nUHJvdG9GdW5jSW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc3RyaW5nSW5kZXhPZkltcGwo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYnVp
bHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT50aGlzVmFs
dWUoKS5pc1N0cmluZygpKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc1N0
cmluZygpKTsKQEAgLTExMjUsNyArMTEyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYnVpbHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAg
ICAgcmV0dXJuIHN0cmluZ0luZGV4T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhP
ZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTE3MCw3ICsxMTcwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NsaWNlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1NsaWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMjMxLDcgKzEyMzEsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHNwbGl0U3RyaW5n
QnlPbmVDaGFyYWN0ZXJJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogfQogCiAvLyBFUyAy
MS4xLjMuMTcgU3RyaW5nLnByb3RvdHlwZS5zcGxpdChzZXBhcmF0b3IsIGxpbWl0KQotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xMzY3LDcgKzEzNjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1NwbGl0RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jU3Vic3RyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDU1LDEyICsxNDU1LDEyIEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdTdWJzdHJpbmdJbXBsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUoanNTdWJzdHJpbmcoZ2xvYmFsT2JqZWN0LCBqc1N0cmluZywgc3Vic3Ry
aW5nU3RhcnQsIHN1YnN0cmluZ0xlbmd0aCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3Ry
aW5nUHJvdG9GdW5jU3Vic3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzdHJpbmdTdWJzdHJpbmdJbXBsKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYnVp
bHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpLmlzU3RyaW5nKCkpOwogICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlz
TnVtYmVyKCkpOwpAQCAtMTQ2OCw3ICsxNDY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5nSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
ICAgCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9M
b3dlckNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2Us
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0ODYsNyArMTQ4Niw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9Mb3dlckNhc2UoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
anNTdHJpbmcodm0sIGxvd2VyY2FzZWRTdHJpbmcpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oc3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1
MDQsNyArMTUwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jVG9VcHBlckNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHVwcGVyY2FzZWRTdHJp
bmcpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
TG9jYWxlQ29tcGFyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNMb2NhbGVD
b21wYXJlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIC8vIDEzLjEuMSBTdHJpbmcucHJvdG90eXBlLmxvY2FsZUNvbXBhcmUgKHRo
YXQgWywgbG9jYWxlcyBbLCBvcHRpb25zIF1dKSAoRUNNQS00MDIgMi4wKQogICAgIC8vIGh0dHA6
Ly9lY21hLWludGVybmF0aW9uYWwub3JnL3B1YmxpY2F0aW9ucy9zdGFuZGFyZHMvRWNtYS00MDIu
aHRtCkBAIC0xNjI2LDE0ICsxNjI2LDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB0b0xvY2Fs
ZUNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIFN0
cmluZyhidWZmZXIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1RvTG9jYWxlTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1By
b3RvRnVuY1RvTG9jYWxlTG93ZXJDYXNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDEzLjEuMiBTdHJpbmcucHJvdG90eXBl
LnRvTG9jYWxlTG93ZXJDYXNlIChbbG9jYWxlc10pCiAgICAgLy8gaHR0cDovL2VjbWEtaW50ZXJu
YXRpb25hbC5vcmcvcHVibGljYXRpb25zL3N0YW5kYXJkcy9FY21hLTQwMi5odG0KICAgICByZXR1
cm4gdG9Mb2NhbGVDYXNlPENhc2VDb252ZXJzaW9uTW9kZTo6TG93ZXI+KGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1
bmNUb0xvY2FsZVVwcGVyQ2FzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAxMy4xLjMgU3RyaW5nLnByb3RvdHlwZS50b0xv
Y2FsZVVwcGVyQ2FzZSAoW2xvY2FsZXNdKQogICAgIC8vIGh0dHA6Ly9lY21hLWludGVybmF0aW9u
YWwub3JnL3B1YmxpY2F0aW9ucy9zdGFuZGFyZHMvRWNtYS00MDIuaHRtCkBAIC0xNjc0LDE5ICsx
Njc0LDE5IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSB0cmltU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdGhpc1ZhbHVlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBqc1N0cmluZyh2bSwgc3RyLnN1YnN0cmluZ1NoYXJpbmdJbXBsKGxlZnQsIHJpZ2h0
IC0gbGVmdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNUcmltKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RyaW0sIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodHJpbVN0cmluZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgVHJpbVN0
YXJ0IHwgVHJpbUVuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1RyaW1TdGFydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNU
cmltU3RhcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodHJpbVN0cmluZyhnbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgVHJpbVN0YXJ0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jVHJpbUVuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1
bmNUcmltRW5kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUo
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRyaW1TdHJpbmcoZ2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIFRyaW1FbmQpKTsKQEAgLTE3MDEsNyArMTcwMSw3IEBAIHN0YXRpYyBpbmxpbmUg
dW5zaWduZWQgY2xhbXBBbmRUcnVuY2F0ZVRvVW5zaWduZWQoZG91YmxlIHZhbHVlLCB1bnNpZ25l
ZCBtaW4sIHVuCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YWx1ZSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTdGFydHNXaXRoLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNzM1LDcgKzE3MzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1N0YXJ0c1dpdGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHN0cmluZ1RvU2VhcmNoSW4uaGFz
SW5maXhTdGFydGluZ0F0KHNlYXJjaFN0cmluZywgc3RhcnQpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jRW5kc1dpdGgoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oc3RyaW5nUHJvdG9GdW5jRW5kc1dpdGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3
ODUsNyArMTc4NSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJpbmdJbmNsdWRlc0ltcGwo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVk0mIHZtLCBTCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oc3RyaW5nVG9TZWFyY2hJbi5maW5kKHNlYXJjaFN0cmluZywg
c3RhcnQpICE9IG5vdEZvdW5kKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
c3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9G
dW5jSW5jbHVkZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4MTEsNyArMTgxMSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBzdHJp
bmdJbmNsdWRlc0ltcGwoZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nVG9TZWFyY2hJbiwgc2VhcmNo
U3RyaW5nLCBwb3NpdGlvbkFyZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJ1aWx0
aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODMxLDcg
KzE4MzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJbmNs
dWRlc0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgc3RyaW5nSW5jbHVkZXNJbXBsKGdsb2JhbE9iamVjdCwgdm0sIHN0cmluZ1RvU2Vh
cmNoSW4sIHNlYXJjaFN0cmluZywgcG9zaXRpb25BcmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJdGVyYXRvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihzdHJpbmdQcm90b0Z1bmNJdGVyYXRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTkyNSw3
ICsxOTI1LDcgQEAgc3RhdGljIEpTVmFsdWUgbm9ybWFsaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTU3RyaW5nKiBzdHJpbmcsIE5vcm1hbGkKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIGpzU3RyaW5nKHZtLCBXVEZNb3ZlKHJlc3VsdCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCmluZGV4
IGQxMzIxYjU0MzA5MGMxZmUxZmRjNTQxMjBlZGVlNmZkYjcxNTg0YTEuLjc4NzEzNzAwNmFhMzMy
MWU2MmRkMjViZDRiNzNiMDk4MjIxMDczZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCkBAIC01NSwxMSArNTUsMTEgQEAgSlNDZWxsKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VSZWdFeHBTdHJpbmco
SlNHbG9iYWxPYmplY3QKIAogdm9pZCBzdWJzdGl0dXRlQmFja3JlZmVyZW5jZXMoU3RyaW5nQnVp
bGRlciYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCBTdHJpbmdWaWV3IHNvdXJj
ZSwgY29uc3QgaW50KiBvdmVjdG9yLCBSZWdFeHAqKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
U3BsaXRGYXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3Rlcik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCk7CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5T
dHJpbmdJbmNsdWRlc0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYnVp
bHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
YnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCmluZGV4IDc4OTBmNmFhZTZm
Y2EwNjYzYTFlNTc0OTJkMzRiN2Y4NTVjMDA3ZjUuLjAwMGJiOTgwZDdjYTY5YjFjODZjNmJlNmJh
ODIxMDczNmJiZmUyODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVy
ZS5oCkBAIC02NjksNiArNjY5LDggQEAgY2xhc3MgU3RydWN0dXJlIGZpbmFsIDogcHVibGljIEpT
Q2VsbCB7CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRDb252ZXJ0VG9Qb2x5UHJvdG8oY29uc3Qg
U3RydWN0dXJlKiBhLCBjb25zdCBTdHJ1Y3R1cmUqIGIpOwogCisgICAgVW5pcXVlZFN0cmluZ0lt
cGwqIHRyYW5zaXRpb25Qcm9wZXJ0eU5hbWUoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zaXRpb25Q
cm9wZXJ0eU5hbWUuZ2V0KCk7IH0KKwogICAgIHN0cnVjdCBQcm9wZXJ0eUhhc2hFbnRyeSB7CiAg
ICAgICAgIGNvbnN0IEhhc2hUYWJsZSogdGFibGU7CiAgICAgICAgIGNvbnN0IEhhc2hUYWJsZVZh
bHVlKiB2YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5
bWJvbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bENvbnN0cnVjdG9yLmNwcAppbmRleCA0OGE1NzRhODVmZjFiZWZlOGQ1MDZlYTZjNDRlZDUzMmQ5
MTg1MDliLi5jNWQwMWI0NDM1YmE3ZTFiMTk1NDcwMjkwOTk0YmYzODYzOTRiOWM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3Bw
CkBAIC0zMyw4ICszMyw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xDb25zdHJ1Y3RvckZvcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9s
Q29uc3RydWN0b3JLZXlGb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN5bWJvbENvbnN0cnVjdG9yRm9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN5bWJvbENvbnN0cnVjdG9yS2V5Rm9yKTsKIAogfQog
CkBAIC01Myw4ICs1Myw4IEBAIGNvbnN0IENsYXNzSW5mbyBTeW1ib2xDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAmc3ltYm9sCiBAZW5kCiAqLwogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ltYm9sKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RTeW1ib2woSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxTeW1ib2wpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0U3ltYm9sKTsKIAogU3ltYm9sQ29uc3RydWN0b3I6OlN5bWJv
bENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5h
bEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTeW1ib2wsIGNvbnN0cnVjdFN5bWJvbCkKQEAg
LTc0LDcgKzc0LDcgQEAgdm9pZCBTeW1ib2xDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtLCBTeW1ib2xQcm90b3R5cGUqIHByb3RvdHlwZSkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN5bWJvbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsU3ltYm9sLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04OCwxNCArODgsMTQg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN5bWJvbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN5
bWJvbDo6Y3JlYXRlV2l0aERlc2NyaXB0aW9uKHZtLCBzdHJpbmcpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U3ltYm9sKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdFN5bWJvbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHJldHVybiB0
aHJvd1ZNRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlTm90QUNvbnN0cnVjdG9yRXJy
b3IoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xDb25zdHJ1Y3RvckZvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihzeW1ib2xDb25zdHJ1Y3RvckZvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTEwLDcg
KzExMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sQ29uc3RydWN0b3JG
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIAogY29uc3QgQVNDSUlMaXRlcmFsIFN5
bWJvbEtleUZvclR5cGVFcnJvciB7ICJTeW1ib2wua2V5Rm9yIHJlcXVpcmVzIHRoYXQgdGhlIGZp
cnN0IGFyZ3VtZW50IGJlIGEgc3ltYm9sIl9zIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3ltYm9sQ29uc3RydWN0b3JLZXlGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3ltYm9s
Q29uc3RydWN0b3JLZXlGb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCmluZGV4IDZjNWVlZjk3NGVh
ZDRmYzI1NzJmYjM3NmJkNDM0MzljMzg5MzI4MDYuLjllODVhOTZjN2FlOGJhNjFlMzhkNjkxNjE4
NjhlYzQ2MDA4NmQ0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N5bWJvbFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3ltYm9sUHJvdG90eXBlLmNwcApAQCAtMzMsOSArMzMsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9HZXR0ZXJE
ZXNjcmlwdGlvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5
bWJvbFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24p
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJvdG9GdW5jVG9TdHJp
bmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJvdG9GdW5jVmFs
dWVPZik7CiAKIH0KIApAQCAtODcsNyArODcsNyBAQCBpbmxpbmUgU3ltYm9sKiB0cnlFeHRyYWN0
U3ltYm9sKFZNJiB2bSwgSlNWYWx1ZSB0aGlzVmFsdWUpCiAgICAgcmV0dXJuIGFzU3ltYm9sKGpz
Q2FzdDxTeW1ib2xPYmplY3QqPih0aGlzT2JqZWN0KS0+aW50ZXJuYWxWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0dldHRlckRlc2NyaXB0aW9u
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24sIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVzY3JpcHRpb24uaXNOdWxsKCkgPyBqc1Vu
ZGVmaW5lZCgpIDoganNTdHJpbmcodm0sIGRlc2NyaXB0aW9uKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEx
Myw3ICsxMTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVu
Y1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgc3ltYm9s
LT5kZXNjcmlwdGl2ZVN0cmluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN5bWJvbFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJv
dG9GdW5jVmFsdWVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTI5Yzc1YjQ0
NmJiMDA3NGFhYjI1NjljYTc4ODY5MmEyN2I1ZGJlZS4uOWE4YzZmZTNlZGM0YjZhNTE3YzYwOGU4
N2Q2ODViNzUwOGM4ZTQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCkBAIC00MSwyMiArNDEsMjIgQEAgdm9pZCBXZWFr
TWFwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha01hcFByb3RvdHlwZSog
cHJvdG90eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vh
a01hcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha01hcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFdlYWtNYXApOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha01hcCk7CiAKIFdlYWtN
YXBDb25zdHJ1Y3Rvcjo6V2Vha01hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxXZWFrTWFwLCBjb25zdHJ1Y3RX
ZWFrTWFwKQogewogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
V2Vha01hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWFrTWFwLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIldlYWtNYXAiKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0V2Vha01hcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcAppbmRleCA1Njg4
NzNmYTkwYWZmYjI2ODIwNzA0ZDM0MjY3ZWFmMGIyODgxNjA1Li5mYjdiOGM4NjZmYzEwMTZmYmI4
ZjI5MWVmYmYzZDE1NjBlMjZjZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XZWFrTWFwUHJvdG90eXBlLmNwcApAQCAtMzMsMTAgKzMzLDEwIEBAIG5hbWVzcGFj
ZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2Vha01hcFByb3RvdHlwZTo6c19pbmZvID0geyAi
V2Vha01hcCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoV2Vha01hcFByb3RvdHlwZSkgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcERlbGV0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01h
cEdldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcEhhcyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vh
a01hcFNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcERlbGV0ZSk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwR2V0KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBIYXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcFNldCk7CiAKIHZvaWQgV2Vha01hcFByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogewpAQCAtNjksNyArNjksNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtNYXAqIGdl
dFdlYWtNYXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dl
YWtNYXBEZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcERlbGV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBhdXRvKiBtYXAgPSBnZXRXZWFrTWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlz
VmFsdWUoKSk7CiAgICAgaWYgKCFtYXApCkBAIC03OCw3ICs3OCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcERlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oa2V5LmlzT2Jq
ZWN0KCkgJiYgbWFwLT5yZW1vdmUoYXNPYmplY3Qoa2V5KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwR2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHByb3RvRnVuY1dlYWtNYXBHZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byogbWFwID0gZ2V0V2Vha01hcChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtODksNyAr
ODksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBHZXQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUobWFwLT5nZXQoYXNPYmplY3Qoa2V5KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHByb3RvRnVuY1dlYWtNYXBIYXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5j
V2Vha01hcEhhcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBhdXRvKiBtYXAgPSBnZXRXZWFrTWFwKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFtYXApCkBAIC05OCw3ICs5OCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcEhhcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oa2V5LmlzT2JqZWN0KCkgJiYgbWFwLT5oYXMoYXNPYmplY3Qoa2V5KSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwU2V0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmQ29u
c3RydWN0b3IuY3BwCmluZGV4IDY2OTU4NDkxYjA0OGI4NjU1OWQ0ZjRlNzA5NzJmYjE4OGRhMzVh
YTcuLjU2NGQwOTM0MjA2MDg4OGJkMWRkMTdlYTA2MDUwOTcwNTc0YzUxZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZkNvbnN0
cnVjdG9yLmNwcApAQCAtNDAsMjIgKzQwLDIyIEBAIHZvaWQgV2Vha09iamVjdFJlZkNvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYWtPYmplY3RSZWZQcm90b3R5cGUqIHByCiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWFrUmVmKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zdHJ1Y3RXZWFrUmVmKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsV2Vha1JlZik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXZWFrUmVmKTsKIAogV2Vha09iamVjdFJlZkNvbnN0
cnVjdG9yOjpXZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdlYWtSZWYsIGNvbnN0cnVjdFdl
YWtSZWYpCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxX
ZWFrUmVmKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYWtSZWYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiV2Vha1JlZiIpKTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1JlZihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RXZWFrUmVmLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZQcm90b3R5cGUuY3Bw
CmluZGV4IDVhMmUzODI3OGE5N2UwNjAxODRjZTFlYTg2NjBjN2ZlZTA2YzNkN2YuLmZkMGEzZTg2
M2YwOTNjOGU2NTU5YjBjMmQ1Y2EzMmNjZDUxMjgxZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RSZWZQcm90b3R5cGUuY3BwCkBAIC0z
Myw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2Vha09iamVj
dFJlZlByb3RvdHlwZTo6c19pbmZvID0geyAiV2Vha1JlZiIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2Vha09iamVjdFJlZlByb3RvdHlwZSkg
fTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1Jl
ZkRlcmVmKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrUmVmRGVyZWYpOwogCiB2b2lkIFdlYWtPYmplY3RS
ZWZQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKQEAgLTY0LDcgKzY0LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgSlNXZWFr
T2JqZWN0UmVmKiBnZXRXZWFrUmVmKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEoKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90
b0Z1bmNXZWFrUmVmRGVyZWYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha1JlZkRl
cmVmLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvKiByZWYgPSBn
ZXRXZWFrUmVmKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcApp
bmRleCAzOWY4NjdkMjBhYWUwNzA1OTM3ZjkwZGNmNmE5NmQ5ZTY0YTQ0ZWQyLi4zOTI5Y2M5MmEy
MDI4ODE0YmNmMDliNGE5ZDE0ZTIyYTJmZDA3M2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTQxLDIyICs0MSwy
MiBAQCB2b2lkIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWFr
U2V0UHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxXZWFrU2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrU2V0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxs
V2Vha1NldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXZWFr
U2V0KTsKIAogV2Vha1NldENvbnN0cnVjdG9yOjpXZWFrU2V0Q29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdlYWtT
ZXQsIGNvbnN0cnVjdFdlYWtTZXQpCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxXZWFrU2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYWtTZXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVk
QXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiV2Vha1NldCIpKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXZWFrU2V0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUu
Y3BwCmluZGV4IGEzZDI0NjBmMWI3MDQ2YmQ1NDQ4ODE4MGZjNWZmMzNhYTFlMDIyY2QuLjY3M2Nh
YzBhNDNjM2JhMGZiN2U4OTRmZmE2NTFlMGNjMDAzNGQ4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwCkBAIC0zMyw5ICszMyw5
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2Vha1NldFByb3RvdHlwZTo6
c19pbmZvID0geyAiV2Vha1NldCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoV2Vha1NldFByb3RvdHlwZSkgfTsKIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldERlbGV0ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJv
dG9GdW5jV2Vha1NldEhhcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldEFkZChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocHJv
dG9GdW5jV2Vha1NldERlbGV0ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihw
cm90b0Z1bmNXZWFrU2V0SGFzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHBy
b3RvRnVuY1dlYWtTZXRBZGQpOwogCiB2b2lkIFdlYWtTZXRQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKQEAgLTY3LDcgKzY3
LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgSlNXZWFrU2V0KiBnZXRXZWFrU2V0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0RGVsZXRlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtTZXREZWxldGUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byogc2V0ID0g
Z2V0V2Vha1NldChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlm
ICghc2V0KQpAQCAtNzYsNyArNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBy
b3RvRnVuY1dlYWtTZXREZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGtleS5pc09iamVjdCgpICYmIHNldC0+cmVt
b3ZlKGFzT2JqZWN0KGtleSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
cHJvdG9GdW5jV2Vha1NldEhhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrU2V0
SGFzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIGF1dG8qIHNldCA9IGdldFdlYWtTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIXNldCkKQEAgLTg1LDcgKzg1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0SGFzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihrZXku
aXNPYmplY3QoKSAmJiBzZXQtPmhhcyhhc09iamVjdChrZXkpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtTZXRBZGQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04ocHJvdG9GdW5jV2Vha1NldEFkZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0uY3BwCmluZGV4IDYxMGQyNTYwMDYzNmMyZTczYTE1
MjEyZDljOTNjYTQ0ZWQ3YWYzOTguLmZiNGIyMGY1MTEwOTkxYTY2OTU1N2RlMGExOWEwYzUyYmVi
ZjRiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZN
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKQEAg
LTgyLDkgKzgyLDYgQEAgY2xhc3MgSlNEb2xsYXJWTUhlbHBlciB7CiAKICAgICB2b2lkIHVwZGF0
ZVZNU3RhY2tMaW1pdHMoKSB7IHJldHVybiBtX3ZtLnVwZGF0ZVN0YWNrTGltaXRzKCk7IH07CiAK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldFN0cnVj
dHVyZVRyYW5zaXRpb25MaXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0KLXByaXZh
dGU6CiAgICAgVk0mIG1fdm07CiB9OwogCkBAIC05Miw2ICs4OSwxMCBAQCBjbGFzcyBKU0RvbGxh
clZNSGVscGVyIHsKIAogbmFtZXNwYWNlIHsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25ET01KSVRHZXR0ZXJDb21wbGV4RW5hYmxlRXhjZXB0aW9uKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRE9NSklURnVuY3Rpb25PYmplY3RX
aXRoVHlwZUNoZWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRoVHlwZUNoZWNrKTsKKwogLy8gV2UgbXVzdCBSRUxF
QVNFX0FTU0VSVChPcHRpb25zOjp1c2VEb2xsYXJWTSgpKSBpbiBhbGwgSlNEb2xsYXJWTSBmdW5j
dGlvbnMKIC8vIHRoYXQgYXJlIG5vbi10cml2aWFsIGF0IGFuIGV5ZSdzIGdsYW5jZS4gVGhpcyBp
bmNsdWRlcyAoYnV0IGlzIG5vdCBsaW1pdGVkIHRvKToKIC8vICAgICAgY29uc3RydWN0b3JzCkBA
IC00ODksMTIgKzQ5MCwxMiBAQCBjbGFzcyBDdXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAgICAg
Q3VzdG9tR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEN1c3RvbUdldHRlcio+KG9iamVjdCk7
CiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gUHJvcGVydHlOYW1lKElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sICJjdXN0b21HZXR0ZXIiKSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q2Fj
aGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwg
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
LCB0aGlzT2JqZWN0LT5jdXN0b21HZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDYWNoZWFi
bGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0sIGN1
c3RvbUdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBQcm9wZXJ0eU5hbWUoSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlckFjY2Vzc29yIikpKSB7Ci0gICAgICAgICAgICBz
bG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciwgdGhpc09iamVj
dC0+Y3VzdG9tR2V0dGVyQWNlc3Nvcik7CisgICAgICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1
c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciwgY3VzdG9tR2V0dGVyQWNlc3Nvcik7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTUwMiw3ICs1MDMs
NyBAQCBjbGFzcyBDdXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9t
R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNTE4
LDcgKzUxOSw3IEBAIGNsYXNzIEN1c3RvbUdldHRlciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0
IHsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxMDApKTsKICAgICB9
CiAgICAgCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldHRlckFjZXNzb3IoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9t
R2V0dGVyQWNlc3NvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTU3NSw3ICs1NzYsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0g
anNDYXN0PFJ1bnRpbWVBcnJheSo+KG9iamVjdCk7CiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgICAgICBzbG90LnNldENhY2hl
YWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSwg
dGhpc09iamVjdC0+bGVuZ3RoR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxl
Q3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVy
dHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBsZW5n
dGhHZXR0ZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApAQCAtNjQ1
LDcgKzY0Niw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKICAgICB9CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVu
Z3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTY2NSw3ICs2NjYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggc3RhdGljQ3VzdG9tQWNjZXNzb3JUYWJsZUluZGV4WzJdID0gewogICAgIHsgLTEsIC0x
IH0sCiB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgdGVzdFN0YXRpY0FjY2Vzc29yR2V0dGVy
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gdGVzdFN0
YXRpY0FjY2Vzc29yR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtOTc0
LDcgKzk3NSw3IEBAIGNsYXNzIERPTUpJVEdldHRlciA6IHB1YmxpYyBET01KSVROb2RlIHsKIHBy
aXZhdGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCi0gICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAg
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMDY4LDcgKzEwNjksNyBAQCBjbGFzcyBET01KSVRHZXR0
ZXJOb0VmZmVjdHMgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiBwcml2YXRlOgogICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oVk0mKTsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
Y3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpA
QCAtMTE3MSwyMCArMTE3Miw5IEBAIGNsYXNzIERPTUpJVEdldHRlckNvbXBsZXggOiBwdWJsaWMg
RE9NSklUTm9kZSB7CiAjZW5kaWYKICAgICB9OwogCi1wcml2YXRlOgogICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCopOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVFeGNlcHRpb24oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi0gICAgewotICAgICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7Ci0gICAgICAgIGF1dG8qIG9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0
dGVyQ29tcGxleCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKLSAgICAgICAgaWYgKG9i
amVjdCkKLSAgICAgICAgICAgIG9iamVjdC0+bV9lbmFibGVFeGNlcHRpb24gPSB0cnVlOwotICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLQotICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogICAgIHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTIwMCw2ICsxMTkwLDE2IEBAIGNs
YXNzIERPTUpJVEdldHRlckNvbXBsZXggOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAgYm9vbCBt
X2VuYWJsZUV4Y2VwdGlvbiB7IGZhbHNlIH07CiB9OwogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25ET01KSVRHZXR0ZXJDb21wbGV4RW5hYmxlRXhjZXB0aW9uLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8qIG9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUR2V0dGVyQ29tcGxl
eCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAob2JqZWN0KQorICAgICAg
ICBvYmplY3QtPm1fZW5hYmxlRXhjZXB0aW9uID0gdHJ1ZTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMgY29uc3QgRE9NSklUR2V0dGVyQ29t
cGxleDo6RE9NSklUQXR0cmlidXRlIERPTUpJVEdldHRlckNvbXBsZXhET01KSVQ7CiAKIHZvaWQg
RE9NSklUR2V0dGVyQ29tcGxleDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQpAQCAtMTIwOSw3ICsxMjA5LDcgQEAgdm9pZCBET01KSVRHZXR0ZXJD
b21wbGV4OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiAgICAgY29uc3QgRE9NSklUOjpHZXR0ZXJTZXR0ZXIqIGRvbUpJVCA9ICZET01KSVRHZXR0
ZXJDb21wbGV4RE9NSklUOwogICAgIGF1dG8qIGN1c3RvbUdldHRlclNldHRlciA9IERPTUF0dHJp
YnV0ZUdldHRlclNldHRlcjo6Y3JlYXRlKHZtLCBkb21KSVQtPmdldHRlcigpLCBudWxscHRyLCBE
T01BdHRyaWJ1dGVBbm5vdGF0aW9uIHsgRE9NSklUR2V0dGVyQ29tcGxleDo6aW5mbygpLCBkb21K
SVQgfSk7CiAgICAgcHV0RGlyZWN0Q3VzdG9tQWNjZXNzb3Iodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJjdXN0b21HZXR0ZXIiKSwgY3VzdG9tR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpOwot
ICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sICJlbmFibGVFeGNlcHRpb24iKSwgMCwgZnVuY3Rpb25FbmFibGVFeGNl
cHRpb24sIE5vSW50cmluc2ljLCAwKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwg
Z2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZW5hYmxlRXhjZXB0aW9u
IiksIDAsIGZ1bmN0aW9uRE9NSklUR2V0dGVyQ29tcGxleEVuYWJsZUV4Y2VwdGlvbiwgTm9JbnRy
aW5zaWMsIDApOwogfQogCiBjbGFzcyBET01KSVRGdW5jdGlvbk9iamVjdCA6IHB1YmxpYyBET01K
SVROb2RlIHsKQEAgLTEyMzgsMTggKzEyMzgsNiBAQCBjbGFzcyBET01KSVRGdW5jdGlvbk9iamVj
dCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldpdGhUeXBl
Q2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
Ci0gICAgewotICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgICAgICBET01KSVROb2RlKiB0aGlzT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxET01KSVROb2RlKj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwot
ICAgICAgICBpZiAoIXRoaXNPYmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7Ci0gICAgfQotCiAgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIERPTUpJVE5vZGUqIG5vZGUpCiAgICAgewogICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTI4MiwxMyArMTI3MCwyNSBA
QCBjbGFzcyBET01KSVRGdW5jdGlvbk9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aFR5cGVDaGVj
aywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K3sKKyAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CisKKyAgICBET01KSVROb2RlKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVRO
b2RlKj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmICghdGhpc09iamVjdCkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7
Cit9CisKIHN0YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRGdW5jdGlvbk9iamVj
dFNpZ25hdHVyZShET01KSVRGdW5jdGlvbk9iamVjdDo6ZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNr
LCBET01KSVRGdW5jdGlvbk9iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChE
T01KSVQ6OkhlYXBSYW5nZShET01KSVQ6OkhlYXBSYW5nZTo6Q29uc3RFeHByLCAwLCAxKSksIFNw
ZWNJbnQzMk9ubHkpOwogCiB2b2lkIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0g
ICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJp
bnNpYywgJkRPTUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVu
Y3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMi
KSwgMCwgZnVuY3Rpb25ET01KSVRGdW5jdGlvbk9iamVjdFdpdGhUeXBlQ2hlY2ssIE5vSW50cmlu
c2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3MgRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CkBAIC0xMzE3LDE4ICsxMzE3LDYgQEAg
Y2xhc3MgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAg
ICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwotICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tKU0Nhc3RPYmpl
Y3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Ci0gICAgICAgIGlmICghdGhpc09iamVj
dCkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3Qt
PnZhbHVlKCkpKTsKLSAgICB9Ci0KICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBmdW5jdGlvbldpdGhvdXRUeXBlQ2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRE9NSklUTm9kZSogbm9kZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CkBAIC0xMzQyLDEzICsxMzMwLDI1IEBAIGNsYXNzIERPTUpJVENoZWNrSlND
YXN0T2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RXaXRoVHlwZUNoZWNrLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENoZWNrSlNDYXN0T2JqZWN0Kj4odm0s
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlmICghdGhpc09iamVjdCkKKyAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT52YWx1ZSgpKSk7Cit9CisKIHN0
YXRpYyBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSBET01KSVRDaGVja0pTQ2FzdE9iamVjdFNpZ25h
dHVyZShET01KSVRDaGVja0pTQ2FzdE9iamVjdDo6ZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrLCBE
T01KSVRDaGVja0pTQ2FzdE9iamVjdDo6aW5mbygpLCBET01KSVQ6OkVmZmVjdDo6Zm9yUmVhZChE
T01KSVQ6OkhlYXBSYW5nZTo6dG9wKCkpLCBTcGVjSW50MzJPbmx5KTsKIAogdm9pZCBET01KSVRD
aGVja0pTQ2FzdE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9u
KHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiksIDAs
IGZ1bmN0aW9uV2l0aFR5cGVDaGVjaywgTm9JbnRyaW5zaWMsICZET01KSVRDaGVja0pTQ2FzdE9i
amVjdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSkpOworICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3Qs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiksIDAsIGZ1bmN0aW9uRE9NSklUQ2hl
Y2tKU0Nhc3RPYmplY3RXaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRPTUpJVENoZWNrSlND
YXN0T2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5KSk7CiB9CiAKIGNsYXNzIERPTUpJVEdldHRlckJhc2VKU09iamVjdCA6IHB1
YmxpYyBET01KSVROb2RlIHsKQEAgLTE0MjQsNyArMTQyNCw3IEBAIGNsYXNzIERPTUpJVEdldHRl
ckJhc2VKU09iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKIHByaXZhdGU6CiAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihWTSYpOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdl
dHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2Vy
dFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0xNjMwLDggKzE2MzAsOCBAQCB2b2lkIEVsZW1lbnQ6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgUm9vdCogcm9vdCkKIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyQWRkQnl0
ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNlckZpbmFsaXplKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbldhc21TdHJlYW1pbmdQYXJzZXJBZGRCeXRlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbldhc21TdHJlYW1pbmdQYXJzZXJGaW5hbGl6ZSk7CiAKIGNs
YXNzIFdhc21TdHJlYW1pbmdQYXJzZXIgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3Qgewog
cHVibGljOgpAQCAtMTcwMSw3ICsxNzAxLDcgQEAgY2xhc3MgV2FzbVN0cmVhbWluZ1BhcnNlciA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKIGNvbnN0IENsYXNzSW5mbyBXYXNtU3Ry
ZWFtaW5nUGFyc2VyOjpzX2luZm8gPSB7ICJXYXNtU3RyZWFtaW5nUGFyc2VyIiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXYXNtU3RyZWFtaW5n
UGFyc2VyKSB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uV2FzbVN0
cmVhbWluZ1BhcnNlckFkZEJ5dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2FzbVN0
cmVhbWluZ1BhcnNlckFkZEJ5dGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTcxNiw3ICsxNzE2LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhc21TdHJlYW1pbmdQYXJz
ZXJBZGRCeXRlcyhKU0dsb2JhbE9iamVjdCoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90Pih0aGlzT2JqZWN0
LT5zdHJlYW1pbmdQYXJzZXIoKS5hZGRCeXRlcyhiaXR3aXNlX2Nhc3Q8Y29uc3QgdWludDhfdCo+
KGRhdGEuZmlyc3QpLCBkYXRhLnNlY29uZCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNlckZpbmFsaXplKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNlckZpbmFsaXplLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtMTczMiw2ICsxNzMyLDEwNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNlckZpbmFsaXplKEpTR2xvYmFsT2JqZWN0KgogCiBu
YW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIE5PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyYXNoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQnJlYWtwb2ludCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRGR1RydWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25GVExUcnVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3B1TWZlbmNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQ3B1UmR0c2MpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25D
cHVDcHVpZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdVBh
dXNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1Q2xmbHVz
aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxMaW50VHJ1ZSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkJhc2VsaW5lSklUVHJ1
ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vSW5saW5lKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR0MpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FZGVuR0MpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9ub3VzbHkpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DYWxsRnJhbWUpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Db2RlQmxvY2tGb3JGcmFtZSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNvZGVCbG9ja0Zvcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBTb3VyY2VGb3Ip
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wQnl0ZWNvZGVG
b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EYXRhTG9nKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wQ2FsbEZyYW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcFN0YWNrKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcFJlZ2lzdGVycyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBDZWxsKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSW5kZXhpbmdNb2RlKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSW5saW5lQ2FwYWNpdHkpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25WYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFBJRCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkhhdmVBQmFkVGltZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbklzSGF2aW5nQUJhZFRpbWUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVByb3h5KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlUnVudGltZUFycmF5KTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlTnVsbFJvcGVTdHJp
bmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVJbXB1
cmVHZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVh
dGVDdXN0b21HZXR0ZXJPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3Rz
T2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
RE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRH
ZXR0ZXJCYXNlSlNPYmplY3QpOworI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlcik7
CisjZW5kaWYKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
U3RhdGljQ3VzdG9tQWNjZXNzb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21WYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRD
b3JyZWN0U2xvdFN0YXR1cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVnYXRlKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVJvb3QpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVFbGVtZW50KTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0RWxlbWVudCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVNpbXBsZU9iamVjdCk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldEhpZGRlblZhbHVlKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TaGFkb3dDaGlja2Vu
RnVuY3Rpb25zT25TdGFjayk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9uKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmV0dXJuVHlwZUZvcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZsYXR0ZW5EaWN0aW9u
YXJ5T2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVt
cEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25CYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVu
SWRsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRpc2FibGVE
ZWJ1Z2dlck1vZGVXaGVuSWRsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkRlbGV0ZUFsbENvZGVXaGVuSWRsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkdsb2JhbE9iamVjdENvdW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2xvYmFsT2JqZWN0Rm9yT2JqZWN0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0R2V0dGVyU2V0dGVyKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0
ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVDdXN0
b21UZXN0R2V0dGVyU2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DdXJyZW50Q1BVVGltZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblRvdGFsR0NUaW1lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uUGFyc2VDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbk1ha2UxNkJpdFN0cmluZ0lmUG9zc2libGUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlz
dCk7Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRDb25jdXJy
ZW50bHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXNPd25M
ZW5ndGhQcm9wZXJ0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
blJlamVjdFByb21pc2VBc0hhbmRsZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25TZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVVmVyc2lvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbklDVUhlYWRlclZlcnNpb24pOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3NlcnRFbmFibGVkKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNNZW1vcnlMaW1pdGVkKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVXNlSklUKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNHaWdhY2FnZUVuYWJsZWQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ub1VuY2FjaGVhYmxlRGljdGlvbmFyeSk7CisK
IGNvbnN0IENsYXNzSW5mbyBKU0RvbGxhclZNOjpzX2luZm8gPSB7ICJEb2xsYXJWTSIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNEb2xsYXJW
TSkgfTsKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIGJvb2wgYWRkTGluZUZlZWQpCkBAIC0x
NzU4LDcgKzE4NTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9QcmludChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZQogCiAvLyBUcmlnZ2VycyBh
IGNyYXNoIGFmdGVyIGR1bXBpbmcgYW55IHBhcmFtYXRlciBwYXNzZWQgdG8gaXQuCiAvLyBVc2Fn
ZTogJHZtLmNyYXNoKC4uLikKLXN0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmFzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK05PX1JFVFVSTl9EVUVfVE9fQ1JBU0ggSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jhc2gsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKIApAQCAtMTc4MCw3ICsxODc4LDcgQEAgc3RhdGljIE5PX1JFVFVS
Tl9EVUVfVE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyYXNo
KEpTR2xvYmEKIAogLy8gRXhlY3V0ZXMgYSBicmVha3BvaW50IGluc3RydWN0aW9uIGlmIHRoZSBm
aXJzdCBhcmd1bWVudCBpcyB0cnV0aHkgb3IgaXMgdW5zZXQuCiAvLyBVc2FnZTogJHZtLmJyZWFr
cG9pbnQoPGNvbmRpdGlvbj4pCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkJyZWFrcG9pbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25CcmVha3BvaW50
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgLy8gTm90aGluZyBz
aG91bGQgdGhyb3cgaGVyZSBidXQgd2UgbWlnaHQgYXMgd2VsbCBkb3VibGUgY2hlY2suLi4KQEAg
LTE3OTUsNyArMTg5Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAKIC8vIFJldHVybnMg
dHJ1ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBpcyBhIERGRyBmcmFtZS4KIC8vIFVzYWdlOiBpc0RG
RyA9ICR2bS5kZmdUcnVlKCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uREZHVHJ1ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25ERkdUcnVlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CkBAIC0xODAzLDEzICsxOTAxLDEzIEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uREZHVHJ1ZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopCiAKIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVu
dCBmcmFtZSBpcyBhIEZUTCBmcmFtZS4KIC8vIFVzYWdlOiBpc0ZUTCA9ICR2bS5mdGxUcnVlKCkK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRlRMVHJ1ZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25GVExUcnVlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKGZhbHNlKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3B1TWZlbmNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdU1mZW5jZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBD
UFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykKQEAgLTE4MTgsNyArMTkxNiw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1TWZlbmNlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVS
ZHRzYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcHVSZHRzYywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBDUFUoWDg2XzY0KSAmJiAh
T1MoV0lORE9XUykKQEAgLTE4MzEsNyArMTkyOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1UmR0c2MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
CiAjZW5kaWYKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcHVDcHVpZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcHVDcHVpZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikp
CiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBDUFUoWDg2XzY0
KSAmJiAhT1MoV0lORE9XUykKQEAgLTE4NDAsNyArMTkzOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1Q3B1aWQoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVQYXVzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25DcHVQYXVzZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9X
UykKQEAgLTE4NTgsNyArMTk1Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3B1UGF1c2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAvLwogLy8g
SWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIG5vdCBhIEpTQXJyYXlCdWZmZXIsIHdlIGxvYWQgdGhl
IGJ1dHRlcmZseQogLy8gYW5kIGNsZmx1c2ggYXQgdGhlIGFkZHJlc3Mgb2YgdGhlIGJ1dHRlcmZs
eS4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1Q2xmbHVz
aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdUNsZmx1c2gsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBDUFUoWDg2XzY0KSAmJiAhT1MoV0lORE9XUykK
QEAgLTE5NDcsNyArMjA0NSw3IEBAIHN0YXRpYyBGdW5jdGlvbkV4ZWN1dGFibGUqIGdldEV4ZWN1
dGFibGVGb3JGdW5jdGlvbihKU1ZhbHVlIHRoZUZ1bmN0aW9uVmFsdWUpCiAKIC8vIFJldHVybnMg
dHJ1ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBpcyBhIExMSW50IGZyYW1lLgogLy8gVXNhZ2U6IGlz
TExJbnQgPSAkdm0ubGxpbnRUcnVlKCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uTExpbnRUcnVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTExpbnRU
cnVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTk2MCw3ICsyMDU4LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25MTGludFRydWUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgYmFz
ZWxpbmUgSklUIGZyYW1lLgogLy8gVXNhZ2U6IGlzQmFzZWxpbmVKSVQgPSAkdm0uYmFzZWxpbmVK
SVRUcnVlKCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQmFz
ZWxpbmVKSVRUcnVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwpAQCAtMTk3NSw3ICsyMDczLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25CYXNlbGluZUpJVFRydWUoSlNHbG9iYWxPYmplY3Qq
IGdsb2IKIC8vIFVzYWdlOgogLy8gZnVuY3Rpb24gZigpIHsgfTsKIC8vICR2bS5ub0lubGluZShm
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9JbmxpbmUo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbk5vSW5saW5lLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBp
ZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKQpAQCAtMTk5MSw3ICsyMDg5LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Ob0lubGluZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSoKIAogLy8gUnVucyBhIGZ1bGwgR0Mgc3luY2hyb25vdXNs
eS4KIC8vIFVzYWdlOiAkdm0uZ2MoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25HQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR0MsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIFZNSW5zcGVjdG9yOjpnYygmZ2xvYmFsT2JqZWN0LT52bSgpKTsKQEAgLTIw
MDAsNyArMjA5OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uR0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAKIC8vIFJ1bnMgdGhlIGVk
ZW5HQyBzeW5jaHJvbm91c2x5LgogLy8gVXNhZ2U6ICR2bS5lZGVuR0MoKQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkVkZW5HQywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk1JbnNwZWN0b3I6OmVk
ZW5HQygmZ2xvYmFsT2JqZWN0LT52bSgpKTsKQEAgLTIwMDksNyArMjEwNyw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRWRlbkdDKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsCiAKIC8vIFJ1bnMgYSBmdWxsIEdDLCBidXQgc3dlZXAgYXN5bmNocm9u
b3VzbHkuCiAvLyBVc2FnZTogJHZtLmdjU3dlZXBBc3luY2hyb25vdXNseSgpCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDU3dlZXBBc3luY2hyb25vdXNseShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJvbm91c2x5LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKICAgICBnbG9iYWxPYmplY3QtPnZtKCkuaGVhcC5jb2xsZWN0Tm93KEFzeW5j
LCBDb2xsZWN0aW9uU2NvcGU6OkZ1bGwpOwpAQCAtMjAxOCw3ICsyMTE2LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9ub3VzbHko
SlNHbG9iYWxPYmplY3QKIAogLy8gRHVtcHMgdGhlIGhhc2hlcyBvZiBhbGwgc3Vic3BhY2VzIGN1
cnJlbnRseSByZWdpc3RlcmVkIHdpdGggdGhlIFZNLgogLy8gVXNhZ2U6ICR2bS5kdW1wU3Vic3Bh
Y2VIYXNoZXMoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25E
dW1wU3Vic3BhY2VIYXNoZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtMjA0MCw3ICsyMTM4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMoSlNHbG9iYWxPYmplY3QqIGcKIC8vIE5v
dGU6IHlvdSBjYW5ub3QgdG9TdHJpbmcoKSBhIGNvZGVCbG9jaywgdW5saW5rZWRDb2RlQmxvY2ss
IG9yIGV4ZWN1dGFibGUgYmVjYXVzZQogLy8gdGhlcmUgYXJlIGludGVybmFsIG9iamVjdHMgYW5k
IG5vdCBhIEpTIG9iamVjdC4gSGVuY2UsIHlvdSBjYW5ub3QgZG8gc3RyaW5nCiAvLyBjb25jYXRl
bmF0aW9uIHdpdGggdGhlbS4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ2FsbEZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbEZyYW1lLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgdW5zaWduZWQgZnJhbWVO
dW1iZXIgPSAxOwpAQCAtMjA2MSw3ICsyMTU5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUK
IC8vIEdldHMgYSB0b2tlbiBmb3IgdGhlIENvZGVCbG9jayBmb3IgYSBzcGVjaWZpZWQgZnJhbWUg
aW5kZXguCiAvLyBVc2FnZTogY29kZUJsb2NrVG9rZW4gPSAkdm0uY29kZUJsb2NrRm9yRnJhbWUo
MCkgLy8gZnJhbWUgMCBpcyB0aGUgdG9wIGZyYW1lLgogLy8gVXNhZ2U6IGNvZGVCbG9ja1Rva2Vu
ID0gJHZtLmNvZGVCbG9ja0ZvckZyYW1lKCkgLy8gaW1wbGllcyBmcmFtZSAwIGkuZS4gY3VycmVu
dCBmcmFtZS4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ29k
ZUJsb2NrRm9yRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Db2RlQmxvY2tGb3JG
cmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHVuc2lnbmVk
IGZyYW1lTnVtYmVyID0gMTsKQEAgLTIxMTYsNyArMjIxNCw3IEBAIHN0YXRpYyBDb2RlQmxvY2sq
IGNvZGVCbG9ja0Zyb21BcmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsCiAvLyBVc2FnZTogJHZtLnByaW50KCJjb2RlYmxvY2sgPSAiLCAkdm0uY29kZUJsb2Nr
Rm9yKGNvZGVCbG9ja1Rva2VuKSkKIC8vIE5vdGU6IHlvdSBjYW5ub3QgdG9TdHJpbmcoKSBhIGNv
ZGVCbG9jayBiZWNhdXNlIGl0J3MgYW4gaW50ZXJuYWwgb2JqZWN0IGFuZCBub3QKIC8vIGEgSlMg
b2JqZWN0LiBIZW5jZSwgeW91IGNhbm5vdCBkbyBzdHJpbmcgY29uY2F0ZW5hdGlvbiB3aXRoIGl0
Lgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Db2RlQmxvY2tG
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Db2RlQmxvY2tGb3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNv
ZGVCbG9ja0Zyb21BcmcoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwpAQCAtMjEzMCw3ICsyMjI4
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Db2RlQmxv
Y2tGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIAogLy8gVXNhZ2U6ICR2bS5kdW1wU291cmNl
Rm9yKGZ1bmN0aW9uT2JqKQogLy8gVXNhZ2U6ICR2bS5kdW1wU291cmNlRm9yKGNvZGVCbG9ja1Rv
a2VuKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wU291
cmNlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcFNvdXJjZUZvciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIENvZGVCbG9jayogY29kZUJsb2Nr
ID0gY29kZUJsb2NrRnJvbUFyZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CkBAIC0yMTQxLDcg
KzIyMzksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1
bXBTb3VyY2VGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogCiAvLyBVc2FnZTogJHZtLmR1bXBC
eXRlY29kZUZvcihmdW5jdGlvbk9iaikKIC8vIFVzYWdlOiAkdm0uZHVtcEJ5dGVjb2RlRm9yKGNv
ZGVCbG9jaykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVt
cEJ5dGVjb2RlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcEJ5dGVjb2RlRm9y
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBjb2RlQmxvY2tGcm9tQXJnKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKQEAg
LTIxNTIsNyArMjI1MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uRHVtcEJ5dGVjb2RlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAKIC8vIFByaW50cyBh
IHNlcmllcyBvZiBjb21tYSBzZXBhcmF0ZSBzdHJpbmdzIHdpdGhvdXQgYXBwZW5kaW5nIGEgbmV3
bGluZS4KIC8vIFVzYWdlOiAkdm0uZGF0YUxvZyhzdHIxLCBzdHIyLCBzdHIzKQotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EYXRhTG9nKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uRGF0YUxvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOwogICAgIGNvbnN0IGJvb2wgYWRkTGluZUZlZWQgPSBmYWxzZTsKQEAgLTIxNjEsNyArMjI1
OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGF0YUxv
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAKIC8vIFByaW50cyBhIHNlcmllcyBvZiBj
b21tYSBzZXBhcmF0ZSBzdHJpbmdzIGFuZCBhcHBlbmRzIGEgbmV3bGluZS4KIC8vIFVzYWdlOiAk
dm0ucHJpbnQoc3RyMSwgc3RyMiwgc3RyMykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uUHJpbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIGNvbnN0IGJvb2wgYWRk
TGluZUZlZWQgPSB0cnVlOwpAQCAtMjE3MCw3ICsyMjY4LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogCiAvLyBEdW1wcyB0aGUgY3VycmVudCBDYWxsRnJhbWUuCiAvLyBVc2FnZTogJHZtLmR1
bXBDYWxsRnJhbWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25EdW1wQ2FsbEZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcENhbGxGcmFt
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIC8vIFdoZW4gdGhl
IGNhbGxlcnMgY2FsbCB0aGlzIGZ1bmN0aW9uLCB0aGV5IGFyZSBleHBlY3RpbmcgdG8gZHVtcCB0
aGVpcgpAQCAtMjE4MSw3ICsyMjc5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EdW1wQ2FsbEZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogLy8g
RHVtcHMgdGhlIEpTIHN0YWNrLgogLy8gVXNhZ2U6ICR2bS5wcmludFN0YWNrKCkKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFN0YWNrKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcFN0YWNrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgLy8gV2hlbiB0aGUgY2FsbGVycyBjYWxsIHRoaXMgZnVuY3Rpb24sIHRo
ZXkgYXJlIGV4cGVjdGluZyB0byBkdW1wIHRoZQpAQCAtMjE5NSw3ICsyMjkzLDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wU3RhY2soSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamUKIC8vIFVzYWdlOiAkdm0uZHVtcFJlZ2lzdGVycygpIC8vIGR1bXAg
dGhlIHJlZ2lzdGVycyBvZiB0aGUgY3VycmVudCBDYWxsRnJhbWUuCiAvLyBGSVhNRTogQ3VycmVu
dGx5LCB0aGlzIGZ1bmN0aW9uIGR1bXBzIHRoZSBwaHlzaWNhbCBmcmFtZS4gV2Ugc2hvdWxkIG1h
a2UKIC8vIGl0IGR1bXAgdGhlIGxvZ2ljYWwgZnJhbWUgKGkuZS4gYmUgYWJsZSB0byBkdW1wIGlu
bGluZWQgZnJhbWVzIGFzIHdlbGwpLgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25EdW1wUmVnaXN0ZXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVt
cFJlZ2lzdGVycywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTIyMjUsNyArMjMyMyw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFJlZ2lzdGVycyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsCiAKIC8vIER1bXBzIHRoZSBpbnRlcm5hbCBtZW1vcnkgbGF5b3V0IG9m
IGEgSlNDZWxsLgogLy8gVXNhZ2U6ICR2bS5kdW1wQ2VsbChjZWxsKQotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQ2VsbChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVt
cENlbGwsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDApOwpAQCAtMjIzOCw3ICsyMzM2LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQ2VsbChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSoKIAogLy8gR2V0cyB0aGUgZGF0YUxvZyBkdW1wIG9mIHRoZSBpbmRleGluZ01vZGUg
b2YgdGhlIHBhc3NlZCB2YWx1ZS4KIC8vIFVzYWdlOiAkdm0ucHJpbnQoImluZGV4aW5nTW9kZSA9
ICIgKyAkdm0uaW5kZXhpbmdNb2RlKGpzVmFsdWUpKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25JbmRleGluZ01vZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25JbmRleGluZ01vZGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBpZiAoIWNhbGxGcmFtZS0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKQEAgLTIyNDksNyAr
MjM0Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSW5k
ZXhpbmdNb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1N0cmluZyhnbG9iYWxPYmplY3QtPnZtKCksIHN0cmVhbS50b1N0cmluZygpKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSW5saW5lQ2Fw
YWNpdHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JbmxpbmVDYXBhY2l0eSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTIyNjEsNyArMjM1OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uSW5saW5lQ2FwYWNpdHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAK
IC8vIEdldHMgdGhlIGRhdGFMb2cgZHVtcCBvZiBhIGdpdmVuIEpTIHZhbHVlIGFzIGEgc3RyaW5n
LgogLy8gVXNhZ2U6ICR2bS5wcmludCgidmFsdWUgPSAiICsgJHZtLnZhbHVlKGpzVmFsdWUpKQot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25WYWx1ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvblZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgV1RGOjpTdHJpbmdQcmludFN0cmVhbSBzdHJlYW07CkBAIC0yMjc2LDcg
KzIzNzQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblZh
bHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKIC8vIEdldHMgdGhlIHBpZCBvZiB0
aGUgY3VycmVudCBwcm9jZXNzLgogLy8gVXNhZ2U6ICR2bS5wcmludCgicGlkID0gIiArICR2bS5n
ZXRwaWQoKSkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0
UElEKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkdldFBJRCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGdldEN1cnJlbnRQcm9jZXNzSUQoKSkpOwpAQCAtMjI4NCw3ICsyMzgyLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRQSUQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQogCiAvLyBNYWtlIHRoZSBnbG9iYWxPYmplY3QgaGF2
ZSBhIGJhZCB0aW1lLiBEb2VzIG5vdGhpbmcgaWYgdGhlIG9iamVjdCBpcyBub3QgYSBKU0dsb2Jh
bE9iamVjdC4KIC8vIFVzYWdlOiAkdm0uaGF2ZUFCYWRUaW1lKGdsb2JhbE9iamVjdCkKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGF2ZUFCYWRUaW1lKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGF2ZUFCYWRUaW1lLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAt
MjMwMyw3ICsyNDAxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25IYXZlQUJhZFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KIAogLy8gQ2hlY2tzIGlm
IHRoZSBvYmplY3QgKG9yIGl0cyBnbG9iYWwgaWYgdGhlIG9iamVjdCBpcyBub3QgYSBnbG9iYWwp
IGlzIGhhdmluZyBhIGJhZCB0aW1lLgogLy8gVXNhZ2U6ICR2bS5pc0hhdmluZ0FCYWRUaW1lKG9i
aikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNIYXZpbmdB
QmFkVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSGF2aW5nQUJhZFRpbWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yMzQ4LDcgKzI0NDYsNyBAQCBzdGF0aWMgdm9pZCBjYWxsV2l0aFN0
YWNrU2l6ZVByb2JlRnVuY3Rpb24oUHJvYmU6OlN0YXRlKiBzdGF0ZSkKICNlbmRpZiAvLyBFTkFC
TEUoTUFTTV9QUk9CRSkKIAogU1VQUFJFU1NfQVNBTgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjQ0NCw3ICsy
NTQyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DYWxs
V2l0aFN0YWNrU2l6ZShKU0dsb2JhbE9iamVjdCogZ2wKIAogLy8gQ3JlYXRlcyBhIG5ldyBnbG9i
YWwgb2JqZWN0LgogLy8gVXNhZ2U6ICR2bS5jcmVhdGVHbG9iYWxPYmplY3QoKQotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0
U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjQ1Miw3ICsyNTUw
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVH
bG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTR2xvYmFsT2JqZWN0OjpjcmVhdGUodm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIGpzTnVsbCgpKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZVByb3h5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlUHJveHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNDY2LDcgKzI1NjQsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVByb3h5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJveHkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVB
cnJheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVBcnJheSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KGdsb2JhbE9iamVjdCk7CkBAIC0yNDc0LDcgKzI1NzIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVBcnJheShKU0dsb2JhbE9iamVj
dCogZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXJyYXkpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVOdWxsUm9wZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjQ4Miw3ICsy
NTgwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVh
dGVOdWxsUm9wZVN0cmluZyhKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTUm9wZVN0cmluZzo6Y3JlYXRlTnVsbEZvclRlc3Rpbmcodm0pKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0ZXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9s
bGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC0yNDk2LDcgKzI1OTQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlcihKU0dsb2JhbE9iamVjdCogZwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjUwNiw3ICsy
NjA0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVh
dGVDdXN0b21HZXR0ZXJPYmplY3QoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9N
SklUTm9kZU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjUxNiw3ICsyNjE0LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0KEpTR2xv
YmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVy
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTI1MjYsNyArMjYyNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck5vRWZmZWN0c09iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBA
IC0yNTM2LDcgKzI2MzQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck5vRWZmZWN0c09iamVjdChKUwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTQ2
LDcgKzI2NDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QoSlNHbAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
Q3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI1NTYsNyArMjY1NCw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVu
Y3Rpb25PYmplY3QoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0
ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjU2Niw3ICsyNjY0LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRDaGVja0pTQ2FzdE9i
amVjdChKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0
dGVyQmFzZUpTT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJCYXNl
SlNPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTI1NzcsNyArMjY3NSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0KEpT
R2xvCiB9CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVdhc21TdHJlYW1pbmdQYXJzZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkNyZWF0ZVdhc21TdHJlYW1pbmdQYXJzZXIsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI1ODYsNyArMjY4
NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
V2FzbVN0cmVhbWluZ1BhcnNlcihKU0dsb2JhbE9iCiB9CiAjZW5kaWYKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3Nv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNzb3IsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2Vy
dFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAg
LTI1OTYsNyArMjY5NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNzb3IoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25DcmVhdGVTdGF0aWNDdXN0b21WYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjYwNiw3ICsyNzA0LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0
b21WYWx1ZShKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
T2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91
dENvcnJlY3RTbG90U3RhdHVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjYxOCw3ICsyNzE2LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVPYmplY3RE
b2luZ1NpZGVFZmZlY3RQdXRXaXRob3UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jl
YXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0
U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjYzMSw3ICsyNzI5
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVF
bXB0eUZ1bmN0aW9uV2l0aE5hbWUoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
MSwgbmFtZSwgZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUpKSk7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVy
RGVsZWdhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxl
Z2F0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI2NTMsNyArMjc1MSw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUoSlNH
bG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCdWls
dGluKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTI2NzEsNyArMjc2OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQnVpbHRpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShmdW5jKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRQcml2YXRlUHJvcGVydHkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25HZXRQcml2YXRlUHJvcGVydHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNjkw
LDcgKzI3ODgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkdldFByaXZhdGVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuZ2V0KGds
b2JhbE9iamVjdCwgc3ltYm9sKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJvb3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVJvb3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTI2OTgsNyArMjc5Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUm9vdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShSb290OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCkpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUVs
ZW1lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVFbGVtZW50LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwpAQCAtMjcxMSw3ICsyODA5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVFbGVtZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVsZW1lbnQ6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCByb290KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uR2V0RWxlbWVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldEVsZW1lbnQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yNzIzLDcgKzI4MjEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldEVsZW1lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
agogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0ID8gcmVzdWx0IDoganNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3JlYXRlU2ltcGxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTI3MzEsNyArMjgyOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uQ3JlYXRlU2ltcGxlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShTaW1wbGVPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
R2V0SGlkZGVuVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRIaWRkZW5WYWx1
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKQEAgLTI3NDYsNyArMjg0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0SGlkZGVuVmFsdWUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzaW1wbGVPYmplY3QtPmhpZGRlblZh
bHVlKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blNldEhpZGRlblZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0SGlkZGVuVmFs
dWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNzYzLDcgKzI4NjEsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEhpZGRlblZhbHVlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2hhZG93Q2hpY2tl
bkZ1bmN0aW9uc09uU3RhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TaGFkb3dDaGlj
a2VuRnVuY3Rpb25zT25TdGFjaywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI3ODksNyArMjg4Nyw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2hhZG93Q2hpY2tl
bkZ1bmN0aW9uc09uU3RhY2soSlNHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNl
dEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRocm93KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjc5
Nyw3ICsyODk1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3QKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmRUeXBlRm9yRXhwcmVzc2lvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkZpbmRUeXBlRm9yRXhwcmVzc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4
MTcsNyArMjkxNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRmluZFR5cGVGb3JFeHByZXNzaW9uKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU09OUGFyc2UoZ2xvYmFsT2JqZWN0LCBqc29uU3RyaW5nKSk7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmV0dXJuVHlwZUZvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJldHVyblR5cGVGb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0yODMzLDcgKzI5MzEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvblJldHVyblR5cGVGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNPTlBhcnNlKGdsb2JhbE9iamVjdCwganNvblN0cmluZykpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZsYXR0ZW5E
aWN0aW9uYXJ5T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmxhdHRlbkRpY3Rp
b25hcnlPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yODQzLDcgKzI5NDEsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZsYXR0ZW5EaWN0aW9uYXJ5T2Jq
ZWN0KEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQmFzaWNCbG9j
a0V4ZWN1dGlvblJhbmdlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRp
b25SYW5nZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTI4NTIsNyArMjk1MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMoSlNH
bG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhl
Y3V0ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0yODcyLDcgKzI5NzAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZChKU0dsb2JhbE9i
amVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGhhc0V4ZWN1dGVkKSk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQmFzaWNC
bG9ja0V4ZWN1dGlvbkNvdW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQmFzaWNCbG9j
a0V4ZWN1dGlvbkNvdW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjkzNSwxOSArMzAzMywxOSBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgY2hhbmdlRGVidWdnZXJNb2RlV2hlbklkbGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRW5hYmxlRGVidWdnZXJNb2RlV2hlbklkbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuYWJsZURl
YnVnZ2VyTW9kZVdoZW5JZGxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICByZXR1
cm4gY2hhbmdlRGVidWdnZXJNb2RlV2hlbklkbGUoZ2xvYmFsT2JqZWN0LCB7IENvZGVHZW5lcmF0
aW9uTW9kZTo6RGVidWdnZXIgfSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25EaXNhYmxlRGVidWdnZXJNb2RlV2hlbklkbGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOwogICAgIHJldHVybiBjaGFuZ2VEZWJ1Z2dlck1vZGVXaGVuSWRsZShnbG9iYWxPYmplY3Qs
IHsgfSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
RGVsZXRlQWxsQ29kZVdoZW5JZGxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hl
bklkbGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNKiB2bSA9ICZnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yOTU4LDEzICszMDU2LDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVsZXRlQWxsQ29kZVdoZW5JZGxlKEpTR2xvYmFsT2Jq
ZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HbG9iYWxPYmplY3RDb3Vu
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2xvYmFsT2JqZWN0Q291bnQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2xvYmFsT2Jq
ZWN0LT52bSgpLmhlYXAuZ2xvYmFsT2JqZWN0Q291bnQoKSkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdsb2JhbE9iamVjdEZvck9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdsb2JhbE9iamVjdEZvck9iamVjdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApOwpAQCAtMjk3NCw3ICszMDcyLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmplY3QoSlNHbG9iYWxP
YmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0R2V0dGVyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0R2V0dGVyU2V0dGVyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpA
QCAtMzAwNCw3ICszMTAyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25HZXRHZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Mb2FkR2V0dGVyRnJvbUdldHRlclNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTMwMjEsMTQgKzMxMTksMTQgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Mb2FkR2V0dGVyRnJvbUdldHRlclNldHRlcihKU0dsb2JhbE8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdldHRlcik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tVGVzdEdldHRlclNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgSlNUZXN0Q3VzdG9tR2V0dGVyU2V0dGVyOjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIGdsb2JhbE9iamVjdCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGllcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzA0
NSwyNiArMzE0MywyNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGVsdGEpKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3VycmVudENQVVRp
bWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQ3VycmVudENQVVRpbWUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihDUFVUaW1lOjpmb3JDdXJyZW50VGhyZWFkKCkudmFsdWUoKSkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblRvdGFs
R0NUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ub3RhbEdDVGltZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC50b3RhbEdDVGltZSgpLnNlY29uZHMoKSkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBhcnNl
Q291bnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uUGFyc2VDb3VudCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKGdsb2JhbFBhcnNlQ291bnQubG9hZCgpKSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbklzV2FzbVN1cHBvcnRlZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBFTkFCTEUoV0VCQVNTRU1C
TFkpCkBAIC0zMDc0LDcgKzMxNzIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbklzV2FzbVN1cHBvcnRlZChKU0dsb2JhbE9iamVjdCosIENhbAogI2VuZGlm
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTWFrZTE2
Qml0U3RyaW5nSWZQb3NzaWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk1ha2UxNkJp
dFN0cmluZ0lmUG9zc2libGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zMDg5LDcgKzMxODcsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1ha2UxNkJpdFN0cmlu
Z0lmUG9zc2libGUoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJp
bmcodm0sIFN0cmluZzo6YWRvcHQoV1RGTW92ZShidWZmZXIpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEpTRG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0dXJl
VHJhbnNpdGlvbkxpc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRTdHJ1Y3R1cmVU
cmFuc2l0aW9uTGlzdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMxMTQsOCArMzIxMiw4IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEb2xsYXJWTUhlbHBlcjo6ZnVuY3Rpb25HZXRTdHJ1
Y3R1cmVUcmFuc2l0aW9uTGlzCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAgICAgICAgIHJlc3VsdC0+cHVzaChnbG9iYWxPYmplY3QsIEpTVmFsdWUoc3RydWN0dXJl
LT5tYXhPZmZzZXQoKSkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwotICAgICAgICBpZiAoc3RydWN0dXJlLT5tX3RyYW5zaXRpb25Qcm9wZXJ0eU5hbWUpCi0gICAg
ICAgICAgICByZXN1bHQtPnB1c2goZ2xvYmFsT2JqZWN0LCBqc1N0cmluZyh2bSwgU3RyaW5nKCpz
dHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblByb3BlcnR5TmFtZSkpKTsKKyAgICAgICAgaWYgKHN0cnVj
dHVyZS0+dHJhbnNpdGlvblByb3BlcnR5TmFtZSgpKQorICAgICAgICAgICAgcmVzdWx0LT5wdXNo
KGdsb2JhbE9iamVjdCwganNTdHJpbmcodm0sIFN0cmluZygqc3RydWN0dXJlLT50cmFuc2l0aW9u
UHJvcGVydHlOYW1lKCkpKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdC0+cHVz
aChnbG9iYWxPYmplY3QsIGpzTnVsbCgpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKQEAgLTMxMjYsNyArMzIyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNEb2xsYXJWTUhlbHBlcjo6ZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlz
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldENvbmN1cnJlbnRseShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkdldENvbmN1cnJlbnRseSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMx
NDYsNyArMzI0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uR2V0Q29uY3VycmVudGx5KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3Nl
cnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zMTU2LDcgKzMy
NTQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc093
bkxlbmd0aFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGZ1bmN0aW9uLT5jYW5Bc3N1bWVOYW1lQW5kTGVuZ3RoQXJlT3JpZ2luYWwo
dm0pKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
UmVqZWN0UHJvbWlzZUFzSGFuZGxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJlamVj
dFByb21pc2VBc0hhbmRsZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBKU1Byb21pc2UqIHByb21pc2UgPSBqc0Nhc3Q8SlNQcm9taXNlKj4oY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudCgwKSk7CkBAIC0zMTY1LDcgKzMyNjMsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQoSlNH
bG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0VXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zMTg3LDI1ICszMjg1LDI1IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0VXNlclByZWZlcnJl
ZExhbmd1YWdlcyhKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25JQ1VWZXJzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbklDVVZlcnNpb24sIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihXVEY6OklDVTo6bWFqb3JWZXJzaW9uKCkpKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JQ1VIZWFkZXJW
ZXJzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbklDVUhlYWRlclZlcnNpb24sIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihVX0lDVV9WRVJTSU9OX01BSk9SX05VTSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzc2VydEVuYWJs
ZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQXNzZXJ0RW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihBU1NFUlRfRU5BQkxFRCkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzTWVtb3J5TGltaXRlZChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc01l
bW9yeUxpbWl0ZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKSB8fCBQTEFURk9STShXQVRDSE9TKQpAQCAtMzIxNSwxOSArMzMxMywxOSBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzTWVtb3J5TGltaXRl
ZChKU0dsb2JhbE9iamVjdCosIENhbAogI2VuZGlmCiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVXNlSklUKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVzZUpJVCwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihPcHRpb25zOjp1c2VKSVQo
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklz
R2lnYWNhZ2VFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbklzR2lnYWNhZ2VFbmFibGVkLCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKEdpZ2FjYWdlOjppc0VuYWJsZWQo
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblRv
VW5jYWNoZWFibGVEaWN0aW9uYXJ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVG9VbmNh
Y2hlYWJsZURpY3Rpb25hcnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zMzcyLDcgKzM0NzAsNyBAQCB2
b2lkIEpTRG9sbGFyVk06OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBhZGRGdW5jdGlvbih2
bSwgImlzV2FzbVN1cHBvcnRlZCIsIGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkLCAwKTsKICAgICBh
ZGRGdW5jdGlvbih2bSwgIm1ha2UxNkJpdFN0cmluZ0lmUG9zc2libGUiLCBmdW5jdGlvbk1ha2Ux
NkJpdFN0cmluZ0lmUG9zc2libGUsIDEpOwogCi0gICAgYWRkRnVuY3Rpb24odm0sICJnZXRTdHJ1
Y3R1cmVUcmFuc2l0aW9uTGlzdCIsIEpTRG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0
dXJlVHJhbnNpdGlvbkxpc3QsIDEpOworICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0U3RydWN0dXJl
VHJhbnNpdGlvbkxpc3QiLCBmdW5jdGlvbkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0LCAxKTsK
ICAgICBhZGRGdW5jdGlvbih2bSwgImdldENvbmN1cnJlbnRseSIsIGZ1bmN0aW9uR2V0Q29uY3Vy
cmVudGx5LCAyKTsKIAogICAgIGFkZEZ1bmN0aW9uKHZtLCAiaGFzT3duTGVuZ3RoUHJvcGVydHki
LCBmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5LCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAKaW5kZXggYWY0MmQ4ZDU3MDlmMjA2YTdh
Nzg3MDhmNjVkN2U1MGI1NThlNjM2Mi4uMjM4MWQzMjgyMTMxZjg1NGY4ZjViYjE2NjdlMzEwYmYw
YjMzODIwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseS5jcHAKQEAgLTYyLDkgKzYyLDkgQEAgRk9SX0VBQ0hfV0VCQVNTRU1CTFlfQ09OU1RSVUNU
T1JfVFlQRShERUZJTkVfQ0FMTEJBQ0tfRk9SX0NPTlNUUlVDVE9SKQogCiAjdW5kZWYgREVGSU5F
X0NBTExCQUNLX0ZPUl9DT05TVFJVQ1RPUgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVGdW5jKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3Rh
bnRpYXRlRnVuYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlWYWxpZGF0ZUZ1bmMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFz
c2VtYmx5Q29tcGlsZUZ1bmMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2Vi
QXNzZW1ibHlJbnN0YW50aWF0ZUZ1bmMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04od2ViQXNzZW1ibHlWYWxpZGF0ZUZ1bmMpOwogCiB9CiAKQEAgLTE1MSw3ICsxNTEsNyBAQCBz
dGF0aWMgdm9pZCB3ZWJBc3NlbWJseU1vZHVsZVZhbGlkYXRlQXN5bmNJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIH0pKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlRnVuYyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseUNvbXBpbGVGdW5jLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI5MSw3ICsyOTEsNyBAQCB2b2lkIEpTV2ViQXNzZW1ibHk6OndlYkFzc2VtYmx5TW9kdWxlSW5z
dGFudGluYXRlQXN5bmMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIENMRUFSX0FORF9S
RVRVUk5fSUZfRVhDRVBUSU9OKGNhdGNoU2NvcGUsIHZvaWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKIApAQCAtMzE3LDcgKzMxNyw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jKEpTR2xvYmFs
T2JqZWN0KiBnCiAgICAgfQogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseVZhbGlkYXRlRnVuYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJs
eVZhbGlkYXRlRnVuYywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzMwLDcgKzMzMCw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5j
KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4odmFsaWRhdGlvblJlc3VsdC5oYXNfdmFsdWUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZVN0cmVhbWluZ0ludGVybmFsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5Q29tcGlsZVN0cmVhbWluZ0ludGVybmFsLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIGNhdGNoU2NvcGUgPSBERUNMQVJF
X0NBVENIX1NDT1BFKHZtKTsKQEAgLTM1Myw3ICszNTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZVN0cmVhbWluZ0ludGVybmFsKEpTR2xvYmFsT2Jq
ZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW50aWF0ZVN0cmVhbWluZ0ludGVy
bmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5SW5zdGFudGlhdGVTdHJlYW1pbmdJ
bnRlcm5hbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuaAppbmRleCAzNmY3MmQ1NzE4OWZj
NjM2MTliMmE4ZGMwNTMyZmFlYWQ5NTZjYThjLi41MjYxOWI0NWEwNjYzNjEzZWU1YTk0MzhmNzhk
Mjg3NmEzMzkyNDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9K
U1dlYkFzc2VtYmx5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseS5oCkBAIC01OCw4ICs1OCw4IEBAIGNsYXNzIEpTV2ViQXNzZW1ibHkgZmluYWwgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFz
c2VtYmx5Q29tcGlsZVN0cmVhbWluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVT
dHJlYW1pbmdJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbCk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5SW5zdGFudGlhdGVTdHJlYW1pbmdJ
bnRlcm5hbCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IuY3BwCmluZGV4IDUyNzg2MTZmYjdjMzRkYjhlMjJiZDJiMGVlYjMxYTZiOGM5
N2RiOWQuLjVjZDAwMzVhMDFmZGI3OGRkYzM1ZmM0N2I2Yjg1ODBiZTQ1ZDM1OTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zOCwxMiArMzgsMTUgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZjb25zdHJ1
Y3RvclRhYmxlV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
cik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUNv
bXBpbGVFcnJvcik7CisKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25z
dHJ1Y3Rvci5sdXQuaAogIEBiZWdpbiBjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlDb21waWxl
RXJyb3IKICBAZW5kCiAgKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTU4LDcgKzYxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9y
OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdlKSkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0
cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5Q29tcGls
ZUVycm9yU3RydWN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCmluZGV4IGMwYjMwMTViN2EwNWQyOThhY2ZhMjRl
YmNkY2U4ZTU0Mjg3NmEyNWYuLjgxMjhjYjBjYzQ4Y2Y2NDExZTI4Yjg2MTE1YmM1MzA1NThiMWJl
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5RnVuY3Rpb24uY3BwCkBAIC01Niw3ICs1Niw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25z
dCBDbGFzc0luZm8gV2ViQXNzZW1ibHlGdW5jdGlvbjo6c19pbmZvID0geyAiV2ViQXNzZW1ibHlG
dW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoV2ViQXNzZW1ibHlGdW5jdGlvbikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsV2ViQXNzZW1ibHlGdW5jdGlvbik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsV2ViQXNzZW1ibHlGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUds
b2JhbENvbnN0cnVjdG9yLmNwcAppbmRleCA0NTJiYWIzMmU1YTY1MDc3MGI4YjhkM2Y1N2YzMjFi
ODcxMGM5YjI0Li4zMDAyYzc4ZjViMDZkMzQ5YWQ1ODhiZTA3YmRmOGU3ODA0ZTA1OGYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcApAQCAtMzgsMTIgKzM4LDE1IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAmY29uc3RydWN0b3JHbG9iYWxXZWJB
c3NlbWJseUdsb2JhbCwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUds
b2JhbENvbnN0cnVjdG9yKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5R2xvYmFsKTsKKwogLyogU291cmNlIGZvciBXZWJBc3Nl
bWJseUdsb2JhbENvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yR2xvYmFsV2Vi
QXNzZW1ibHlHbG9iYWwKICBAZW5kCiAgKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2JhbChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEyMiw3ICsxMjUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsKEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseUdsb2Jh
bDo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlH
bG9iYWxTdHJ1Y3R1cmUoKSwgV1RGTW92ZSh3YXNtR2xvYmFsKSkpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNzZW1ibHlHbG9iYWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsSlNXZWJBc3NlbWJseUdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlw
ZS5jcHAKaW5kZXggOWJkZTUzOWIyZWYyZjM3OTkxYjBkNGNmNjU1NzQ0ZTA1ZWMwMTg4Zi4uYWZk
OGIwMzFiYjk3NDhkYzYyNmMzODYxZmYxODBhMDk0NzJkZTE5MyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90
eXBlLmNwcApAQCAtMzUsOSArMzUsOSBAQAogI2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlHbG9iYWwu
aCIKIAogbmFtZXNwYWNlIEpTQyB7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5
R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJv
dG9TZXR0ZXJGdW5jVmFsdWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVP
Zik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFBy
b3RvR2V0dGVyRnVuY1ZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUpOwogfQogCiAjaW5jbHVkZSAiV2Vi
QXNzZW1ibHlHbG9iYWxQcm90b3R5cGUubHV0LmgiCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBB
TFdBWVNfSU5MSU5FIEpTV2ViQXNzZW1ibHlHbG9iYWwqIGdldEdsb2JhbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVPZiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iCiAgICAgfQogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3
ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlKEpTR2xvYgogICAgIH0K
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlHbG9i
YWxQcm90b1NldHRlckZ1bmNWYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUds
b2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VD
b25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGNjYzI3ZTYzMWFmNzdlNGJjNzA5ZmVhYThl
MjU3MmFlNGRhMjE2NzkuLmY0YWU3YTMyNjFhMGQ5NGQyYTI5YWY0NDkxZGEyZDIxNWZiY2FlMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5z
dGFuY2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtMzksNiArMzksOSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAmY29uc3RydWN0b3JU
YWJsZVdlYkFzc2VtYmx5SW5zdGFuY2UsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2UpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlJbnN0YW5jZSk7CisKIC8qIFNv
dXJjZSBmb3IgV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNv
bnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseUluc3RhbmNlCiAgQGVuZApAQCAtNDYsNyArNDksNyBA
QCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzXwogCiB1c2luZyBXYXNtOjpQbGFuOwogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC03Niw3ICs3OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0YW5jZShKU0dsb2JhbE9i
amVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpbnN0YW5jZSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5SW5zdGFuY2UoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUluc3RhbmNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5j
ZVByb3RvdHlwZS5jcHAKaW5kZXggMzBjN2MxZjg2MGMyMjM4MGM1OTQzNTdkMzllZWVkODYxNzEz
NWRkNC4uNjY5ZjY4MjhlOGRmMTRkOTYzMDhmOTdhZjI1YjAxZWFkMzU4OTM4OCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJ
bnN0YW5jZVByb3RvdHlwZS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlICJKU1dlYkFz
c2VtYmx5SW5zdGFuY2UuaCIKIAogbmFtZXNwYWNlIEpTQyB7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbmNlUHJvdG9GdW5jRXhwb3J0cyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04od2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvRnVuY0V4cG9ydHMpOwogfQogCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvdHlwZS5sdXQuaCIKQEAgLTYxLDcgKzYxLDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgSlNXZWJBc3NlbWJseUluc3RhbmNlKiBnZXRJbnN0YW5jZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbmNlUHJvdG9GdW5jRXhw
b3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbmNlUHJvdG9GdW5jRXhw
b3J0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0
b3IuY3BwCmluZGV4IDBkZTNmYjdjNzlkNjU5NTQxNmE2ZTdiOGIwMmYyYThlNGM5MjI4OTIuLjk0
NmRlZjRmMTE1MjI5YTIyNWJlOTMyYWM5ZTY0MzViNmM4YWIyYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vy
cm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zOCwxMiArMzgsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yOjpzX2luZm8g
PSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1i
bHlMaW5rRXJyb3IsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2ViQXNzZW1ibHlMaW5r
RXJyb3JDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUxpbmtFcnJvcik7CisKIC8qIFNvdXJjZSBmb3Ig
V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5sdXQuaAogIEBiZWdpbiBjb25zdHJ1Y3Rv
clRhYmxlV2ViQXNzZW1ibHlMaW5rRXJyb3IKICBAZW5kCiAgKi8KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1
dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTU4LDcgKzYxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvcihKU0dsb2JhbE9iamUK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgc3RydWN0dXJlLCBtZXNzYWdl
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJB
c3NlbWJseUxpbmtFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUxp
bmtFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwog
ICAgIFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5
TGlua0Vycm9yU3RydWN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCmluZGV4IDFl
MGNiYTBmM2E4MzZiYTk2NjMwMmMwY2Y1ZWQ4ZDI1OWYxNWJlZmQuLjUwY2NjYTI0MWZkNWJlOTc5
NTZkZjA4OGI5NGE4ZDhhYjBmZjBkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3BwCkBA
IC00NCwxMiArNDQsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJB
c3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpz
X2luZm8sICZjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlNZW1vcnksIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseU1lbW9yeSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseU1lbW9y
eSk7CisKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5sdXQuaAog
IEBiZWdpbiBjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlNZW1vcnkKICBAZW5kCiAgKi8KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJs
eU1lbW9yeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExNCw3ICsxMTcsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5KEpT
R2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNZW1vcnkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseU1l
bW9yeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TWVtb3J5LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1v
cnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlNZW1vcnlQcm90b3R5cGUuY3BwCmluZGV4IDJiOTcwZjA3MDQ0YzhkNGZiYjgwZjgwYmM5MThh
MjkwY2I3YjcwZDAuLmFiNGEyYmZlZWVmYTY4NDE3YzM4Y2MxOTU0ZTVlOTdmNjJmNjAwOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseU1lbW9yeVByb3RvdHlwZS5jcHAKQEAgLTM4LDggKzM4LDggQEAKICNpbmNsdWRlICJTdHJ1
Y3R1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQ
cm90b0Z1bmNHcm93KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTsKIH0KIAogI2luY2x1ZGUgIldlYkFzc2VtYmx5TWVt
b3J5UHJvdG90eXBlLmx1dC5oIgpAQCAtNjksNyArNjksNyBAQCBBTFdBWVNfSU5MSU5FIEpTV2Vi
QXNzZW1ibHlNZW1vcnkqIGdldE1lbW9yeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBW
TSYgdgogICAgIHJldHVybiBtZW1vcnk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3JvdywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC04Niw3ICs4Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlN
ZW1vcnlQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihyZXN1bHQucGFnZUNvdW50KCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCmluZGV4IDljN2Fj
MDI1ZWMwMjE5Y2MwZjFlNDBjYmI4MDMyNDVhZTg0N2NmNjEuLjQ4MmI2MjQ5MTFkY2YwZmRhYTE1
NTI0Yjc5ZDY4ZmMwZjhhZGJkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwCkBAIC00
Miw5ICs0MiwxMSBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNl
IEpTQyB7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1v
ZHVsZUN1c3RvbVNlY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1vZHVsZUltcG9ydHMoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlRXhwb3J0cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNb2R1bGVD
dXN0b21TZWN0aW9ucyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseU1vZHVsZUltcG9ydHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2Vi
QXNzZW1ibHlNb2R1bGVFeHBvcnRzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNb2R1bGUpOwogfQogCiAjaW5jbHVkZSAiV2ViQXNz
ZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5sdXQuaCIKQEAgLTYxLDcgKzYzLDcgQEAgY29uc3QgQ2xh
c3NJbmZvIFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9u
IiwgJkJhc2U6OnNfaW4KICBAZW5kCiAgKi8KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseU1vZHVsZUN1c3RvbVNlY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5TW9kdWxlQ3VzdG9tU2VjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtOTQsNyArOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5
TW9kdWxlQ3VzdG9tU2VjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3
ZWJBc3NlbWJseU1vZHVsZUltcG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlN
b2R1bGVJbXBvcnRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEyNSw3ICsxMjcsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlSW1wb3J0cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1vZHVs
ZUV4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNb2R1bGVFeHBvcnRzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NCw3ICsxNTYsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlRXhwb3J0cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1v
ZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjUsNyArMTY3LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1vZHVsZShKU0dsb2JhbE9i
amVjdCoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShXZWJB
c3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpjcmVhdGVNb2R1bGUoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIFdURk1vdmUoc291cmNlKSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEpTV2ViQXNzZW1ibHlNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJB
c3NlbWJseU1vZHVsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwCmluZGV4IDllNWM3NzFiNjJlMjFjNTZiY2U3N2Q0ZWI3YjZkMjQ2MzFhNDYxYmUuLjNk
ZmQ5MTU2N2I2MGE1OGRkOWFhNjg0MmZmNjc5MDIxZjVjYjkyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zOCwxMiArMzgsMTUgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZjb25zdHJ1Y3RvclRhYmxl
V2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2Vi
QXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJv
cik7CisKIC8qIFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5s
dXQuaAogIEBiZWdpbiBjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IKICBA
ZW5kCiAgKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RK
U1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYwLDcg
KzYzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNX
ZWJBc3NlbWJseVJ1bnRpbWVFcnJvcihKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBz
dHJ1Y3R1cmUsIFdURk1vdmUobWVzc2FnZVN0cmluZykpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1
ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJseVJ1bnRpbWVFcnJvclN0cnVjdHVy
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlUYWJsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDk4M2YwYTAwZGIxMzliZGM3Yjhm
MDVjMWRmYzNmZTAwMGYxNmI5MC4uMDNiZjhkYTExZjFhOTZmOGQzMzlhOWI3M2IzOTI2MTNhYmNh
ZjczMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlUYWJsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCkBAIC00MiwxMiArNDIsMTUgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0cnVjdG9yVGFi
bGVXZWJBc3NlbWJseVRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2Vt
Ymx5VGFibGVDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY2FsbEpTV2ViQXNzZW1ibHlUYWJsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUpOworCiAvKiBTb3VyY2UgZm9yIFdlYkFz
c2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5sdXQuaAogIEBiZWdpbiBjb25zdHJ1Y3RvclRhYmxlV2Vi
QXNzZW1ibHlUYWJsZQogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTEwNiw3ICsxMDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUoSlNHbG9iYWxPYmplY3QqCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShKU1dlYkFzc2VtYmx5VGFibGU6OnRy
eUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5VGFibGVT
dHJ1Y3R1cmUoKSwgd2FzbVRhYmxlLnJlbGVhc2VOb25OdWxsKCkpKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5VGFibGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsSlNXZWJBc3NlbWJseVRhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5j
cHAKaW5kZXggNTUxZDlmOTdhZDI0ZDI1M2RkNzdkZjYxOGRkM2IyNWIyNmI5ZWNkMC4uODZmNGU3
OGZlYTUyMTA1MTAwNjgxNTk3ZTQ1NmExODk5ZWNmYmE4MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5j
cHAKQEAgLTM3LDEwICszNywxMCBAQAogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAog
bmFtZXNwYWNlIEpTQyB7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJB
c3NlbWJseVRhYmxlUHJvdG9GdW5jTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJv
dG9GdW5jR3JvdyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0xlbmd0aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3Nl
bWJseVRhYmxlUHJvdG9GdW5jR3Jvdyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOwogfQogCiAjaW5jbHVkZSAi
V2ViQXNzZW1ibHlUYWJsZVByb3RvdHlwZS5sdXQuaCIKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGlj
IEFMV0FZU19JTkxJTkUgSlNXZWJBc3NlbWJseVRhYmxlKiBnZXRUYWJsZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgoSlNHbG9iYWxP
YmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0YWJsZS0+bGVuZ3RoKCkp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlU
YWJsZVByb3RvRnVuY0dyb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0dyb3csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTksNyArOTksNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jR3JvdyhKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIob2xkTGVuZ3RoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNz
ZW1ibHlUYWJsZVByb3RvRnVuY0dldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTUs
NyArMTE1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1i
bHlUYWJsZVByb3RvRnVuY0dldChKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRhYmxlLT5nZXQoaW5kZXgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAppbmRleCAyMTc2YmM3MmRiZjVhMTZlYWRkNzFmN2Fj
MmIwY2U1N2Y2YWJjNTgxLi5kY2QwYjY4Y2ExNjY0ZTZjOWYxNjBlOTY0N2MxNTA2NWFhODExNTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdy
YXBwZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCkBAIC0zNiwxNiArMzYsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpzX2lu
Zm8gPSB7ICJXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rp
b24pIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBqc0Nhc3Q8V2ViQXNzZW1ibHlXcmFwcGVyRnVu
Y3Rpb24qPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwotICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9
IHdhc21GdW5jdGlvbi0+ZnVuY3Rpb24oKTsKLSAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2FsbERh
dGEodm0sIGZ1bmN0aW9uKTsKLSAgICBSRUxFQVNFX0FTU0VSVChjYWxsRGF0YS50eXBlICE9IENh
bGxEYXRhOjpUeXBlOjpOb25lKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIGNhbGxEYXRhLCBqc1VuZGVm
aW5lZCgpLCBBcmdMaXN0KGNhbGxGcmFtZSkpKSk7Ci19CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjYWxsV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24pOwogCiBXZWJBc3NlbWJs
eVdyYXBwZXJGdW5jdGlvbjo6V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24oVk0mIHZtLCBOYXRp
dmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgV2FzbTo6V2FzbVRvV2FzbUltcG9ydGFibGVGdW5jdGlvbiBp
bXBvcnRhYmxlRnVuY3Rpb24pCiAgICAgOiBCYXNlKHZtLCBleGVjdXRhYmxlLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSkKQEAgLTg1LDYgKzc2LDE3IEBAIHZvaWQgV2ViQXNzZW1ibHlXcmFwcGVy
RnVuY3Rpb246OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRv
CiAgICAgdmlzaXRvci5hcHBlbmQodGhpc09iamVjdC0+bV9mdW5jdGlvbik7CiB9CiAKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24sIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKKyAgICBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbUZ1bmN0
aW9uID0ganNDYXN0PFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKj4oY2FsbEZyYW1lLT5qc0Nh
bGxlZSgpKTsKKyAgICBKU09iamVjdCogZnVuY3Rpb24gPSB3YXNtRnVuY3Rpb24tPmZ1bmN0aW9u
KCk7CisgICAgYXV0byBjYWxsRGF0YSA9IGdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CisgICAg
UkVMRUFTRV9BU1NFUlQoY2FsbERhdGEudHlwZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7Cisg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY2FsbChnbG9iYWxP
YmplY3QsIGZ1bmN0aW9uLCBjYWxsRGF0YSwganNVbmRlZmluZWQoKSwgQXJnTGlzdChjYWxsRnJh
bWUpKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJB
U1NFTUJMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2FsbGluZ0NvbnZl
bnRpb25zLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCmlu
ZGV4IGQ0MGM1ZGUyMmIzNjkxNTYxMTY5YjI1NmJlZDVlOGNjZmQwZWY5ODIuLmQ1OTBjNTQzMWI5
MDYwMjA1ZTRhOTVkMzE4MDdkZGIzYjI5ZDY0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZv
cm1DYWxsaW5nQ29udmVudGlvbnMuaApAQCAtMzUsMTMgKzM1LDE5IEBACiAKIAogI2lmIENQVShY
ODYpICYmIENPTVBJTEVSKE1TVkMpCi0jZGVmaW5lIEpTQ19IT1NUX0NBTEwgX19mYXN0Y2FsbAor
I2RlZmluZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgX19mYXN0Y2FsbAogI2VsaWYgQ1BVKFg4
NikgJiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCi0jZGVmaW5lIEpTQ19IT1NUX0NBTEwgX19h
dHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKKyNkZWZpbmUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVT
IF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCiAjZWxzZQotI2RlZmluZSBKU0NfSE9TVF9DQUxM
CisjZGVmaW5lIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUwogI2VuZGlmCiAKKyNkZWZpbmUgSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTmFtZSwgcGFyYW1ldGVycykgXAorICAgIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIGZ1bmN0aW9uTmFtZSBw
YXJhbWV0ZXJzCisjZGVmaW5lIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OYW1l
KSBcCisgICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgZnVu
Y3Rpb25OYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopCisjZGVmaW5l
IEpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSWQsIGZ1bmN0aW9uKQorCiAjaWYg
Q1BVKFg4NikgJiYgT1MoV0lORE9XUykKICNkZWZpbmUgQ0FMTElOR19DT05WRU5USU9OX0lTX1NU
RENBTEwgMQogI2lmbmRlZiBDREVDTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CdWlsdGluQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQnVpbHRpbkNvbnN0cnVjdG9yLmgKaW5kZXggNjExNDQ1YzljMGJiMjE3MzQwYmVm
NTcyNDZjOTZlMjcxZjJlYTNjOC4uZmY3YTA1ZDNjYjIyZjc1YWVhMGIxM2MxZTQ5NjhlZTFiZDVi
ZmNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CdWlsdGlu
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJ1aWx0
aW5Db25zdHJ1Y3Rvci5oCkBAIC00NSw3ICs0NSw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xh
c3M+IGNsYXNzIEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEpTRE9NQnVp
CiAKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYp
OwogICAgIHN0YXRpYyBKU0M6OkNhbGxEYXRhIGdldENvbnN0cnVjdERhdGEoSlNDOjpKU0NlbGwq
KTsKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKKyAgICBzdGF0aWMgSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgY29uc3RydWN0KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogCiAgICAgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBjYWxsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1l
JiwgSlNDOjpKU09iamVjdCYpOwogICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUgY2FsbENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNhbGxGcmFtZSYsIEpTQzo6SlNPYmplY3Qq
KTsKQEAgLTExMSw3ICsxMTEsNyBAQCB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjxKU0RPTU9iamVj
dEluc3BlY3RvcjxKU0NsYXNzPjo6aXNDb21wbGV4V3JhcHBlciwgSlNDOjpKUwogICAgIHJldHVy
biBjb250ZXh0ID8gY3JlYXRlV3JhcHBlcjx0eXBlbmFtZSBKU0NsYXNzOjpET01XcmFwcGVkPihj
b25zdHJ1Y3Rvci5nbG9iYWxPYmplY3QoKSwgSlNDbGFzczo6RE9NV3JhcHBlZDo6Y3JlYXRlKCpj
b250ZXh0KSkgOiBudWxscHRyOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRE9NQnVpbHRpbkNvbnN0cnVj
dG9yPEpTQ2xhc3M+Ojpjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRlPHR5cGVuYW1lIEpT
Q2xhc3M+IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRF
UyBKU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvcjxKU0NsYXNzPjo6Y29uc3RydWN0KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
CiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CiAgICAgYXV0byogY2FzdGVkVGhpcyA9IEpTQzo6
anNDYXN0PEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yKj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3IuaAppbmRleCAz
ZjZlYTc1MDNmMjVhZTM3MTczOTRlYjI3Nzk4ODIyYTQ0ODFlMzcyLi5hY2Y5MTkwZWE3OWZiYTg1
N2E2ZjBhMjRhN2JkMmMxYzA2Mzc2MmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db25zdHJ1Y3Rvci5oCkBAIC00Nyw3ICs0Nyw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEpTQ2xhc3M+IGNsYXNzIEpTRE9NQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSlNET01Db25z
dHJ1Y3RvCiAgICAgLy8gVXN1YWxseSBkZWZpbmVkIGZvciBlYWNoIHNwZWNpYWxpemF0aW9uIGNs
YXNzLgogICAgIHZvaWQgaW5pdGlhbGl6ZVByb3BlcnRpZXMoSlNDOjpWTSYsIEpTRE9NR2xvYmFs
T2JqZWN0JikgeyB9CiAgICAgLy8gTXVzdCBiZSBkZWZpbmVkIGZvciBlYWNoIHNwZWNpYWxpemF0
aW9uIGNsYXNzLgotICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworICAgIHN0
YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBjb25zdHJ1
Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiB9OwogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBKU0NsYXNzPiBpbmxpbmUgSlNET01Db25zdHJ1Y3RvcjxKU0NsYXNzPiogSlNE
T01Db25zdHJ1Y3RvcjxKU0NsYXNzPjo6Y3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwCmluZGV4
IDMwZjU5NzE5NmFhNTUwNDkxMTFmZjg4ZjE3ZjNiMGZlNjMyZjQ0NzkuLjJhODUyYTUwMmUxNDE4
ZGI5NDczYWI0NzIxNzFkMWM3NTVhMTFkNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5jcHAKQEAgLTMwLDcgKzMwLDkgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJ
QkxFKEpTRE9NQ29uc3RydWN0b3JCYXNlKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbFRocm93VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVGhyb3dU
eXBlRXJyb3IpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93VHlwZUVycm9y
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTM4LDYgKzQwLDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxUaHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsVGhyb3dUeXBlRXJyb3JGb3JKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZSwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqKSkKK3sKKyAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNDOjp0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCAiSWxsZWdhbCBjb25zdHJ1Y3RvciJfcyk7CisgICAgcmV0
dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKEpTQzo6anNOdWxsKCkpOworfQorCiBDYWxsRGF0YSBK
U0RPTUNvbnN0cnVjdG9yQmFzZTo6Z2V0Q2FsbERhdGEoSlNDZWxsKikKIHsKICAgICBDYWxsRGF0
YSBjYWxsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29uc3RydWN0b3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0
cnVjdG9yQmFzZS5oCmluZGV4IDAwZWIwYmUxOTc1YTM5MWI2YjYzN2E1ZWVhOWYyZjI5ZTU1OGU0
OTguLjI1ZWZkNjY4YWMxODE4ODI1OTkwMWI1M2M2ZDYzNjMxYjI5M2NkY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaApAQCAtMjMs
NiArMjMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY2FsbFRocm93VHlwZUVycm9yRm9ySlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGUpOworCiAvLyBCYXNlIGNsYXNzIGZvciBhbGwgY29uc3RydWN0b3Igb2JqZWN0cyBpbiB0aGUg
SlNDIGJpbmRpbmdzLgogY2xhc3MgSlNET01Db25zdHJ1Y3RvckJhc2UgOiBwdWJsaWMgSlNET01P
YmplY3QgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgKaW5kZXggNTk4NmZkOWNi
MzE1OTU1MTdhZGMwMmM2YjlhNjZiNmNlNmVlMjIzNi4uYzQ5OTlkOWYyOTY3NDA5ZjI3ZDIzYjc1
MDNkNTFjNzU2YjljNDFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oCkBAIC00NiwxOSAr
NDYsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGUgZmluYWwgOiBwdWJsaWMKICAgICAvLyBVc3VhbGx5IGRlZmluZWQg
Zm9yIGVhY2ggc3BlY2lhbGl6YXRpb24gY2xhc3MuCiAgICAgdm9pZCBpbml0aWFsaXplUHJvcGVy
dGllcyhKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKSB7IH0KIAotICAgIHN0YXRpYyBKU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFRocm93VHlwZUVycm9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqKQotICAgIHsKLSAgICAg
ICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICAgICAgSlNDOjp0aHJvd1R5cGVFcnJvcihn
bG9iYWxPYmplY3QsIHNjb3BlLCAiSWxsZWdhbCBjb25zdHJ1Y3RvciJfcyk7Ci0gICAgICAgIHJl
dHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OmpzTnVsbCgpKTsKLSAgICB9Ci0KICAgICBz
dGF0aWMgSlNDOjpDYWxsRGF0YSBnZXRDYWxsRGF0YShKU0M6OkpTQ2VsbCopCiAgICAgewogICAg
ICAgICBKU0M6OkNhbGxEYXRhIGNhbGxEYXRhOwogICAgICAgICBjYWxsRGF0YS50eXBlID0gSlND
OjpDYWxsRGF0YTo6VHlwZTo6TmF0aXZlOwotICAgICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBjYWxsVGhyb3dUeXBlRXJyb3I7CisgICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlv
biA9IGNhbGxUaHJvd1R5cGVFcnJvckZvckpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
OwogICAgICAgICByZXR1cm4gY2FsbERhdGE7CiAgICAgfQogCkBAIC02Niw3ICs1OCw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGNsYXNzIEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1
Y3RhYmxlIGZpbmFsIDogcHVibGljCiAgICAgewogICAgICAgICBKU0M6OkNhbGxEYXRhIGNhbGxE
YXRhOwogICAgICAgICBjYWxsRGF0YS50eXBlID0gSlNDOjpDYWxsRGF0YTo6VHlwZTo6TmF0aXZl
OwotICAgICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsVGhyb3dUeXBlRXJyb3I7
CisgICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJvckZv
ckpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlOwogICAgICAgICByZXR1cm4gY2FsbERh
dGE7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcAppbmRleCA4Mjg2MzhhZDNhNDlkMzE2MmI5OGU1NWQ0MzRhZDRjMWRkZWUw
YTY3Li40ZTI2ZDdmOTUxMjVmMGNlNDU2NjExM2VlMjgzOTQxNTA3Y2I1OWE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCkBAIC01Niwx
MiArNTYsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZVRoaXNUeXBlRXJyb3JGb3JCdWlsdGlu
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYWtlR2V0dGVyVHlwZUVycm9yRm9yQnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZURPTUV4Y2VwdGlvbkZv
ckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGlzUmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc1dyaXRhYmxl
U3RyZWFtQVBJRW5hYmxlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3aGVuU2lnbmFsQWJvcnRlZChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYWtlVGhpc1R5cGVFcnJvckZv
ckJ1aWx0aW5zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFrZUdldHRlclR5cGVFcnJv
ckZvckJ1aWx0aW5zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFrZURPTUV4Y2VwdGlv
bkZvckJ1aWx0aW5zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaXNSZWFkYWJsZUJ5dGVT
dHJlYW1BUElFbmFibGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaXNXcml0YWJsZVN0
cmVhbUFQSUVuYWJsZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3aGVuU2lnbmFsQWJv
cnRlZCk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvID0geyAi
RE9NR2xvYmFsT2JqZWN0IiwgJkpTR2xvYmFsT2JqZWN0OjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01HbG9iYWxPYmplY3QpIH07CiAKQEAgLTgwLDcg
KzgwLDcgQEAgdm9pZCBKU0RPTUdsb2JhbE9iamVjdDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAg
ICAgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihjZWxsKS0+SlNET01HbG9iYWxPYmpl
Y3Q6On5KU0RPTUdsb2JhbE9iamVjdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1ha2VUaGlzVHlwZUVycm9yRm9yQnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFr
ZVRoaXNUeXBlRXJyb3JGb3JCdWlsdGlucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBB
U1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPT0gMik7CkBAIC05NCw3ICs5NCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZVRoaXNUeXBlRXJyb3JGb3JCdWlsdGlu
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVh
dGVUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJm
YWNlTmFtZS51dGY4KCkuZGF0YSgpLCBmdW5jdGlvbk5hbWUudXRmOCgpLmRhdGEoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlR2V0dGVyVHlwZUVycm9yRm9yQnVp
bHRpbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5z
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIEFTU0VSVChjYWxsRnJhbWUpOwogICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50
Q291bnQoKSA9PSAyKTsKQEAgLTExMSw3ICsxMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0dsb2JhbE9iamVjdCogZ2xv
YgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXJyb3IpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1ha2VET01FeGNlcHRpb25Gb3JCdWlsdGlucyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYWtlRE9NRXhjZXB0aW9uRm9yQnVpbHRpbnMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFt
ZSk7CiAgICAgQVNTRVJUKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID09IDIpOwpAQCAtMTM1
LDE3ICsxMzUsMTcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlRE9NRXhjZXB0
aW9uRm9yQnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc1Jl
YWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGlzUmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZCwg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc0Jvb2xlYW4oUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5y
ZWFkYWJsZUJ5dGVTdHJlYW1BUElFbmFibGVkKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBpc1dyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaXNXcml0YWJsZVN0cmVhbUFQSUVu
YWJsZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkud3JpdGFibGVTdHJlYW1BUElFbmFibGVkKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCB3aGVuU2lnbmFsQWJvcnRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3aGVu
U2lnbmFsQWJvcnRlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBBU1NFUlQoY2FsbEZy
YW1lLT5hcmd1bWVudENvdW50KCkgPT0gMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUl0ZXJhdG9yLmgKaW5kZXggOWUxYjVjMDA4ZjQ0ZjlhYTEyMzFhYjU4ZmZiOTYyNDljOTcz
NWE4Ni4uYjFkMjdkNDViYzkwMmVjZTU2NWE2MzIwOGQ4NTY3MGMxNjg3MTc0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaApAQCAtNzMsNyArNzMsNyBAQCB0
ZW1wbGF0ZTx0eXBlbmFtZSBKU1dyYXBwZXIsIHR5cGVuYW1lIEl0ZXJhdG9yVHJhaXRzPiBjbGFz
cyBKU0RPTUl0ZXJhdG9yUHJvdG90eQogICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CiAgICAgfQogCi0gICAgc3RhdGljIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBuZXh0KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTExfQVRUUklCVVRFUyBuZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwogCiBwcml2YXRlOgogICAgIEpTRE9NSXRlcmF0b3JQcm90b3R5cGUoSlNDOjpWTSYg
dm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogQmFzZSh2bSwgc3RydWN0dXJlKSB7IH0K
QEAgLTI0Niw3ICsyNDYsNyBAQCBKU0M6OkpTVmFsdWUgSlNET01JdGVyYXRvckJhc2U8SlNXcmFw
cGVyLCBJdGVyYXRvclRyYWl0cz46Om5leHQoSlNDOjpKU0dsb2JhbE9iagogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBKU1dyYXBwZXIsIHR5cGVuYW1lIEl0ZXJhdG9yVHJhaXRzPgotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRE9NSXRlcmF0b3JQcm90b3R5cGU8SlNXcmFwcGVy
LCBJdGVyYXRvclRyYWl0cz46Om5leHQoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMX0FUVFJJQlVURVMgSlNET01JdGVyYXRvclByb3RvdHlwZTxKU1dyYXBwZXIsIEl0ZXJh
dG9yVHJhaXRzPjo6bmV4dChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTGVnYWN5RmFjdG9yeUZ1bmN0
aW9uLmgKaW5kZXggYmM5ODg2NDA3YzkwOGEyYmNlM2E2MzQzMTA3Njc0MDYzMGM1YWM5NS4uNzgz
MWJmMjg5ZWY2ODQ1OWU3M2YyZjM5NTAzOTFlOGIzOGMxYjkyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUxlZ2FjeUZhY3RvcnlGdW5jdGlvbi5oCkBA
IC00OCw3ICs0OCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGNsYXNzIEpTRE9NTGVn
YWN5RmFjdG9yeUZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRE9NCiAgICAgLy8gVXN1YWxseSBk
ZWZpbmVkIGZvciBlYWNoIHNwZWNpYWxpemF0aW9uIGNsYXNzLgogICAgIHZvaWQgaW5pdGlhbGl6
ZVByb3BlcnRpZXMoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0JikgeyB9CiAgICAgLy8gTXVz
dCBiZSBkZWZpbmVkIGZvciBlYWNoIHNwZWNpYWxpemF0aW9uIGNsYXNzLgotICAgIHN0YXRpYyBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBpbmxp
bmUgSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb248SlNDbGFzcz4qIEpTRE9NTGVnYWN5RmFjdG9y
eUZ1bmN0aW9uPEpTQ2xhc3M+OjpjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggNzVhYjI1OWZm
ZmZjZDlhYTQ2OWNlOGZhYTAzNjAyYjAxNmEyOWZiNy4uYzAyMWE1Y2NjMDhhNjlmNWNmOWNiMWMw
NGMzODg0Y2VhYWJhM2IxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtNjMsOCArNjMsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25TaG93TW9kYWxEaWFsb2coSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNET01XaW5kb3dJ
bnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblNo
b3dNb2RhbERpYWxvZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzRE9NV2luZG93SW5z
dGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZSk7CiAKIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRk
aXRpb25hbENoaWxkcmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewpAQCAtODAsNyArODAsNyBA
QCB2b2lkIEpTRE9NV2luZG93Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihTbG90VmlzaXRvciYg
dmlzaXRvcikKIH0KIAogI2lmIEVOQUJMRShVU0VSX01FU1NBR0VfSEFORExFUlMpCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dXZWJLaXQoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgSlNET01XaW5kb3cqIGNhc3RlZFRoaXMgPSB0b0pTRE9NV2luZG93KHZtLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CkBAIC02MzMsNyArNjMzLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNET01XaW5kb3cqIElETE9wZXJhdGlvbjxKU0RPTVdpbmRvdz46OmNhc3QoSlNHbG9iYWxP
YmplY3QmIGwKICAgICByZXR1cm4gdG9KU0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LnZt
KCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKS50b1RoaXMoJmxleGljYWxHbG9iYWxPYmplY3QsIEpT
Qzo6RUNNQU1vZGU6OnNsb3BweSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTRE9NV2luZG93Pjo6Y2FsbDxqc0RPTVdpbmRvd0luc3RhbmNlRnVu
Y3Rpb25PcGVuRGF0YWJhc2VCb2R5PigqZ2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3BlbkRh
dGFiYXNlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAppbmRleCAyMTE0ODcxN2MzNTM4MTg0ZWJmOTE1YmJk
MzRhOGIyYzFkZjc3ZDhjLi5mN2FiZjQyOTQzMTNhNTNkMTk5MWZmMWEwMzEyYTc3OWYyYmJkYTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxl
bWVudEZ1bmN0aW9ucy5jcHAKQEAgLTM1LDYgKzM1LDggQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxO
YW1lczsKIAogLy8gSmF2YVNjcmlwdCBhY2Nlc3MgdG8gcGx1Zy1pbi1leHBvcnRlZCBwcm9wZXJ0
aWVzIGZvciBKU0hUTUxBcHBsZXRFbGVtZW50LCBKU0hUTUxFbWJlZEVsZW1lbnQgYW5kIEpTSFRN
TE9iamVjdEVsZW1lbnQuCiAKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxQ
bHVnaW4pOworCiBJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmIGVsZW1lbnQp
CiB7CiAgICAgLy8gVGhlIHBsdWdpbiBlbGVtZW50IGhvbGRzIGFuIG93bmluZyByZWZlcmVuY2Us
IHNvIHdlIGRvbid0IGhhdmUgdG8uCkBAIC0xNDYsNyArMTQ4LDcgQEAgYm9vbCBwbHVnaW5FbGVt
ZW50Q3VzdG9tUHV0KEpTSFRNTEVsZW1lbnQqIGVsZW1lbnQsIEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFBsdWdpbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFBs
dWdpbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgSlNIVE1MRWxlbWVudCogZWxlbWVudCA9IGpzQ2FzdDxKU0hUTUxF
bGVtZW50Kj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAKaW5kZXggOTg1YjNkYjBkM2YxNjEwMDBmMWZh
ZDliNDMyOTc4ZTU0NjIzYWQ2My4uOTQ4NTU5Y2QzOTdjMGExMjA5ZDRlMTY5YzMwMDVjY2UwMjQz
MDliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENs
b25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUu
Y3BwCkBAIC02MiwxNyArNjIsMTcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNsb25lQXJyYXlC
dWZmZXJJbXBsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUJ1ZmZlcjo6Y3JlYXRlKGxleGljYWxHbG9iYWxPYmpl
Y3QtPnZtKCksIGxleGljYWxHbG9iYWxPYmplY3QtPmFycmF5QnVmZmVyU3RydWN0dXJlKEFycmF5
QnVmZmVyU2hhcmluZ01vZGU6OkRlZmF1bHQpLCBBcnJheUJ1ZmZlcjo6dHJ5Q3JlYXRlKGJ1ZmZl
ci0+ZGF0YSgpLCBidWZmZXItPmJ5dGVMZW5ndGgoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjbG9uZUFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNsb25l
QXJyYXlCdWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNsb25lQXJyYXlCdWZmZXJJbXBsKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBDbG9uZU1vZGU6OlBhcnRpYWwpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjbG9uZUFycmF5QnVm
ZmVySW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQ2xvbmVNb2RlOjpGdWxsKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlclZp
ZXcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIEFTU0VSVChjYWxsRnJhbWUpOwogICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50Q291
bnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVk
Q2xvbmUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oCmlu
ZGV4IGQwMDM2NzM2MzIzNGM5Y2EwMzZiOTAxNjljZjY5Yzk0MTlmNjFkODIuLjc2NzExYjAxNDc5
NWIzYjJlNTQ4ZGJlMmM5MmQ5MjAyZDY1YTZhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oCkBAIC0zNCw4ICszNCw4IEBAIHVzaW5nIEVuY29kZWRK
U1ZhbHVlID0gaW50NjRfdDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2xvbmVBcnJheUJ1ZmZlcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJ1Y3R1cmVkQ2xv
bmVBcnJheUJ1ZmZlclZpZXcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNsb25lQXJyYXlCdWZmZXIpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlcik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyVmlldyk7CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYjExNzRiODljMWJiMWY3MTkyMzljYjUzZmRjNmRi
NjE1NDQ3NWNlYS4uZTc0MmNlYWYyZjhjYzM5ZTY4YjE4MjMzNTdiNWY1YzNmODVlMjViOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTMyNTQsNyArMzI1NCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAg
bXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvbmRpdGlvbmFsQXR0cmlidXRlID8gJGNvZGVHZW5l
cmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRp
dGlvbmFsQXR0cmlidXRlKSA6IHVuZGVmOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwog
ICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNl
LCAkY2xhc3NOYW1lLCAkb3BlcmF0aW9uKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtmdW5jdGlvbk5hbWV9KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTigke2Z1bmN0aW9u
TmFtZX0pO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmXG4i
KSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIH0KIApAQCAtMzI3MCwxMCArMzI3MCwx
MCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmlu
ZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUp
OwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3Ry
aW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9
IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSk7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1
ZSAke2dldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IkpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2dldHRlcn0oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOwog
ICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAgICAg
ICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNz
TmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
ImJvb2wgJHtzZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJib29sIEpJVF9PUEVSQVRJT04gJHtzZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICB9CkBAIC00MjYyLDcgKzQyNjIsNyBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvbmRpdGlvbmFsQXR0cmlidXRlID8gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29u
ZGl0aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRlVmFsdWUoJGNvbmRpdGlvbmFsQXR0cmlidXRlKSA6
IHVuZGVmOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRpb25h
bFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRmdW5j
dGlvbk5hbWUgPSBHZXRGdW5jdGlvbk5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJh
dGlvbik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFtZX0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTigke2Z1bmN0aW9uTmFtZX0pO1xuIik7CiAgICAgICAgICAg
ICBpZiAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RE9NSklUfSkgewogICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkRPTUpJVElETFR5cGUuaCJ9ID0gMTsKICAgICAgICAg
ICAgICAgICBteSAkbmFtZU9mRnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrID0gJGNvZGVHZW5lcmF0
b3ItPldLX2xjZmlyc3QoJGZ1bmN0aW9uTmFtZSkgLiAiV2l0aG91dFR5cGVDaGVjayI7CkBAIC00
Mjg2LDEwICs0Mjg2LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAg
aWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICAgICAg
bXkgJGNvbnN0cnVjdG9yR2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVj
dG9yIjsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1
ZSAke2NvbnN0cnVjdG9yR2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2NvbnN0cnVjdG9y
R2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpO1xuIik7CiAKICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclNldHRlciA9
ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjb25zdHJ1Y3RvclNldHRlcn0oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke2Nv
bnN0cnVjdG9yU2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvcmVh
Y2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewpAQCAtNDI5OSw3
ICs0Mjk5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRj
b25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3Ry
aW5nKCRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtj
b25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAg
IG15ICRnZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05h
bWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVu
Y29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2dldHRlcn0oSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAg
ICAgICAgICAgICAgbXkgJHJlYWRXcml0ZUNvbmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWxseVJlYWRXcml0ZX07CiAgICAgICAgICAgICAgICAg
aWYgKCRyZWFkV3JpdGVDb25kaXRpb25hbCkgewpAQCAtNDMwNyw3ICs0MzA3LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIjaWYgJHtyZWFkV3JpdGVDb25kaXRpb25hbFN0cmluZ31cbiIpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFt
ZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtzZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOworICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBKSVRfT1BFUkFUSU9OICR7c2V0dGVyfShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxu
IikgaWYgJHJlYWRXcml0ZUNvbmRpdGlvbmFsOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAg
LTQ4NzAsNyArNDg3MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgaWYgKE5l
ZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkY29uc3Ry
dWN0b3JHZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0g
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3Rvckdl
dHRlcn0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2NvbnN0cnVjdG9yR2V0dGVyfShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTtcbiIpOwpAQCAtNDg5MCw3
ICs0ODkwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICBteSAkY29u
c3RydWN0b3JTZXR0ZXIgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3Ii
OwogCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NvbnN0cnVjdG9yU2V0dGVy
fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJib29sIEpJVF9PUEVSQVRJT04gJHtjb25zdHJ1Y3RvclNldHRlcn0oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
XG4iKTsKQEAgLTUzMzgsNyArNTMzOCw3IEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRy
YW1wb2xpbmVEZWZpbml0aW9uCiAgICAgICAgIHB1c2goQHRlbXBsYXRlUGFyYW1ldGVycywgIkNh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQiKTsKICAgICB9CiAgICAgCi0gICAgcHVzaChA
JG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUgJHthdHRyaWJ1dGVHZXR0ZXJOYW1lfShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OICR7YXR0cmlidXRlR2V0dGVyTmFtZX0oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHJldHVybiBJRExBdHRyaWJ1dGU8JHtjbGFzc05hbWV9Pjo6JHtjYWxs
QXR0cmlidXRlR2V0dGVyTmFtZX08IiAuIGpvaW4oIiwgIiwgQHRlbXBsYXRlUGFyYW1ldGVycykg
LiAiPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBcIiIgLiAkYXR0cmlidXRlLT5u
YW1lIC4gICJcIik7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwpAQCAt
NTUyNyw3ICs1NTI3LDcgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyVHJhbXBvbGluZURl
ZmluaXRpb24KICAgICBwdXNoKEB0ZW1wbGF0ZVBhcmFtZXRlcnMsICRhdHRyaWJ1dGVTZXR0ZXJC
b2R5TmFtZSk7CiAgICAgcHVzaChAdGVtcGxhdGVQYXJhbWV0ZXJzLCAiQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OlJldHVybkVhcmx5IikgaWYgJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57TGVnYWN5TGVuaWVudFRoaXN9OwogICAgIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJv
b2wgJHthdHRyaWJ1dGVTZXR0ZXJOYW1lfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sIEpJVF9PUEVSQVRJT04gJHth
dHRyaWJ1dGVTZXR0ZXJOYW1lfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4i
KTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcmV0dXJuIElETEF0dHJpYnV0ZTwke2NsYXNzTmFtZX0+Ojoke2NhbGxBdHRyaWJ1
dGVTZXR0ZXJOYW1lfTwiIC4gam9pbigiLCAiLCBAdGVtcGxhdGVQYXJhbWV0ZXJzKSAuICI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgXCIiIC4gJGF0dHJp
YnV0ZS0+bmFtZSAuICJcIik7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIp
OwpAQCAtNTU3OCw3ICs1NTc4LDcgQEAgc3ViIEdlbmVyYXRlT3BlcmF0aW9uVHJhbXBvbGluZURl
ZmluaXRpb24KICAgICBwdXNoKEBjYWxsRnVuY3Rpb25UZW1wbGF0ZUFyZ3VtZW50cywgJGZ1bmN0
aW9uQm9keU5hbWUpOwogICAgIHB1c2goQGNhbGxGdW5jdGlvblRlbXBsYXRlQXJndW1lbnRzLCAi
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydCIpIGlmICgkb3BlcmF0aW9uLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntQcml2YXRlSWRlbnRpZmllcn0gYW5kIG5vdCAkb3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntQdWJsaWNJZGVudGlmaWVyfSk7CiAKLSAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oJHtm
dW5jdGlvbk5hbWV9LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSlcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwog
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gJHtpZGxPcGVyYXRpb25UeXBlfTwk
e2NsYXNzTmFtZX0+Ojoke2NhbGxGdW5jdGlvbk5hbWV9PCIgLiBqb2luKCIsICIsIEBjYWxsRnVu
Y3Rpb25UZW1wbGF0ZUFyZ3VtZW50cykgLiAiPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgXCIiIC4gJG9wZXJhdGlvbi0+bmFtZSAuICJcIik7XG4iKTsKICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJ9XG5cbiIpOwpAQCAtNTg3OSw3ICs1ODc5LDcgQEAgc3ViIEdlbmVyYXRlRGVm
YXVsdFRvSlNPTk9wZXJhdGlvbkRlZmluaXRpb24KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJc
biIpOwogCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwot
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtm
dW5jdGlvbk5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTigke2Z1bmN0aW9uTmFtZX0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKVxuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBJRExP
cGVyYXRpb248SlMke2ludGVyZmFjZU5hbWV9Pjo6Y2FsbDwke2Z1bmN0aW9uTmFtZX1Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgXCJ0b0pTT05cIik7XG4iKTsKICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJ9XG4iKTsKQEAgLTU5MjcsNyArNTkyNyw3IEBAIHN1YiBHZW5l
cmF0ZUxlZ2FjeUNhbGxlckRlZmluaXRpb25zCiAKICAgICAgICAgbXkgJG92ZXJsb2FkRnVuY3Rp
b25QcmVmaXggPSAiY2FsbCR7Y2xhc3NOYW1lfSI7CiAKLSAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke292ZXJsb2FkRnVuY3Rpb25QcmVm
aXh9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oJHtvdmVybG9hZEZ1bmN0aW9uUHJlZml4fSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpXG4iKTsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpO1xuIik7CiAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTtcbiIpOwpAQCAtNTk1OCw3ICs1OTU4LDggQEAgc3ViIEdlbmVyYXRlTGVnYWN5Q2FsbGVy
RGVmaW5pdGlvbgogICAgIGlmICgkaXNPdmVybG9hZGVkKSB7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgInN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY2FsbCR7Y2xhc3NOYW1lfSRv
cGVyYXRpb24tPntvdmVybG9hZEluZGV4fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKICAgICB9IGVsc2UgewotICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsJHtjbGFzc05hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsJHtjbGFzc05hbWV9KTtcbiIpOworICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbCR7
Y2xhc3NOYW1lfSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpXG4iKTsKICAgICB9CiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7
XG4iKTsKQEAgLTY4NjYsNiArNjg2Nyw3IEBAIHN1YiBHZW5lcmF0ZUl0ZXJhYmxlRGVmaW5pdGlv
bgogfTsKIAogdXNpbmcgJHtpdGVyYXRvclByb3RvdHlwZU5hbWV9ID0gSlNET01JdGVyYXRvclBy
b3RvdHlwZTwke2NsYXNzTmFtZX0sICR7aXRlcmF0b3JUcmFpdHNOYW1lfT47CitKU0NfQU5OT1RB
VEVfSE9TVF9GVU5DVElPTigke2l0ZXJhdG9yUHJvdG90eXBlTmFtZX1OZXh0LCAke2l0ZXJhdG9y
UHJvdG90eXBlTmFtZX06Om5leHQpOwogCiB0ZW1wbGF0ZTw+CiBjb25zdCBKU0M6OkNsYXNzSW5m
byAke2l0ZXJhdG9yTmFtZX1CYXNlOjpzX2luZm8gPSB7ICIke3Zpc2libGVJbnRlcmZhY2VOYW1l
fSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoJHtpdGVyYXRvck5hbWV9QmFzZSkgfTsKQEAgLTY5MDYsNyArNjkwOCw3IEBAIEVO
RAogICAgICAgICB9CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICA8PEVORCk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtmdW5jdGlvbk5hbWV9KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oJHtmdW5jdGlvbk5hbWV9LCAoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjwke2NsYXNzTmFtZX0+OjpjYWxsPCR7ZnVuY3Rp
b25OYW1lfUNhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICIke3Byb3Bl
cnR5TmFtZX0iKTsKIH0KQEAgLTc2OTgsNyArNzcwMCw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbnMKIAogICAgICAgICAgICAgbXkgJG92ZXJsb2FkRnVuY3Rpb25QcmVmaXgg
PSAiY29uc3RydWN0JHtjbGFzc05hbWV9IjsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtjbGFzc05hbWV9
Q29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAidGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMg
JHtjbGFzc05hbWV9Q29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpO1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTtcbiIpOwpAQCAtNzcwNiw3ICs3NzA4LDggQEAgc3ViIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWZpbml0aW9ucwogCiAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkRGlzcGF0Y2hl
cihAeyRpbnRlcmZhY2UtPmNvbnN0cnVjdG9yc31bMF0sICRpbnRlcmZhY2UsICRvdmVybG9hZEZ1
bmN0aW9uUHJlZml4LCAiIiwgImxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSIpOwogCi0g
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIn1cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJK
U0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTigke2NsYXNzTmFtZX1Db25zdHJ1Y3RvckNvbnN0cnVj
dCwgJHtjbGFzc05hbWV9Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk7XG5cbiIpOwogICAgICAgICB9
IGVsc2lmIChAY29uc3RydWN0b3JzID09IDEpIHsKICAgICAgICAgICAgIEdlbmVyYXRlQ29uc3Ry
dWN0b3JEZWZpbml0aW9uKCRvdXRwdXRBcnJheSwgJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1l
LCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZhY2UsICRnZW5lcmF0aW5nTGVnYWN5RmFj
dG9yeUZ1bmN0aW9uLCAkY29uc3RydWN0b3JzWzBdKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTc3
MjgsMTcgKzc3MzEsMTggQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAKICAg
ICBpZiAoSXNDb25zdHJ1Y3RhYmxlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIGlmIChIYXNDdXN0
b21Db25zdHJ1Y3RvcigkaW50ZXJmYWNlKSkgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAidGVtcGxhdGU8PiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtjb25z
dHJ1Y3RvckNsYXNzTmFtZX06OmNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ0ZW1wbGF0ZTw+IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTF9BVFRSSUJVVEVTICR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3Qo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUq
IGNhbGxGcmFtZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUKGNhbGxGcmFtZSk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gY29uc3Ry
dWN0JHtjbGFzc05hbWV9KGxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpO1xuIik7Ci0g
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAifVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IkpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Q29uc3Ry
dWN0LCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0KTtcblxuIik7CiAgICAgICAg
ICB9IGVsc2lmICghSGFzQ3VzdG9tQ29uc3RydWN0b3IoJGludGVyZmFjZSkgJiYgKCEkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lGYWN0b3J5RnVuY3Rpb259IHx8ICRnZW5l
cmF0aW5nTGVnYWN5RmFjdG9yeUZ1bmN0aW9uKSkgewogICAgICAgICAgICAgbXkgJGlzT3Zlcmxv
YWRlZCA9ICRvcGVyYXRpb24tPntvdmVybG9hZHN9ICYmIEB7JG9wZXJhdGlvbi0+e292ZXJsb2Fk
c319ID4gMTsKICAgICAgICAgICAgIGlmICgkaXNPdmVybG9hZGVkKSB7CiAgICAgICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAic3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25z
dHJ1Y3Qke2NsYXNzTmFtZX0kb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CiAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInRl
bXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfTo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgInRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwpAQCAtNzc4Myw3ICs3Nzg3
LDExIEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHNldFN1YmNsYXNzU3RydWN0dXJlSWZOZWVkZWQ8JHtpbXBs
VHlwZX0+KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXNPYmplY3QoanNWYWx1ZSkp
O1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCB7IH0pO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTtcbiIpOwotICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIn1cbiIpOworICAgICAgICAgICAgaWYgKCEkaXNPdmVybG9hZGVkKSB7Cisg
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiSlNDX0FOTk9UQVRFX0hPU1RfRlVO
Q1RJT04oJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1Db25zdHJ1Y3QsICR7Y29uc3RydWN0b3JDbGFz
c05hbWV9Ojpjb25zdHJ1Y3QpO1xuIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJcbiIpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5jcHAK
aW5kZXggNjdhNGM2NTBhODRhOGQ0NjA5NDA1YmY1ZmRjZDVkYWY2ZGI1YmY0MC4uYmVlMzY4NTgx
MjljYmQyYzA0MDY3MGZlMGQ2ODYwZjdiYzM2YzYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNET01XaW5kb3cuY3BwCkBAIC01MSwy
MCArNTEsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNE
T01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2lu
ZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNE
T01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNE
T01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2lu
ZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3RPYmplY3RD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdE9i
amVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNET01XaW5kb3dDb25zdHJ1Y3RvciA9IEpT
RE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTRE9NV2luZG93PjsKIApAQCAtMTY2LDcg
KzE2Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTRE9NV2luZG93KiBJRExBdHRyaWJ1dGU8SlNE
T01XaW5kb3c+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNET01XaW5kb3cqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNET01XaW5kb3c6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk1LDcgKzE5
NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIEpTRXhwb3NlZFRvV29y
a2VyQW5kV2luZG93OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
d0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiRXhw
b3NlZFRvV29ya2VyQW5kV2luZG93Iik7CiB9CkBAIC0yMDcsNyArMjA3LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3JTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiRXhw
b3NlZFRvV29ya2VyQW5kV2luZG93IiksIHN0cmxlbigiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKIH0KQEAg
LTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yR2V0dGVyKEpTRwogICAgIHJldHVybiBKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RP
TVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKTsKIH0KQEAgLTIzMCw3
ICsyMzAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yU2V0dGVyKEpTRwogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpLCBzdHJsZW4oIlRl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNET01X
aW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+Ojpz
ZXQ8c2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpOwogfQpAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRDb25zdHJ1Y3RvckdlCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
ICZ0aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQi
KTsKIH0KQEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5k
b3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JTZQogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIp
KSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RP
TVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIEpTVGVzdE5vZGU6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdE5v
ZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Tm9kZSIpOwogfQpAQCAt
Mjc2LDcgKzI3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3ROb2Rl
Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROb2RlIiksIHN0cmxlbigiVGVzdE5vZGUiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9N
V2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RP
TVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROb2RlIik7CiB9CkBAIC0yODcsNyArMjg3LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9y
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICByZXR1cm4gSlNUZXN0T2JqOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93
VGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdE9iamVjdENvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVj
dCIpOwogfQpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdp
bmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RPYmplY3QiKSwgc3RybGVuKCJU
ZXN0T2JqZWN0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9N
V2luZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0T2JqZWN0
Iik7CiB9CkBAIC0zMTAsNyArMzEwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2lu
ZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyKEpTR2wKICAgICBy
ZXR1cm4gSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQpAQCAt
MzIyLDcgKzMyMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvclNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKSwgc3RybGVu
KCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNE
T01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6
c2V0PHNldEpTRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggZmFkM2QyN2ZmZWZiYTAxY2E2NDE5ZjIzMDQwMGJiMWU0
NzEwNTI0Ni4uZjIyNDA0ZjkzZDY2Mzk0ZDZhYmIwYzg1Y2ZiZmQ2NzdhNTgzMzE1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQs
OCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNEZWRpY2F0ZWRX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGU8SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT47CiAKQEAgLTEwNiw3ICsxMDYsNyBA
QCBKU1ZhbHVlIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZN
JiB2bSwgY29uc3QgSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxK
U0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExNiw3ICsxMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvdy5jcHAKaW5kZXggMGI4M2ZiNjUzZTg5NGRjYzViMWFkY2Y3YTk1OTFjNDdkMmYw
MDg3My4uNTg5ZjZjMDA4NzBmMmM1Y2ExNWY5MzMwMGE4MWJlZGYwYjE4OWMyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRXhwb3NlZFRvV29y
a2VyQW5kV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCkBAIC04NywxMiArODcsMTIgQEAg
SlNDOjpKU09iamVjdCogY29udmVydERpY3Rpb25hcnlUb0pTKEpTQzo6SlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEoKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1
bmN0aW9uRG9Tb21ldGhpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJv
dG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTEyOCw3ICsxMjgsNyBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9T
SEFSQUJMRShKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZSwgSlNFeHBvcwogCiB1
c2luZyBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1
Y3RvcjxKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdz47CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FU
VFJJQlVURVMgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQzLDYgKzE0Myw3IEBA
IHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0NvbnN0cnVjdG9yOjpjCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9CitKU0Nf
QU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yQ29uc3RydWN0LCBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dD
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjE4LDcgKzIxOSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93KiBJRExPcGVyYXRpb248SlNF
eHBvc2VkVG9Xb3JrZXJBbmRXCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3cqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZy
YW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yMjgsNyArMjI5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI1MSw3ICsyNTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvUwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExEaWN0aW9uYXJ5
PEV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdzo6RGljdD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwuZG9Tb21ldGhpbmcoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1By
b3RvdHlwZUZ1bmN0aW9uRG9Tb21ldGhpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdz46
OmNhbGw8anNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRo
aW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkb1NvbWV0aGluZyIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTTWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNNYXBMaWtlLmNwcAppbmRleCAzY2M3MzgwN2QyMjFiZGIzZjU1ODRiNzgyN2FkOWMwMWJjOGI2
MGJmLi4xN2FjMDBjNzgyYjNjODM2ZjY1OWU4MGQ5MmNmMWVkN2U1NTE1MWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNw
cApAQCAtNTAsMTUgKzUwLDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9u
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25HZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25I
YXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkRlbGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25TZXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTIz
OCw3ICsyMzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25HZXRCb2R5KEpTQzo6SlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRHZXRU
b01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBX
VEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU01hcExpa2U+OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXQiKTsKIH0KQEAgLTI1Nyw3ICsyNTcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25IYXNCb2R5KEpTQzo6SlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb01hcExpa2Uo
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtl
eSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExp
a2U+OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzQm9keShKU0M6OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVu
dHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI4NSw3ICsyODUsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
Qm9keShKU0M6OkpTR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9NYXBMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImtleXMiKTsKIH0KQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5KEpTQzo6SlNHbAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmRWYWx1ZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlv
blZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7
CiB9CkBAIC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOjpKU0cKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihm
b3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
KmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+OjpjYWxsPGpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiZm9yRWFjaCIpOwogfQpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldEJvZHkoSlNDOjpK
U0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZFNldFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uU2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+Ojpj
YWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0Qm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJzZXQiKTsKIH0KQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJv
ZHkoSlNDOjpKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25DbGVhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+
OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7CiB9CkBAIC0zNzUsNyArMzc1LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlQm9keShKU0M6OkpTR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRGVsZXRlVG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkRlbGV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25EZWxldGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNNYXBM
aWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWlu
dFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKaW5kZXggNjI1YWRiYzI3NDVkYTM5ZmU5M2ZjOGZkZjAw
ODhmOTUyOWE2NWNjOS4uOThiNTM2NGZkMmJmYmU3MzQ1OWJmMmNiYmI1OTcwMmQ3NWQ5ZTAzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFp
bnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQs
OCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNQYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNQYWludFdv
cmtsZXRHbG9iYWxTY29wZT47CiAKQEAgLTEwNiw3ICsxMDYsNyBAQCBKU1ZhbHVlIEpTUGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxP
YmplY3QqCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTUGFpbnRXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNQYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE2
LDcgKzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1BhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1h
cExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVh
ZE9ubHlNYXBMaWtlLmNwcAppbmRleCA0NDZiYTM5MDdmNzlmOWM5OTg1NDJjODg5MTc1MmRmOTI3
YWFmZDBlLi44ZjBlNGY5ODljZDhjNGNlMGJiZTZhZWI5NzI4ZGIxZmI1NjVkNWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1h
cExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1JlYWRPbmx5TWFwTGlrZS5jcHAKQEAgLTUwLDEyICs1MCwxMiBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOworSlNDOjpKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMp
OworSlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Jl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0M6OkpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitK
U0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTIzMiw3ICsyMzIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldEJvZHkoSlNDOgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRHZXRUb01hcExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldCIpOwog
fQpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keShKU0M6CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzQm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5
TWFwTGlrZT46OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAg
LTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRL
ZXlzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhp
cykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzUmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
a2V5cyIpOwogfQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seU1hcExpa2U+OjpjYWxsPGpz
UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMzEyLDcgKzMxMiw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHkoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb01hcExpa2UoKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxi
YWNrKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHAKaW5kZXgg
ZWM0NDRmNTZkZjU5ZjJlZjlhYjgyNWE2NzJjNzE2NTU5NTBkN2Y0MC4uZjVjOTEyZmIyZTJkNWIw
MGQ1ZDA5YjkxM2ZmZjU3NTRhZGE1MGEyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuY3BwCkBA
IC01MCwxMSArNTAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDOjpKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsK
K0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1JlYWRP
bmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMKIApA
QCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Jl
YWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keShKU0M6CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2Fy
ZEhhc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRo
aXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzQm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0
TGlrZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI1
OCw3ICsyNTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlz
VG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5
cyIpOwogfQpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFu
eT4oZm9yd2FyZFZhbHVlc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seVNldExpa2U+OjpjYWxsPGpzUmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaEJvZHkoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNr
KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZm9yRWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5jcHAKaW5kZXggNDQ0YzZhM2RjYzk0YjAwNjkxMGMzOTA3Y2I1Y2UzZDBiZGFmMjQ0My4u
YmY0MjIxNmI0MWFmYjhkZThmZTE0Y2VhYjhmM2RhYThmZDk4N2QyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlPjsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3Qq
CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFs
T2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE2LDcg
KzExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXRMaWtlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3Bw
CmluZGV4IGFhNmYwODgyM2FmZDE5ZDdmMmM0M2U2ODk1NjI4ZDA1NDgwYjRkMTAuLmVlN2Y4ZWU5
YTRjYTNhZGJlMTY5YjAxYTcyMjRjOGQ1ZTUzOWJkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExpa2UuY3BwCkBAIC01MCwxNCAr
NTAsMTQgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExp
a2VQcm90b3R5cGVGdW5jdGlvbkFkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDOjpK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTsK
K0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMpOworSlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uS2V5cyk7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CitKU0M6OkpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOworSlNDOjpKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOwor
SlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9k
eShKU0M6OkpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkhh
cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25I
YXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1Nl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiaGFzIik7CiB9CkBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHkoSlND
OjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJlbnRyaWVzIik7CiB9CkBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKU0ds
b2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMQW55Pihmb3J3YXJkS2V5c1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBA
IC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzU2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2wKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJk
VmFsdWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVk
VGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMjk3LDcg
KzI5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hU
b1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBX
VEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2gi
KTsKIH0KQEAgLTMxNiw3ICszMTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5KEpTQzo6SlNHbG9iYQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+
KGZvcndhcmRBZGRUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
QWRkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJhZGQiKTsKIH0KQEAg
LTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHkoSlNDOjpKU0dsbwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7
CiB9CkBAIC0zNTEsNyArMzUxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keShKU0M6OkpTR2wKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihm
b3J3YXJkRGVsZXRlVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAq
Y2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVs
ZXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDZkZmM0MmZm
ZGNmNDg0NDMzMWFlOTVkYjk3NDE3OTNjYzljZDc2NjMuLjQ0MzcyOThhMTgxYThmZmRkNTgxY2U5
OGE2ZjUwODY3NjI0OWJmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBA
IC01Miw5ICs1Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJv
dG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFj
dGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDOjpKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhj
aXRpbmdGdW5jdGlvbik7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0QWN0
aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSk7CitKU0M6OkpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kKTsKIAogLy8gQXR0cmlidXRlcwogCkBAIC0yNTIsNyArMjUyLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdFBy
b3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2
ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNp
dGluZ0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2
ZURPTU9iamVjdD46OmNhbGw8anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25F
eGNpdGluZ0Z1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJl
eGNpdGluZ0Z1bmN0aW9uIik7CiB9CkBAIC0yNzQsNyArMjc0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
UG9zdE1lc3MKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3Rv
dHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RB
Y3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwb3N0TWVzc2FnZSIpOwogfQpAQCAtMzMzLDcgKzMz
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01P
YmplY3RQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEg
PyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEFjdGl2ZURP
TU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+OjpjYWxsPGpzVGVzdEFjdGl2
ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0
Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9k
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcAppbmRleCA0NjczM2E3ZDVlNzNhYThjNzhk
MmFjOWY0MWY3NjA2YzY4OTg5YTMxLi42NTJmMWY1YTdkOTllNTI2MGFkN2E5NGExNmUwNWQyZTRj
YWMzNjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKQEAgLTUyLDI1ICs1MiwyNSBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9ucyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlv
bnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5l
ZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRl
Tm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhD
RVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENF
UmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRl
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTIsNyArMTkyLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q0VSZWFjdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RD
RVJlYWN0aW9ucz46OmNhc3QoSlNHbG8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RD
RVJlYWN0aW9ucyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUu
dGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q0VS
ZWFjdGlvbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0
aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlcihKU0dsb2JhbE9iCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46
OmdldDxqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwogfQpAQCAtMjQyLDcgKzI0Miw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc1NldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rp
b25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0
PHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnMiKTsKIH0KQEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVy
KEpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RhdHRyaWJ1dGV3aXRo
Y2VyZWFjdGlvbnNBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlv
bnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zUmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnMiKTsKIH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
U2V0dGVyKEpTRwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rp
b25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZs
ZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0
PHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwogfQpAQCAtMjg3LDcgKzI4Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETEludGVyZmFjZTxUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0
cmluZ2lmaWVyQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENF
UmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0ZSIpOwogfQpAQCAtMzEwLDcgKzMxMCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0
cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0ZSIp
OwogfQpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJl
YWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlcihKCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3RO
ZWVkZWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRl
ZFNldHRlcihKCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlv
bnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6
c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJh
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KQEAgLTM1NSw3ICszNTUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zTm90TmVlZGVkRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6
OnJlZmxlY3RhdHRyaWJ1dGV3aXRoY2VyZWFjdGlvbnNub3RuZWVkZWRBdHRyKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KQEAgLTM3NCw3ICszNzQsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENF
UmVhY3Rpb25zTm90TmVlZGVkUwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzg3LDcgKzM4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkR2V0dGVy
KEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVy
ZmFjZTxUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ2lmaWVyQXR0
cmlidXRlTm90TmVlZGVkKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0
cmlidXRlTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJBdHRyaWJ1dGVOb3ROZWVkZWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0
ZU5vdE5lZWRlZCIpOwogfQpAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkU2V0dGVyKEpT
R2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0
dHJpYnV0ZU5vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0
ZU5vdE5lZWRlZCIpOwogfQpAQCAtNDI4LDcgKzQyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aENFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zPjo6Y2FsbDxqc1Rl
c3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQ0VSZWFjdGlvbnMi
KTsKIH0KQEAgLTQ0Niw3ICs0NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRl
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNh
bGw8anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9k
V2l0aENFUmVhY3Rpb25zTm90TmVlZGVkIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllci5jcHAKaW5kZXggZGUxOTRkNDU1MzUzZGNjZDg5NmE4ODM1Mjc3NjQw
NDc3M2EwYzFiZS4uMzA1MWY2MWVkZGRiNWEyNDZkZDFhOWJlNjNhMzk3NjBiZjcwNTFjOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcApAQCAtNDgsMTYg
KzQ4LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclBy
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFs
dWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVl
V2l0aG91dFJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91
dFJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzQsNyArMTc0LDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdENFUmVh
Y3Rpb25zU3QKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlz
VmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4
NCw3ICsxODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjA1LDcgKzIwNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC52YWx1ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyVmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjI0LDcgKzIyNCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OnNldDxzZXRK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlIik7CiB9CkBAIC0yMzcsNyArMjM3
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJW
YWx1ZVdpdGhvdXRSZWFjdGlvbnNHZXR0ZXIoSlMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnZhbHVlV2l0aG91dFJlYWN0aW9ucygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
Pjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnNH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ2YWx1ZVdpdGhvdXRSZWFjdGlvbnMiKTsKIH0KQEAgLTI1Niw3ICsy
NTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
clZhbHVlV2l0aG91dFJlYWN0aW9uc1NldHRlcihKUwogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ2YWx1ZVdpdGhvdXRSZWFjdGlvbnMiKTsKIH0K
QEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnZhbHVlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+OjpjYWxsPGpzVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFj
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxUcmFjZXIuY3BwCmluZGV4IDQwYzM0MzczMDIzNDczN2E5NzZhNzY4NTFjMTg0ZTY2ODYzZDU1
MzAuLjRiNjE2OTI4OGNhZjZhOGI4NzIwMzBmODg0OTBiOWI4Y2FkMDFkYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbFRyYWNlci5jcHAKQEAgLTU2LDI2ICs1NiwyNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlv
blNwZWNpZmllZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVu
Y3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1l
bnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRB
cmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVm
YXVsdFZhcmlhbnRBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvbkludGVyZmFjZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25TcGVjaWZpZWQp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVu
Y3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVs
bGFibGVBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9u
VGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRp
b25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aERlZmF1
bHRWYXJpYW50QXJndW1lbnQpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENhbGxU
cmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxU
cmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJp
YnV0ZVNwZWNpZmllZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRo
VmFyaWFudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0yMTIsNyArMjEyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q2FsbFRy
YWNlciogSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYXN0KEpTR2xvYmEKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDYWxsVHJhY2VyKj4oSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIyMiw3ICsyMjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RDYWxsVHJhY2VyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDUsNyArMjQ1LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlR2V0dGVy
KEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC50ZXN0QXR0
cmlidXRlSW50ZXJmYWNlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2Uo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2Fs
bFRyYWNlcj46OmdldDxqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UiKTsKIH0KQEAgLTI2NSw3ICsyNjUs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJ
bnRlcmZhY2VTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJh
Y2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNl
dEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0QXR0cmlidXRlSW50ZXJm
YWNlIik7CiB9CkBAIC0yODAsNyArMjgwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9vbGVhbj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC50ZXN0QXR0cmlidXRlU3BlY2lmaWVkKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3Bl
Y2lmaWVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OmdldDxqc1Rl
c3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RB
dHRyaWJ1dGVTcGVjaWZpZWQiKTsKIH0KQEAgLTMwMCw3ICszMDAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRTZXR0ZXIoSlNH
bG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNw
ZWNpZmllZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNldEpTVGVzdENhbGxUcmFjZXJU
ZXN0QXR0cmlidXRlU3BlY2lmaWVkU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0QXR0cmlidXRlU3BlY2lmaWVkIik7CiB9CkBAIC0zMTUs
NyArMzE1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0
cmlidXRlV2l0aFZhcmlhbnRHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5pb248SURMQm9vbGVhbiwgSURMRmxvYXQsIElETERP
TVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxU
cmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmli
dXRlV2l0aFZhcmlhbnQiKTsKIH0KQEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudFNldHRlcihKU0ds
b2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENhbGxUcmFjZXJU
ZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0
aFZhcmlhbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQiKTsKIH0KQEAg
LTM0OCw3ICszNDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRl
c3RSZWFkb25seUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RSZWFkb25seUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNl
clRlc3RSZWFkb25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0
UmVhZG9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0UmVhZG9ubHlBdHRyaWJ1dGUi
KTsKIH0KQEAgLTM2Nyw3ICszNjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJh
dGlvbkludGVyZmFjZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbkludGVyZmFjZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uSW50ZXJmYWNlIik7CiB9CkBAIC0z
ODYsNyArMzg2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25TcGVjaWZp
ZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVG
dW5jdGlvblRlc3RPcGVyYXRpb25TcGVjaWZpZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvblNwZWNpZmllZCIpOwogfQpAQCAtNDE2LDcgKzQxNiw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9u
VGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0
aW9uVGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzIik7CiB9CkBAIC00NDAsNyAr
NDQwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVB
cmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3Rv
dHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50LCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVBcmd1bWVudEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhO
dWxsYWJsZUFyZ3VtZW50Iik7CiB9CkBAIC00NjQsNyArNDY0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RP
cGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVG
dW5jdGlvblRlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9u
V2l0aFZhcmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQiKTsKIH0KQEAgLTQ4
OCw3ICs0ODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxs
YWJsZVZhcmlhbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRB
cmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2Vy
Pjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0
aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50Iik7CiB9CkBA
IC01MTAsNyArNTEwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRo
T3B0aW9uYWxWYXJpYW50QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJp
YW50QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRy
YWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlv
bldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudCIpOwog
fQpAQCAtNTMyLDcgKzUzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9u
V2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZh
cmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxs
VHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0
aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCIpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHAKaW5kZXggYmI0M2I1ZTI4NzkyN2Y5NmZmYzVhMTJhOWUwZThiMjUxNDQwZDNjMi4uMzk0
ZTlhNTVjZTdmOWZkZGI5MDMxMmEyN2YyYTk0ODE4ODU1Y2MyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCkBAIC00NSw4ICs0
NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTE1NSw3ICsxNTUsNyBAQCB2b2lkIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
OjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjp+SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3IoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xNjUsNyArMTY1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzLmNwcAppbmRleCAyNmUyYzM4OTVmMWE1ZTZmMjQyYmMzMzVjOTRkOTI3
MDFkMzkyMGE0Li45YjQ1MWIxNmFlMzliZmQzNmY5N2E0N2ZmMTZhNzRiMGNjYzQ1MTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCkBAIC02Myw0OSArNjMsNDkg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIC8vIEZ1bmN0aW9ucwogCiAjaWYgKEVOQUJMRShDb25k
aXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9wZXJhdGlvbik7CiAjZW5kaWYKICNp
ZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNv
bXBsZXhPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5B
QkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAo
RU5BQkxFKENvbmRpdGlvbjExKSAmJiBFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25k
aXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhp
bkNvbmRpdGlvbmFsT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uKTsKICNlbmRpZgogI2lm
IChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxP
cGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5B
QkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1
bHRGaWVsZE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBF
TkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24zMykpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFy
dGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9u
UGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwpOwogI2VuZGlmCiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rl
c3RBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGlu
QXR0cmlidXRlRnJvbVBhcnRpYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBh
cnRpYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKICNlbmRpZgogCiBjbGFzcyBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC00OTAsNyAr
NDkwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyogSURM
T3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHUKICAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTUwMCw3ICs1MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlczo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNTIxLDcgKzUyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC50ZXN0QXR0cigpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzVGVzdEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzVGVzdEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0ciIpOwogfQpAQCAtNTM1LDcgKzUz
NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5SZWFkT25seUF0dHJpYnV0ZUdldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5taXhpblJlYWRPbmx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46Omdl
dDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm1peGluUmVhZE9ubHlBdHRyaWJ1dGUiKTsKIH0KQEAgLTU1MSw3ICs1NTEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwubWl4aW5BdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KQEAgLTU3
Miw3ICs1NzIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXM+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJtaXhpbkF0dHJpYnV0ZSIpOwogfQpAQCAtNTg2LDcgKzU4Niw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iCiAgICAgcmV0dXJuIHRoaXNPYmplY3QubWl4aW5DdXN0b21BdHRyaWJ1dGUobGV4
aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3Rv
bUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmli
dXRlIik7CiB9CkBAIC02MDEsNyArNjAxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcihKU0dsb2IKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6c2V0PHNldEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUi
KTsKIH0KQEAgLTYxNyw3ICs2MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLm1peGluTm9kZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c01peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbk5vZGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTYzOCw3ICs2MzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2Jh
bAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OnNldDxzZXRKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsK
IH0KQEAgLTY1NCw3ICs2NTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsRwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwucGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRp
YWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhp
bkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAicGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwiKTsKIH0KQEAgLTY3NCw3ICs2
NzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5
cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJtaXhpbk9wZXJhdGlvbiIpOwogfQpAQCAtNzAzLDcgKzcwMyw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC5taXhpbkNvbXBsZXhPcGVyYXRpb24oKmNvbnRleHQsIFdURk1vdmUoc3RyQXJnKSwgKm9iakFy
ZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVu
Y3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbXBsZXhPcGVyYXRpb24iKTsKIH0KQEAg
LTcyMCw3ICs3MjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPm1peGluQ3Vz
dG9tT3BlcmF0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJv
dG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0
b21PcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1
bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1peGluQ3VzdG9tT3BlcmF0aW9uIik7CiB9CkBAIC03NDAsNyArNzQwLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbk1peGkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90
b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlv
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5Db25kaXRpb25h
bE9wZXJhdGlvbiIpOwogfQpAQCAtNzYwLDcgKzc2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25N
aXhpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlv
bk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVy
YXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluU2V0dGlu
Z3NDb25kaXRpb25hbE9wZXJhdGlvbiIpOwogfQpAQCAtNzc5LDcgKzc3OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlRnVuY3Rpb25NaXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETFNlcXVlbmNlPElETEludGVyZmFjZTxOb2RlPj4+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUoaW1wbFJl
c3VsdC5ub2RlcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJh
dGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpblJlc3Vs
dEZpZWxkT3BlcmF0aW9uIik7CiB9CkBAIC03OTksNyArNzk5LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvblBhcnQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVu
Y3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9t
UGFydGlhbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicGFydGlhbE1p
eGluT3BlcmF0aW9uRnJvbVBhcnRpYWwiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlLmNwcAppbmRleCA1YTg0NTMyMmRjNGQ4Y2EzYTI5NjE2MzVmMTg4YTM0
YzAzNDY3YzczLi45ZGEwY2MyNjQ4ZjhmNjMwMDYwNWUxOThmMjRkYjA3MmM5YzliZmE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCkBAIC01NCwzNCAr
NTQsMzQgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
ICNpZiBFTkFCTEUoQ09ORElUSU9OKQotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTkRJVElPTjIpCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFu
ZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxB
bmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKENPTkRJ
VElPTikKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5k
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNlbmRpZgotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZVByaXZhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21p
c2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVT
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjc0LDcgKzI3NCw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUqIElETEF0
dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4NCw3ICsyODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBA
IC0zMjQsNyArMzI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXQKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzQw
LDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuY29uZGl0
aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9u
YWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQW5kQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzYyLDcgKzM2Miw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9u
YWxBbmRDb25kaXRpb25hbGx5UmVhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5k
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25h
bEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQW5kQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzc5LDcgKzM3OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTM5Nyw3ICszOTcsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+Ojpz
ZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwog
fQpAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGlt
cGwucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
Iik7CiB9CkBAIC00MjgsNyArNDI4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
VW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZSIpOwogfQpAQCAtNDQxLDcgKzQ0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFj
ZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGUiKTsKIH0KQEAgLTQ1OSw3ICs0NTksNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJy
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIp
OwogfQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMRG91YmxlPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwucnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0K
QEAgLTQ5MCw3ICs0OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJy
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0KQEAgLTUw
Myw3ICs1MDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxP
YmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUi
KTsKIH0KQEAgLTUyMSw3ICs1MjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUzNCw3ICs1MzQsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6
Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CiB9CkBAIC01NTIsNyArNTUy
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVT
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVT
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
c2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKIH0K
QEAgLTU2NSw3ICs1NjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
LnNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVVbmZvcmdlYWJsZVByaXZhdGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVBy
aXZhdGUiKTsKIH0KQEAgLTU4Myw3ICs1ODMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUiKTsKIH0KQEAg
LTU5Niw3ICs1OTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETERvdWJsZT4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
LnNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0KQEAg
LTYxNCw3ICs2MTQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJz
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9N
SklULmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
T01KSVQuY3BwCmluZGV4IDU5N2Y3NmY0ZTM4MjJmZmI5NThiNjliNjhjNzE5ZWYyMTUyYzE5NzIu
LmQzZjFiMzU2ZmZhZmI3ODEwOGU0NjY2YzcyNzk4ZmEyMmYyNGUwMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQu
Y3BwCkBAIC01OSw1NiArNTksNTYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rp
b25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90
b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25HZXRBdHRyaWJ1dGUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlV2l0aG91dFR5cGVDaGVj
ayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklUOjpJRExKU0FyZ3Vt
ZW50VHlwZTxJRExET01TdHJpbmc+KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW0oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uSXRlbSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtV2l0aG91dFR5cGVDaGVjayhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlw
ZTxJRExVbnNpZ25lZFNob3J0PiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExVbnNpZ25l
ZFNob3J0Pik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklU
UHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZVdpdGhvdXRUeXBl
Q2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJVCopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxl
bWVudEJ5SWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVu
dEJ5SWQpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFBy
b3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFJl
cXVpcmVzRXhpc3RpbmdBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+Pik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25H
ZXRFbGVtZW50c0J5TmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25H
ZXRFbGVtZW50c0J5TmFtZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZVdpdGhvdXRUeXBlQ2hl
Y2soSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1
bWVudFR5cGU8SURMQXRvbVN0cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4pOwogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RET01KSVRBbnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVEJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERP
TUpJVEJ5dGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRTaG9ydEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RE9NSklURmxvYXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0RE9NSklURG9tU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RET01KSVRVc3ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVE5vZGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJv
b2xlYW5OdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
Qnl0ZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRP
Y3RldE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRT
aG9ydE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRV
bnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVExvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJs
ZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb21T
dHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
Qnl0ZVN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
T01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEFueUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUT2N0ZXRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUU2hvcnRB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
VW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVRMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25n
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VEZsb2F0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvdWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG9tU3Ry
aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVEJ5dGVTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5vZGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJs
ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRPY3RldE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdO
dWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9u
Z0xvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG91
YmxlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
Qnl0ZVN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKIAogc3RhdGljIGNvbnN0IEpTQzo6RE9NSklUOjpTaWduYXR1cmUgRE9NSklUU2lnbmF0dXJl
Rm9yVGVzdERPTUpJVEdldEF0dHJpYnV0ZShqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdl
dEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2ssIEpTVGVzdERPTUpJVDo6aW5mbygpLCBKU0M6OkRP
TUpJVDo6RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6QWJzdHJhY3RIZWFwUmVwb3NpdG9yeTo6RE9N
KSwgRE9NSklUOjpJRExSZXN1bHRUeXBlRmlsdGVyPElETE51bGxhYmxlPElETERPTVN0cmluZz4+
Ojp2YWx1ZSwgRE9NSklUOjpJRExBcmd1bWVudFR5cGVGaWx0ZXI8SURMRE9NU3RyaW5nPjo6dmFs
dWUpOwogCkBAIC02MTUsNyArNjE1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RE9NSklU
KiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RET01KSVQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYyNSw3ICs2
MjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNjQ2LDcgKzY0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRBbnlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5hbnlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdERPTUpJVEFueUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRBbnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRB
bnlBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYW55QXR0ciIp
OwogfQpAQCAtNjU5LDcgKzY1OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRCb29sZWFuQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYm9vbGVhbkF0dHIoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0RE9NSklUQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCb29sZWFuQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpn
ZXQ8anNUZXN0RE9NSklUQm9vbGVhbkF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJib29sZWFuQXR0ciIpOwogfQpAQCAtNjcyLDcgKzY3Miw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEJ5dGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZUF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRl
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQnl0ZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJieXRlQXR0ciIpOwogfQpAQCAtNjg1LDcgKzY4NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRPY3RldEF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETE9jdGV0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm9j
dGV0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRPY3RldEF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRPY3RldEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVE9jdGV0QXR0ckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0QXR0ciIpOwogfQpAQCAtNjk4LDcg
KzY5OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRTaG9ydEF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01K
SVRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFNob3J0QXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNob3J0QXR0ciIpOwog
fQpAQCAtNzExLDcgKzcxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRV
bnNpZ25lZFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkU2hvcnQ+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRTaG9ydEF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNp
Z25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHJHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZFNob3J0QXR0ciIp
OwogfQpAQCAtNzI0LDcgKzcyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklUTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9N
SklUTG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25n
QXR0ciIpOwogfQpAQCAtNzM3LDcgKzczNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRVbnNpZ25lZExvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkTG9uZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRVbnNpZ25lZExvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRy
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nQXR0
ciIpOwogfQpAQCAtNzUwLDcgKzc1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RE
T01KSVRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmdMb25nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdMb25nQXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTG9uZ0F0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9N
SklUPjo6Z2V0PGpzVGVzdERPTUpJVExvbmdMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImxvbmdMb25nQXR0ciIpOwogfQpAQCAtNzYzLDcgKzc2Myw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETFVuc2lnbmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwudW5zaWduZWRMb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25n
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwog
fQpAQCAtNzc2LDcgKzc3Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRG
bG9hdEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEZsb2F0PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZsb2F0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RET01KSVRGbG9hdEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRGbG9hdEF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERP
TUpJVEZsb2F0QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZs
b2F0QXR0ciIpOwogfQpAQCAtNzg5LDcgKzc4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVucmVzdHJpY3Rl
ZEZsb2F0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVzdHJpY3Rl
ZEZsb2F0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3Ry
aWN0ZWRGbG9hdEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVucmVzdHJpY3RlZEZsb2F0QXR0ciIpOwogfQpAQCAtODAyLDcgKzgwMiw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5kb3VibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERv
dWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVREb3VibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVREb3VibGVBdHRy
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG91YmxlQXR0ciIpOwog
fQpAQCAtODE1LDcgKzgxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRV
bnJlc3RyaWN0ZWREb3VibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVucmVzdHJpY3RlZERvdWJsZT4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnJlc3RyaWN0ZWREb3VibGVBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJs
ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRV
bnJlc3RyaWN0ZWREb3VibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidW5yZXN0cmljdGVkRG91YmxlQXR0ciIpOwogfQpAQCAtODI4LDcgKzgyOCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5kb21TdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERv
bVN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVREb21T
dHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG9tU3Ry
aW5nQXR0ciIpOwogfQpAQCAtODQxLDcgKzg0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJ5dGVTdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZVN0cmluZ0F0dHIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRC
eXRlU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHJHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlU3RyaW5nQXR0ciIpOwogfQpA
QCAtODU0LDcgKzg1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVc3ZT
dHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC51c3ZTdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVc3ZTdHJpbmdBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRVc3ZTdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAidXN2U3RyaW5nQXR0ciIpOwogfQpAQCAtODY3LDcgKzg2Nyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVROb2RlQXR0ckdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubm9kZUF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTm9kZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVROb2RlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpn
ZXQ8anNUZXN0RE9NSklUTm9kZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJub2RlQXR0ciIpOwogfQpAQCAtODgwLDcgKzg4MCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51
bGxhYmxlPElETEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmJvb2xlYW5OdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9N
SklUQm9vbGVhbk51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0
PGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJib29sZWFuTnVsbGFibGVBdHRyIik7CiB9CkBAIC04OTMsNyArODkz
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQnl0ZT4+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuYnl0ZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTkwNiw3ICs5
MDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExPY3RldD4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwub2N0ZXROdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRPY3RldE51bGxhYmxl
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJvY3RldE51bGxhYmxlQXR0ciIpOwogfQpAQCAt
OTE5LDcgKzkxOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRTaG9ydE51
bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFNob3J0Pj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zaG9ydE51bGxhYmxlQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFNob3J0
TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0ckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNob3J0TnVsbGFibGVBdHRyIik7
CiB9CkBAIC05MzIsNyArOTMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJ
VFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5zaWduZWRT
aG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRTaG9y
dE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNp
Z25lZFNob3J0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+
OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIiKTsK
IH0KQEAgLTk0NSw3ICs5NDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
TG9uZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExMb25nPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25nTnVsbGFibGVBdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRM
b25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ051bGxhYmxlQXR0ciIp
OwogfQpAQCAtOTU4LDcgKzk1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVuc2lnbmVk
TG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRMb25n
TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2ln
bmVkTG9uZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpn
ZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTnVsbGFibGVBdHRyIik7CiB9CkBA
IC05NzEsNyArOTcxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdM
b25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMTG9uZ0xvbmc+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdMb25nTnVsbGFibGVBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVExvbmdMb25n
TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9u
Z0xvbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTk4NCw3ICs5ODQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0ckdldHRlcihK
U0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExO
dWxsYWJsZTxJRExVbnNpZ25lZExvbmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRV
bnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25l
ZExvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtOTk3LDcgKzk5Nyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEZsb2F0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5mbG9hdE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERP
TUpJVD46OmdldDxqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZsb2F0TnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDEw
LDcgKzEwMTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmlj
dGVkRmxvYXROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnJlc3RyaWN0ZWRGbG9hdD4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRmxvYXRO
dWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0
cmljdGVkRmxvYXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
T01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHJHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWRGbG9hdE51
bGxhYmxlQXR0ciIpOwogfQpAQCAtMTAyMyw3ICsxMDIzLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFi
bGU8SURMRG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kb3Vi
bGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURG91
YmxlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RE
T01KSVREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJkb3VibGVOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwMzYsNyArMTAzNiw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJs
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETE51bGxhYmxlPElETFVucmVzdHJpY3RlZERvdWJsZT4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51
bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8
anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRy
Iik7CiB9CkBAIC0xMDQ5LDcgKzEwNDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExET01T
dHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvbVN0cmluZ051
bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb21TdHJp
bmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImRvbVN0cmluZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtMTA2Miw3ICsxMDYy
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJs
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQnl0ZVN0cmluZz4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZVN0cmluZ051bGxhYmxlQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
Qnl0ZVN0cmluZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQnl0ZVN0cmluZ051
bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVT
dHJpbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwNzUsNyArMTA3NSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TE51bGxhYmxlPElETFVTVlN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwudXN2U3RyaW5nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
T01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2U3RyaW5nTnVsbGFibGVBdHRyIik7CiB9
CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
Tm9kZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8
Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5ub2RlTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVROb2RlTnVsbGFibGVBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVROb2RlTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibm9kZU51bGxhYmxlQXR0ciIpOwogfQpAQCAtMTEwOCw3ICsx
MTA4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFBy
b3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlQm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5n
Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuZ2V0QXR0cmlidXRlKFdURk1vdmUobmFtZSkp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1
bmN0aW9uR2V0QXR0cmlidXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJnZXRBdHRyaWJ1dGUiKTsKIH0KQEAgLTExNDcsNyArMTE0Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1Cb2R5
KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaXRlbShX
VEZNb3ZlKHgpLCBXVEZNb3ZlKHkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW0oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uSXRlbUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
aXRlbSIpOwogfQpAQCAtMTE4MCw3ICsxMTgwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlQm9keSgK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMQm9vbGVhbj4oaW1wbC5oYXNBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25I
YXNBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklU
Pjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZUJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzQXR0cmlidXRlIik7CiB9CkBAIC0x
MjE0LDcgKzEyMTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZEJvZAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8RWxl
bWVudD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IGltcGwuZ2V0RWxlbWVudEJ5SWQoV1RGTW92ZShlbGVtZW50SWQpKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVs
ZW1lbnRCeUlkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVt
ZW50QnlJZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0RWxlbWVu
dEJ5SWQiKTsKIH0KQEAgLTEyNTAsNyArMTI1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1l
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETEludGVyZmFjZTxOb2RlTGlzdD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIGltcGwuZ2V0RWxlbWVudHNCeU5hbWUoV1RGTW92ZShlbGVtZW50
TmFtZSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJ
VFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRFbGVtZW50c0J5TmFtZSIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRU
b0pTT04uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dERlZmF1bHRUb0pTT04uY3BwCmluZGV4IGVjNTA5ZGJkZmZhNmYzMmRhMDM5MzdiNmUyMjFiZmVm
MTQ5NTNjYmQuLjQzNzQ2ODFhYjQ0NzRkZmU3MjAyMjIxZDViYzdmM2M0MThkNDZkZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZh
dWx0VG9KU09OLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAKQEAgLTcwLDQ1ICs3MCw0NSBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTsKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0
dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVu
YWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKFRFU1RfQ09ORElUSU9O
QUwpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25k
aXRpb25hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwog
I2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRs
ZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxl
ckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09O
Rmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWRE
b3VibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVu
cmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhE
aXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9w
dGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJy
YXlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVu
QXJyYXlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1
ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1
bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50
SGFuZGxlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRo
aXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3Vy
dGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRo
TG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05h
YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGly
ZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3pl
bkFycmF5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
ZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1
ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI2MSw3ICsyNjEs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3REZWZhdWx0VG9KU09OKiBJRExPcGVyYXRpb248
SlNUZXN0RGVmYXVsdFRvSlNPTj46OmNhc3QoSgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpT
VGVzdERlZmF1bHRUb0pTT04qPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2Fs
bEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRv
SlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjcxLDcgKzI3
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3REZWZhdWx0VG9KU09OOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25nQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZh
dWx0VG9KU09OTG9uZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdBdHRyaWJ1dGUiKTsK
IH0KQEAgLTMwNSw3ICszMDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlR2V0dGVyKEpTR2xvYgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZFNob3J0PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlT
ZXR0aW5nc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZh
dWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlIik7CiB9CkBA
IC0zMTksNyArMzE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlcihKU0cKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248VGVzdERlZmF1bHRUb0pT
T05FbnVtPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbmFibGVkQnlD
b25kaXRpb25hbEF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09ORW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxl
ZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9K
U09ORW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVk
QnlDb25kaXRpb25hbEF0dHJpYnV0ZSIpOwogfQpAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIGV2ZW50SGFuZGxlckF0dHJpYnV0ZSh0aGlzT2Jq
ZWN0LndyYXBwZWQoKSwgZXZlbnROYW1lcygpLmVudEhhbmRsZXJBdHRyaWJ1dGVFdmVudCwgd29y
bGRGb3JET01PYmplY3QodGhpc09iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxl
ckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRs
ZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJldmVudEhhbmRsZXJBdHRyaWJ1dGUiKTsKIH0K
QEAgLTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJldmVudEhhbmRsZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTM2MCw3ICszNjAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRl
R2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
Zmlyc3RTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTM3
OCw3ICszNzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZp
cnN0U3RyaW5nQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJmaXJz
dFN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzkxLDcgKzM5MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExv
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc2Vjb25kTG9uZ0F0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2Vjb25k
TG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+
OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJzZWNvbmRMb25nQXR0cmlidXRlIik7CiB9CkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlU2V0
dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29u
ZExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2Vjb25kTG9uZ0F0dHJpYnV0ZSIpOwogfQpA
QCAtNDIyLDcgKzQyMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0RXhjZXB0aW9uPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwudGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVs
dFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRoaXJkVW5K
U09OYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5K
U09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVz
dERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRoaXJkVW5KU09OYWJsZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNDUzLDcgKzQ1Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlR2V0dGVyCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVucmVzdHJpY3RlZERv
dWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5mb3VydGhVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05G
b3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3RE
ZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlIik7CiB9CkBAIC00NzEsNyAr
NDcxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhV
bnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVTZXR0ZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZv
dXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0
cmlidXRlIik7CiB9CkBAIC00ODQsNyArNDg0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlR2V0dGVyKEpTR2xvYmEK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQ2xhbXBBZGFwdG9y
PElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpZnRoTG9u
Z0NsYW1wZWRBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xh
bXBlZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExv
bmdDbGFtcGVkQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlmdGhMb25nQ2xhbXBlZEF0dHJp
YnV0ZSIpOwogfQpAQCAtNTAyLDcgKzUwMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9u
Z0NsYW1wZWRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUiKTsK
IH0KQEAgLTUxNSw3ICs1MTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iagogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuc2l4dGhUeXBlZGVmQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
ZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0
RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpeHRo
VHlwZWRlZkF0dHJpYnV0ZSIpOwogfQpAQCAtNTMzLDcgKzUzMyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlU2V0dGVyKEpT
R2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRl
ZkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1
bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNpeHRoVHlwZWRlZkF0dHJpYnV0ZSIpOwogfQpA
QCAtNTQ2LDcgKzU0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZUdldHRlCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbD4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhE
aXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9K
U09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05TZXZl
bnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V2ZW50aERp
cmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTY0LDcgKzU2NCw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09O
YWJsZUF0dHJpYnV0ZVNldHRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3Rs
eVRvSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsK
IH0KQEAgLTU3Nyw3ICs1NzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdERlZmF1bHRU
b0pTT05JbmRpcmVjdEluaGVyaXRhbmNlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuZWlnaHRoSW5kaXJlY3RseUF0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRo
SW5kaXJlY3RseUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERl
ZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlIik7CiB9CkBA
IC01OTUsNyArNTk1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pT
T05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5k
aXJlY3RseUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiZWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSIpOwogfQpAQCAtNjA4LDcg
KzYwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTmludGhP
cHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEludGVyZmFjZTxUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbD4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5uaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05h
YmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTk5p
bnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxq
c1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTYyNiw3ICs2MjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlv
bmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhP
cHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9K
U09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pT
T05hYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJuaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIik7
CiB9CkBAIC02MzksNyArNjM5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1
bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRnJvemVuQXJyYXk8SURMQm9vbGVh
bj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBpbXBsLnRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVz
dERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
dGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSIpOwogfQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJp
YnV0ZVNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pT
T05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlbnRoRnJv
emVuQXJyYXlBdHRyaWJ1dGUiKTsKIH0KQEAgLTY3MCw3ICs2NzAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExT
ZXF1ZW5jZTxJRExET01TdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5lbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNl
cXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVs
dFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTY4
OCw3ICs2ODgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVs
ZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVl
bmNlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJlbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlIik7CiB9CkBAIC03MDEsNyArNzAx
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50
ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aElu
dGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1
ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRo
SW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0d2VsZnRoSW50ZXJm
YWNlU2VxdWVuY2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTcxOSw3ICs3MTksNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0
dHJpYnV0ZVNldHRlcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1
bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRU
b0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVs
dFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVl
bmNlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJ0d2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTcz
Miw3ICs3MzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRo
aXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExVbnNpZ25l
ZFNob3J0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwudGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8
anNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ0aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlIik7CiB9CkBAIC03NTAsNyArNzUwLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3Jk
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
Tj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGhp
cnRlZW50aFJlY29yZEF0dHJpYnV0ZSIpOwogfQpAQCAtNzg3LDcgKzc4Nyw3IEBAIHN0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OQm9keShKU0dsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5
cGVGdW5jdGlvblRvSlNPTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVs
dFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT04+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pTT05Qcm90
b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidG9KU09OIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWQuY3BwCmluZGV4IDY2NGQ3MWYxZDNlYzk4ODA2OGE5NTdiOGJjMDZj
OWJkY2VkYzhjM2YuLjYyNDNhYWU2NWZjNTgxMzcwMjkxNGMzNzhjZmFiMGM3MzBhMTE5MTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWQuY3BwCkBAIC00OSwxNSArNDksMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVu
Y3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rpb25Ub0pT
T04pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmls
dGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTky
LDcgKzE5Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZCogSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1CiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkKj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDIsNyAr
MjAyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZDo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRl
R2V0dGVyKAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm5vcm1hbEF0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWROb3JtYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Z2V0PGpzVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5v
cm1hbEF0dHJpYnV0ZSIpOwogfQpAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3Nl
ZFdpbmRvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJs
ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maWx0ZXJlZEJ5RXhwb3Nl
ZFdpbmRvd0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlIik7CiB9CkBAIC0yNDks
NyArMjQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV29ya2UKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZp
bHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVk
QnlFeHBvc2VkV29ya2VyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlsdGVyZWRCeUV4cG9z
ZWRXb3JrZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgaW5saW5l
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3Rv
dHlwZUZ1bmN0aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWRQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rpb25Ub0pT
T04sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkPjo6Y2FsbDxqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidG9KU09OIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1
bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAppbmRleCA0ZGMxZGMwZDgxYjFiODk2ZmIw
OGEyNmI1Zjc4NzBhZTQ1ZTAxYWEyLi5mZGQ2NTM1MWM3MjI0NTU2ZGNkYzQxMWUxMmY3M2RmMjcy
YmUxZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZS5jcHAKQEAgLTQzLDggKzQzLDggQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0
SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBj
bGFzcyBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZVByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTQxLDcgKzE0
MSw3IEBAIEpTVmFsdWUgSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U6Omdl
dENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVj
dG9yPEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3I+KHZt
LCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTUxLDcgKzE1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05JbmRp
cmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVy
aXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0LmNwcAppbmRleCAwNjk1YTNhMWUxYWFlNmUyMDk1ZWI4YmM1NThi
N2UwZWE4ZWRiZTM1Li45ZmM4MDRiMTY4ZjM0NWIxYTY0MTM0MDJhNmQ4ODk5OGZmODMzNDRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAKQEAgLTY2LDE0ICs2
NiwxNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90
eXBlRnVuY3Rpb25Ub0pTT04oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJv
dG90eXBlRnVuY3Rpb25Ub0pTT04pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhl
cml0TG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTgyLDcgKzE4Miw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0KiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVs
dFRvSlNPTkluCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNW
YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTIsNyAr
MTkyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMyw3
ICsyMTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRJbmhlcml0TG9uZ0F0dHJpYnV0ZUdldHRlcihKU0dsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmluaGVyaXRMb25nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Pjo6Z2V0PGpz
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0
cmlidXRlU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdD46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJpbmhlcml0TG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRp
YyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5
cGVGdW5jdGlvblRvSlNPTkJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpjYWxs
PGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwCmluZGV4IGRkMDJjNmVi
NTQxYzY2MGUwZjBiNmQxOWVjMzc2ZjJiNDc0OGFmNGUuLjE4MWE1MjEyYjU3MTE4M2NjNTY5NTA3
YTU3ODY3MTQyYTJiNWM0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbC5jcHAKQEAgLTY2LDE2ICs2NiwxNiBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9K
U09OKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9v
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVGb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFs
TG9uZ0F0dHJpYnV0ZUZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTg1LDcgKzE4NSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwqIElE
TE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTUsNyArMTk1LDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWw6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNiw3ICsyMTYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZp
bmFsTG9uZ0F0dHJpYnV0ZUZvb0dldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmZpbmFsTG9uZ0F0dHJpYnV0ZUZvbygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
Pjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVG
b29HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJmaW5hbExvbmdBdHRyaWJ1dGVGb28iKTsKIH0KQEAgLTIzNCw3
ICsyMzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvb1NldHRlcgogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1
dGVGb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVG
b28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD46OnNldDxzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJmaW5hbExvbmdBdHRy
aWJ1dGVGb28iKTsKIH0KQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhckdldHRl
cgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpbmFsTG9uZ0F0dHJpYnV0ZUJhcigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
RmluYWxMb25nQXR0cmlidXRlQmFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0
dHJpYnV0ZUJhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaW5h
bExvbmdBdHRyaWJ1dGVCYXIiKTsKIH0KQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0
ZUJhclNldHRlcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbD46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
RmluYWxMb25nQXR0cmlidXRlQmFyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJmaW5hbExvbmdBdHRyaWJ1dGVCYXIiKTsKIH0KQEAgLTMwNSw3
ICszMDUsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5
cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjo6Y2FsbDxqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsUHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRvSlNPTiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAK
aW5kZXggYjVjNTg5MzY4Mjc1MTJjYjZkYjhmZDQwMjg0OGQzMWQ4YWQxMjBlOS4uMGUzZDkzOTNh
NDkxYTFmYzA0NzhjOGE4YjJmMjY4MGIxOTc5ZGE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2Vj
dXJpdHkuY3BwCkBAIC01MiwxNSArNTIsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8g
RnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REb21h
aW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rp
b25FeGNpdGluZ0Z1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RG9t
YWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2QpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REb21haW5TZWN1
cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWlu
U2VjdXJpdHlFeGNpdGluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE5MSw3ICsxOTEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3REb21haW5TZWN1cml0eSogSURMT3BlcmF0aW9uPEpT
VGVzdERvbWFpblNlY3VyaXR5Pjo6Y2FzdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dERvbWFpblNlY3VyaXR5Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxG
cmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3Vy
aXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAxLDcgKzIw
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3REb21haW5TZWN1cml0eTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERvbWFpblNlY3VyaXR5Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjYsNyArMjI2LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5leGNpdGluZ0F0
dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGlu
Z0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REb21haW5TZWN1cml0eT46OmdldDxqc1Rlc3RE
b21haW5TZWN1cml0eUV4Y2l0aW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImV4Y2l0aW5nQXR0ciIp
OwogfQpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRp
bmdGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJp
dHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxsPGpzVGVzdERvbWFpblNlY3Vy
aXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJleGNpdGluZ0Z1bmN0aW9uIik7CiB9CkBAIC0yNzQsNyArMjc0
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3Vy
aXR5UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RN
ZXNzYWdlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERvbWFpblNlY3Vy
aXR5Pjo6Y2FsbDxqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3Nh
Z2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBvc3RNZXNzYWdlIik7
CiB9CkBAIC0zMzMsNyArMzMzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGUKICAgICByZXR1
cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0
KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERvbWFpblNlY3VyaXR5UHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OmNh
bGw8anNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RP
dmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3Zl
cmxvYWRlZE1ldGhvZCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCmlu
ZGV4IDI1NTk0MWNjYmZiZWQ0NGU1OTc3MmVlZjVhOGZkMDFlYTYwMTRhMmMuLjczYzU2OTA5OWJj
Y2YwNmM0NWMxZTA0NDIyNmY4MjY3NGIwMmNlMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZy5jcHAKQEAgLTUyLDI1ICs1MiwyNSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogLy8g
RnVuY3Rpb25zCiAKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVGdW5jdGlvbkVu
YWJsZWRCeVNldHRpbmdPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQ
cm90b3R5cGVGdW5jdGlvbkVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24pOwogI2VuZGlmCiAKIC8v
IEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5n
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rl
c3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJs
ZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5n
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlT
ZXR0aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Vu
YWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nU3Vw
cGxlbWVudGFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdT
dXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFs
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjYz
LDcgKzI2Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqIElE
TE9wZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6CiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yNzMsNyArMjczLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0
dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2IKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5
Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0bwogICAgIHJldHVybiBKU1Rlc3RT
dWJPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGlu
Z0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKTsKIH0KQEAgLTMwNCw3ICszMDQsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlT
ZXR0aW5nQ29uc3RydWN0bwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpLCBzdHJsZW4oIlRlc3RTdWJPYmpFbmFibGVkQnlT
ZXR0aW5nIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rl
c3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJs
ZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIik7CiB9CkBA
IC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNl
dHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpOwogfQpAQCAt
MzM5LDcgKzMzOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZVNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKTsKIH0K
QEAgLTM1NSw3ICszNTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlR2V0dGVyKAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3
b1NldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRC
eVR3b1NldHRpbmdzQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5VHdvU2V0dGlu
Z3NBdHRyaWJ1dGUiKTsKIH0KQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlU2V0
dGVyKAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Vu
YWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+
OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQpAQCAtMzkxLDcgKzM5MSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFs
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
V2ViQ29yZTo6VGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbEF0
dHJpYnV0ZShpbXBsKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0
dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVu
dGFsQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsQXR0cmlidXRlIik7CiB9
CkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRC
eVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1
cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsQXR0cmlidXRlIik7CiB9CkBAIC00MzIsNyAr
NDMyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRCeVNldHRpbmdPcGVy
YXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQ
cm90b3R5cGVGdW5jdGlvbkVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmNhbGw8anNUZXN0RW5h
YmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEJ5U2V0dGluZ09w
ZXJhdGlvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHAKaW5kZXgg
M2RlYjAwYzRkNTMwZjI1MjlmZTUyZWU5NGVhM2ZkYmFjMGE4YWQ0YS4uNzBjODEyNzIyODdlOWJj
MTdkYjNlMjBhODQ5ODZjYmUzYTE4YzRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNv
bnRleHQuY3BwCkBAIC00OCwxMCArNDgsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8g
QXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0
VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RF
bmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKIAogY2xhc3MgSlNUZXN0RW5hYmxlZEZvckNvbnRleHRQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2Miw3ICsxNjIsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dCogSURMQXR0cmlidXRl
PEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0PgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5h
YmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNzIsNyArMTcyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEZvckNvbnRl
eHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0OjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5
MSw3ICsxOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEZvckNvbnRl
eHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3RT
dWJPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5h
YmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJs
ZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEZv
ckNvbnRleHQ+OjpnZXQ8anNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZv
ckNvbnRleHRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dCIpOwogfQpAQCAtMjAzLDcgKzIwMyw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpF
bmFibGVkRm9yQ29udGV4dENvbnN0cnVjCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dCIpLCBzdHJsZW4oIlRlc3RTdWJPYmpF
bmFibGVkRm9yQ29udGV4dCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEVuYWJsZWRG
b3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVu
YWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RW5hYmxlZEZvckNvbnRleHQ+OjpzZXQ8c2V0SlNUZXN0RW5hYmxlZEZvckNvbnRl
eHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MTUwOGQzNWYwY2RjYTQ2OWI5Y2MyOWY3YmQyMmE5YjkwZjYyYThkOC4uOWM4Zjg1NTFhN2Y2ODY4
YTI1MGY1ODE1ZGExYWU0NDY3NjQyN2YxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVj
dG9yLmNwcApAQCAtMTIzLDEyICsxMjMsMTIgQEAgdGVtcGxhdGU8PiBUZXN0RXZlbnRDb25zdHJ1
Y3Rvcjo6SW5pdCBjb252ZXJ0RGljdGlvbmFyeTxUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6SW4KIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9y
QXR0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0
dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKICNpZiBFTkFCTEUoU1BFQ0lBTF9FVkVOVCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RXZlbnRDb25zdHJ1Y3RvckF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKIAogY2xhc3Mg
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9u
RmluYWxPYmplY3QgewpAQCAtMTY1LDcgKzE2NSw3IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQ
QUNFX1NIQVJBQkxFKEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUsIEpTVGVzdEV2ZW50
CiAKIHVzaW5nIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3Ry
dWN0b3I8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj47CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmNvbnN0
cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRF
UyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAg
Vk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OCw2ICsxODgsNyBAQCB0ZW1wbGF0ZTw+
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0
cnVjdG9yOjpjb25zdAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQorSlNDX0FOTk9UQVRFX0hP
U1RfRlVOQ1RJT04oSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yQ29uc3RydWN0LCBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRl
PD4gSlNWYWx1ZSBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKIHsKQEAgLTI2Miw3ICsyNjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yKiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OgogICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqPihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzIsNyArMjczLDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50Q29uc3Ry
dWN0b3I6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI5Myw3ICsyOTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
RwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cjEoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckF0dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEV2ZW50Q29uc3RydWN0b3I+OjpnZXQ8anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiYXR0cjEiKTsKIH0KQEAgLTMwNiw3ICszMDcsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cjIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZl
bnRDb25zdHJ1Y3RvckF0dHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+OjpnZXQ8anNUZXN0RXZlbnRDb25zdHJ1
Y3RvckF0dHIyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cjIiKTsKIH0KQEAgLTMyMCw3ICszMjEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuYXR0cjMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1
Y3RvckF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+OjpnZXQ8anNUZXN0
RXZlbnRDb25zdHJ1Y3RvckF0dHIzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cjMiKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDdlNjE0NTRmZjU5ZGVlODdmYzk2YjE5NjIwNzgwODVk
NWM0ZjczMTMuLjAzMjE3MjQ2ZGRmNjU2MTViNGE4OWJlNzYxZTJkOWQ5MzMxMTJjMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtNTAsMTIgKzUwLDEyIEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKTsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjI2LDcgKzIyNiw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdEV2ZW50VGFyZ2V0KiBJRExPcGVyYXRpb248SlNUZXN0RXZlbnRUYXJn
ZXQ+OjpjYXN0KEpTR2xvCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJn
ZXQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2
ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzYsNyArMjM2LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50VGFyZ2V0
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW1Cb2R5KEpTQwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8
Tm9kZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IGltcGwuaXRlbShXVEZNb3ZlKGluZGV4KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVt
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2Fs
bDxqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaXRlbSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApp
bmRleCBlMDdiNGVhNTdkNWQ4YzhiNzQzNmQ0ZGMwNzAzZmUxOWZiYWM3ZGM3Li5iNjEwMDE4YzI5
NGI5MTI0ZjU0OGJjNjA0YzEzYzBmNDI2MDY0ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApA
QCAtNDYsOSArNDYsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXhjZXB0aW9uTmFtZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBK
U1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTE1OCw3ICsxNTgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3RFeGNlcHRpb24qIElETEF0dHJpYnV0ZTxKU1Rlc3RFeGNlcHRpb24+OjpjYXN0KEpTR2xvYmFs
TwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNjgsNyArMTY4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0
aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw3ICsxODksNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RXhjZXB0aW9uTmFtZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwubmFtZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXhj
ZXB0aW9uTmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RFeGNlcHRpb24+OjpnZXQ8anNUZXN0RXhjZXB0aW9uTmFtZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIm5hbWUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApp
bmRleCA1NjRmNmZkY2ZkNjViYTgwZTBhNDBjYTRiMjFkOGRhNTUwZjQxZDFkLi5kYjVmZGQ5ODk4
MzliMzk0M2QzN2JkZjUxNTcyNjkyY2E2NTA4MWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwCkBAIC00Niw5ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTE2OCw3ICsxNjgsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBJRExBdHRyaWJ1dGU8SlNUZXN0R2VuZXJhdGVJc1JlYWNo
YQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqPihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzgsNyArMTc4LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OSw3ICsxOTksNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuYVNlY3JldEF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2Vj
cmV0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpnZXQ8anNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUFTZWNyZXRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhU2VjcmV0QXR0cmlidXRlIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCmluZGV4IGI0MjA4NmEwMTViNTkwMDI3MjQ1
Mzk5Y2M1ZWZlMzY1MTIwOWQ1OWQuLmExNjY0NzI3NmFiMWU1NjJjNzEzNmZhZmE3Yzg3ZDBlNWQ4
ZTM4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwCkBAIC0xMzcsMTkzICsxMzcsMTkz
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJl
Z3VsYXJPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rp
b25SZWd1bGFyT3BlcmF0aW9uKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rp
b25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0
aW9uU3RhdGljKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9u
RW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5h
YmxlZEluU3BlY2lmaWNXb3JsZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVu
YWJsZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlv
bkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29y
bGQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkKTsK
ICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9u
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdFByaXZhdGVG
dW5jdGlvbik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRC
b29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uQ2FsY3Vs
YXRlU2VjcmV0UmVzdWx0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFs
T2JqZWN0SW5zdGFuY2VGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4pOwogI2lmIEVOQUJMRShURVNU
X0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFs
T2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0
Qm9vbGVhbik7CiAjZW5kaWYKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RSZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RSZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFBy
aXZhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25h
bEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2
YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1
YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBF
TkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVk
QXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoVEVTVF9DT05ESVRJT05BTCkKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0
SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVj
dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lm
IEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RB
dWRpb0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExp
a2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RM
ZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbkRlcml2ZWQpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25k
aXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVy
YXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRM
aWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNUZXN0
R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OwogCkBAIC04MjcsNyArODI3LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0R2xvYmFsT2JqZWN0KiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Y2FzdChKU0cKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RHbG9iYWxPYmplY3Qq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgzNyw3ICs4MzcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0R2xvYmFsT2JqZWN0
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtODU4LDcgKzg1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RSZWd1bGFyQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWd1bGFyQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RSZWd1bGFyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RSZWd1
bGFyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVndWxhckF0dHJpYnV0ZSIpOwogfQpAQCAt
ODc2LDcgKzg3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RS
ZWd1bGFyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVndWxhckF0dHJpYnV0ZSIp
OwogfQpAQCAtODg5LDcgKzg4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZh
dGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicHVibGljQW5kUHJpdmF0ZUF0dHJp
YnV0ZSIpOwogfQpAQCAtOTA3LDcgKzkwNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5k
UHJpdmF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSIpOwogfQpA
QCAtOTIxLDcgKzkyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5wdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5k
UHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNv
bmRpdGlvbmFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RQdWJs
aWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUiKTsK
IH0KQEAgLTk0Miw3ICs5NDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlU2V0dAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVD
b25kaXRpb25hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNv
bmRpdGlvbmFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInB1YmxpY0Fu
ZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSIpOwogfQpAQCAtOTU4LDcgKzk1OCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5lbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RFbmFi
bGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQpAQCAtOTc5LDcgKzk3OSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50
aW1lQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQpAQCAtOTkyLDcgKzk5Miw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvckdldHRl
cihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTRE9NV2luZG93OjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiRE9NV2luZG93Iik7CiB9CkBAIC0xMDA0LDcgKzEwMDQsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3Ry
dWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJET01XaW5kb3ciKSwgc3RybGVuKCJET01XaW5kb3ciKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJET01XaW5kb3ciKTsK
IH0KQEAgLTEwMTUsNyArMTAxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0CiAgICAgcmV0
dXJuIEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpAQCAtMTAyNyw3ICsxMDI3
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiKSwgc3RybGVuKCJEZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0x
MDM4LDcgKzEwMzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcgogICAgIHJldHVybiBKU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwNTAsNyArMTA1MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
U2V0dGVyCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlBhaW50V29ya2xl
dEdsb2JhbFNjb3BlIiksIHN0cmxlbigiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJQYWludFdvcmtsZXRHbG9iYWxT
Y29wZSIpOwogfQpAQCAtMTA2MSw3ICsxMDYxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGUK
ICAgICByZXR1cm4gSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckds
b2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwNzMsNyArMTA3Myw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpLCBzdHJsZW4oIlNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpAQCAtMTA4NCw3ICsxMDg0LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9u
c0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gSlNUZXN0Q0VSZWFjdGlvbnM6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rp
b25zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0Q0VSZWFjdGlvbnMiKTsKIH0KQEAgLTEwOTYsNyArMTA5Niw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDRVJl
YWN0aW9ucyIpLCBzdHJsZW4oIlRlc3RDRVJlYWN0aW9ucyIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3RDRVJlYWN0aW9ucyIpOwogfQpAQCAtMTEwNyw3ICsxMTA3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29u
c3RydWN0b3JHZXQKICAgICByZXR1cm4gSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIik7
CiB9CkBAIC0xMTE5LDcgKzExMTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldAogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ciIpLCBzdHJsZW4oIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIiKTsKIH0KQEAgLTExMzAsNyArMTEzMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xv
YmFsCiAgICAgcmV0dXJuIEpTVGVzdENhbGxUcmFjZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q2FsbFRyYWNlciIpOwogfQpAQCAtMTE0
Miw3ICsxMTQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RDYWxsVHJhY2VyQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENhbGxUcmFjZXIiKSwgc3RybGVuKCJUZXN0Q2FsbFRy
YWNlciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxs
VHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDYWxsVHJhY2VyIik7CiB9CkBAIC0xMTU0LDcg
KzExNTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXIoSgogICAgIHJldHVybiBKU1Rlc3RDYWxs
YmFja0ludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDYWxsYmFja0ludGVyZmFjZSIpOwog
fQpAQCAtMTE2OSw3ICsxMTY5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyKEoKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENhbGxiYWNrSW50ZXJmYWNlIiksIHN0
cmxlbigiVGVzdENhbGxiYWNrSW50ZXJmYWNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZh
Y2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIik7CiB9CkBAIC0xMTgyLDcgKzExODIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydQogICAgIHJldHVybiBKU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpA
QCAtMTE5NCw3ICsxMTk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnUKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yIiksIHN0cmxlbigiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3JDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIik7CiB9CkBAIC0x
MjA1LDcgKzEyMDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvckdldHRlcgogICAgIHJldHVybiBKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXMiKTsKIH0KQEAgLTEyMTcsNyArMTIxNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9y
U2V0dGVyCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDb25kaXRp
b25hbEluY2x1ZGVzIiksIHN0cmxlbigiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlcyIpOwogfQpAQCAtMTIyOCw3ICsxMjI4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamUK
ICAgICByZXR1cm4gSlNUZXN0RE9NSklUOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdERPTUpJVCIpOwogfQpAQCAtMTI0MCw3ICsxMjQwLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhbE9iamUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dERPTUpJVCIpLCBzdHJsZW4oIlRlc3RET01KSVQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RE9NSklUIik7CiB9CkBA
IC0xMjUxLDcgKzEyNTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvckdldHRlcihKU0dsbwogICAgIHJldHVybiBK
U1Rlc3REZWZhdWx0VG9KU09OOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT04iKTsKIH0KQEAgLTEyNjMs
NyArMTI2Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09OIiksIHN0cmxlbigiVGVzdERlZmF1
bHRUb0pTT04iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRv
SlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTiIp
OwogfQpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnMKICAgICBy
ZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1
bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiKTsKIH0KQEAgLTEyODYsNyArMTI4Niw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNP
TkluZGlyZWN0SW5oZXJpdGFuY2VDb25zCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpLCBzdHJsZW4oIlRl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0
SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpOwogfQpAQCAtMTI5
Nyw3ICsxMjk3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yR2V0dGUKICAgICByZXR1cm4gSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXQiKTsKIH0KQEAgLTEzMDksNyArMTMwOSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1
Y3RvclNldHRlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZh
dWx0VG9KU09OSW5oZXJpdCIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIpKSwg
dmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdCIpOwogfQpAQCAtMTMyMCw3ICsxMzIwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IKICAgICByZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbDo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdEZpbmFsIik7CiB9CkBAIC0xMzMyLDcgKzEzMzIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1
Y3RvcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbCIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiKTsKIH0KQEAgLTEzNDMsNyAr
MTM0Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9t
YWluU2VjdXJpdHlDb25zdHJ1Y3RvckdldHRlcihKU0dsCiAgICAgcmV0dXJuIEpTVGVzdERvbWFp
blNlY3VyaXR5OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdERvbWFpblNlY3VyaXR5Iik7CiB9CkBAIC0xMzU1LDcgKzEz
NTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFp
blNlY3VyaXR5Q29uc3RydWN0b3JTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0RG9tYWluU2VjdXJpdHkiKSwgc3RybGVuKCJUZXN0RG9tYWluU2Vj
dXJpdHkiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9t
YWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3Vy
aXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RG9tYWluU2VjdXJpdHki
KTsKIH0KQEAgLTEzNjYsNyArMTM2Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yR2V0dGVyKEpTCiAgICAg
cmV0dXJuIEpTVGVzdEVuYWJsZWRCeVNldHRpbmc6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RW5hYmxlZEJ5
U2V0dGluZyIpOwogfQpAQCAtMTM3OCw3ICsxMzc4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JTZXR0ZXIo
SlMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEVuYWJsZWRCeVNl
dHRpbmciKSwgc3RybGVuKCJUZXN0RW5hYmxlZEJ5U2V0dGluZyIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVk
QnlTZXR0aW5nQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFbmFibGVkQnlTZXR0aW5nIik7CiB9CkBAIC0xMzg5LDcg
KzEzODksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVu
YWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JHZXR0ZXIoSgogICAgIHJldHVybiBKU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RFbmFibGVkRm9yQ29udGV4dCIpOwog
fQpAQCAtMTQwMSw3ICsxNDAxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVyKEoKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEVuYWJsZWRGb3JDb250ZXh0IiksIHN0
cmxlbigiVGVzdEVuYWJsZWRGb3JDb250ZXh0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRl
eHRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdEVuYWJsZWRGb3JDb250ZXh0Iik7CiB9CkBAIC0xNDEyLDcgKzE0MTIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29u
c3RydWN0b3JDb25zdHJ1Y3RvckdldHRlcihKUwogICAgIHJldHVybiBKU1Rlc3RFdmVudENvbnN0
cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV2ZW50Q29uc3RydWN0b3IiKTsKIH0KQEAgLTE0MjQs
NyArMTQyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0dGVyKEpTCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3RFdmVudENvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVzdEV2
ZW50Q29uc3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
RXZlbnRDb25zdHJ1Y3RvciIpOwogfQpAQCAtMTQzNSw3ICsxNDM1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmEKICAgICByZXR1cm4gSlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RXZlbnRUYXJnZXQi
KTsKIH0KQEAgLTE0NDcsNyArMTQ0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RFdmVudFRhcmdldCIpLCBzdHJs
ZW4oIlRlc3RFdmVudFRhcmdldCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFdmVudFRhcmdl
dCIpOwogfQpAQCAtMTQ1OCw3ICsxNDU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE8KICAg
ICByZXR1cm4gSlNUZXN0RXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV4Y2VwdGlvbiIpOwogfQpAQCAtMTQ3MCw3ICsxNDcwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25D
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdEV4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3RFeGNlcHRpb24iKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0RXhjZXB0aW9uIik7CiB9CkBAIC0xNDgxLDcgKzE0ODEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVD
b25zdHJ1Y3RvckdldHRlcgogICAgIHJldHVybiBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKTsKIH0KQEAgLTE0
OTMsNyArMTQ5Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yU2V0dGVyCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIiksIHN0cmxlbigi
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIpOwogfQpAQCAtMTUwNCw3ICsx
NTA0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9i
YWxPYmplY3RDb25zdHJ1Y3RvckdldHRlcihKU0dsb2IKICAgICByZXR1cm4gSlNUZXN0R2xvYmFs
T2JqZWN0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9i
YWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dEdsb2JhbE9iamVjdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdEdsb2JhbE9iamVjdCIpOwogfQpAQCAtMTUxNiw3ICsxNTE2LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25z
dHJ1Y3RvclNldHRlcihKU0dsb2IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdEdsb2JhbE9iamVjdCIpLCBzdHJsZW4oIlRlc3RHbG9iYWxPYmplY3QiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2Jh
bE9iamVjdENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0R2xvYmFsT2JqZWN0Iik7CiB9CkBAIC0xNTI3LDcgKzE1Mjcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcgogICAgIHJldHVybiBKU1Rlc3RJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE1MzksNyArMTUzOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ciIpOwogfQpAQCAtMTU1MCw3ICsxNTUwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHIKICAg
ICByZXR1cm4gSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xNTczLDcgKzE1NzMsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdAogICAgIHJldHVybiBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xNTg1LDcgKzE1ODUsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE1OTcsNyArMTU5Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVGVzdEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbnRlcmZhY2UiKTsKIH0KQEAgLTE2
MTIsNyArMTYxMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0SW50ZXJm
YWNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEludGVyZmFjZSIpOwogfQpAQCAtMTYyNSw3ICsxNjI1
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZh
Y2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG8KICAgICByZXR1cm4gSlNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiKTsKIH0KQEAgLTE2MzcsNyArMTYz
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSIpLCBzdHJsZW4oIlRl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZSIpOwogfQpAQCAtMTY0OCw3ICsxNjQ4LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvYmFsT2IKICAgICByZXR1cm4gSlNUZXN0SXRlcmFibGU6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SXRlcmFibGUiKTsKIH0KQEAgLTE2NjAsNyAr
MTY2MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRl
cmFibGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIlRlc3RJdGVyYWJsZSIpLCBzdHJsZW4oIlRlc3RJdGVyYWJsZSIpKSwg
dmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxl
Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIlRlc3RJdGVyYWJsZSIpOwogfQpAQCAtMTY3MSw3ICsxNjcxLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yR2V0dGUKICAgICByZXR1cm4gSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0K
QEAgLTE2ODMsNyArMTY4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvclNldHRlCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpLCBz
dHJsZW4oIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpA
QCAtMTY5NCw3ICsxNjk0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvckdldHQKICAgICByZXR1cm4g
SlNUZXN0OjpnZXRMZWdhY3lGYWN0b3J5RnVuY3Rpb24oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RMZWdhY3lG
YWN0b3J5RnVuY3Rpb24iKTsKIH0KQEAgLTE3MDYsNyArMTcwNiw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3Ry
dWN0b3JTZXR0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RMZWdh
Y3lGYWN0b3J5RnVuY3Rpb24iKSwgc3RybGVuKCJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbiIpOwogfQpAQCAtMTcxNyw3ICsxNzE3LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3JHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpn
ZXRMZWdhY3lGYWN0b3J5RnVuY3Rpb24oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkF1ZGlvIik7CiB9CkBAIC0xNzI5LDcg
KzE3MjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9D
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJBdWRpbyIpLCBzdHJsZW4oIkF1ZGlvIikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiQXVkaW8iKTsKIH0KQEAgLTE3NDAsNyAr
MTc0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0CiAgICAgcmV0dXJuIEpTVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TGVn
YWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMTc1Miw3ICsxNzUyLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3JTZXQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSwgc3RybGVuKCJUZXN0TGVnYWN5T3ZlcnJpZGVCdWls
dElucyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0xNzYzLDcgKzE3NjMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25z
dHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1Rlc3RNYXBMaWtlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE1hcExpa2UiKTsKIH0K
QEAgLTE3NzUsNyArMTc3NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RNYXBMaWtlIiksIHN0cmxlbigiVGVzdE1h
cExpa2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFw
TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0TWFwTGlrZSIpOwogfQpAQCAtMTc4Niw3ICsxNzg2LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3QKICAgICByZXR1cm4gSlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7
CiB9CkBAIC0xNzk4LDcgKzE3OTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdAogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucyIpLCBzdHJsZW4oIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnMiKTsKIH0KQEAgLTE4MDksNyArMTgwOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
CiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE4MjEs
NyArMTgyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIi
KSwgc3RybGVuKCJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllciIpOwogfQpAQCAtMTgzMiw3ICsxODMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGkK
ICAgICByZXR1cm4gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24iKTsKIH0KQEAgLTE4NDQsNyArMTg0NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
biIpOwogfQpAQCAtMTg1NSw3ICsxODU1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckMKICAg
ICByZXR1cm4gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAg
LTE4NjcsNyArMTg2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMTg3OCw3ICsxODc4LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvckcKICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTg5MCw3ICsxODkwLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3RvclMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xOTAxLDcgKzE5
MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydQogICAgIHJldHVybiBKU1Rlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwog
fQpAQCAtMTkxMyw3ICsxOTEzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnUKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uIiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBA
IC0xOTI0LDcgKzE5MjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0bwogICAgIHJldHVybiBK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpA
QCAtMTkzNiw3ICsxOTM2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG8KICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
IiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xOTQ3LDcgKzE5NDcsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydQogICAgIHJldHVybiBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAtMTk1
OSw3ICsxOTU5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnUKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIiks
IHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIik7CiB9CkBAIC0xOTcwLDcg
KzE5NzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvckdldHRlcgogICAgIHJldHVybiBKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGgiKTsKIH0KQEAgLTE5ODIsNyArMTk4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yU2V0dGVy
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEdldHRlckNh
bGxXaXRoIiksIHN0cmxlbigiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIp
OwogfQpAQCAtMTk5Myw3ICsxOTkzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2UKICAgICBy
ZXR1cm4gSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTIwMDUs
NyArMjAwNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNlCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4o
IlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ciIpOwogfQpAQCAtMjAxNiw3ICsyMDE2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IKICAg
ICByZXR1cm4gSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIik7
CiB9CkBAIC0yMDI4LDcgKzIwMjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcgogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
ZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIwMzksNyArMjAzOSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvckdlCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyIik7CiB9CkBAIC0yMDUxLDcgKzIwNTEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3JTZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTIwNjIsNyArMjA2Miw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMjA3NCw3
ICsyMDc0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWMKICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKSwgc3Ry
bGVuKCJUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0yMDg1LDcgKzIwODUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcgogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIwOTcsNyArMjA5Nyw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIp
OwogfQpAQCAtMjEwOCw3ICsyMTA4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWMKICAgICBy
ZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyIik7CiB9CkBAIC0yMTIwLDcgKzIxMjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25z
dHJ1YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIi
KTsKIH0KQEAgLTIxMzEsNyArMjEzMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlCiAgICAg
cmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciIp
OwogfQpAQCAtMjE0Myw3ICsyMTQzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGUKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIik7CiB9CkBAIC0yMTU0
LDcgKzIxNTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbgogICAgIHJldHVybiBKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAgLTIxNjYs
NyArMjE2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluCiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMjE3Nyw3ICsyMTc3LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3AKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIpOwog
fQpAQCAtMjE4OSw3ICsyMTg5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3AKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllcyIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzIik7CiB9CkBAIC0yMjAwLDcgKzIyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcAogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAg
LTIyMTIsNyArMjIxMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIiksIHN0cmxlbigiVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMjIy
NCw3ICsyMjI0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yR2V0dGUKICAgICByZXR1cm4gSlNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWw6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWwiKTsKIH0KQEAgLTIyMzksNyArMjIzOSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1
Y3RvclNldHRlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RPcGVy
YXRpb25Db25kaXRpb25hbCIpLCBzdHJsZW4oIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIpKSwg
dmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25k
aXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RPcGVyYXRp
b25Db25kaXRpb25hbCIpOwogfQpAQCAtMjI1Miw3ICsyMjUyLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlQ28KICAgICByZXR1cm4gSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIik7
CiB9CkBAIC0yMjY0LDcgKzIyNjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDbwogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZSIpLCBzdHJsZW4oIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKTsKIH0KQEAgLTIyNzUsNyArMjI3NSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVzdFBsdWdpbkludGVyZmFjZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJm
YWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVn
aW5JbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlRlc3RQbHVnaW5JbnRlcmZhY2UiKTsKIH0KQEAgLTIyODcsNyArMjI4Nyw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNl
Q29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3RQbHVnaW5JbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0UGx1Z2luSW50ZXJmYWNlIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFBsdWdpbkludGVyZmFjZSIpOwog
fQpAQCAtMjI5OCw3ICsyMjk4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvckdldHRlcihKU0cKICAgICByZXR1
cm4gSlNUZXN0UmVhZE9ubHlNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFJlYWRPbmx5TWFwTGlrZSIp
OwogfQpAQCAtMjMxMCw3ICsyMzEwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvclNldHRlcihKU0cKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFJlYWRPbmx5TWFwTGlrZSIpLCBz
dHJsZW4oIlRlc3RSZWFkT25seU1hcExpa2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0UmVhZE9ubHlNYXBMaWtlIik7CiB9CkBAIC0yMzIxLDcgKzIzMjEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNv
bnN0cnVjdG9yR2V0dGVyKEpTRwogICAgIHJldHVybiBKU1Rlc3RSZWFkT25seVNldExpa2U6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0
TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVh
ZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0UmVhZE9ubHlTZXRMaWtlIik7CiB9CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlr
ZUNvbnN0cnVjdG9yU2V0dGVyKEpTRwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJUZXN0UmVhZE9ubHlTZXRMaWtlIiksIHN0cmxlbigiVGVzdFJlYWRPbmx5U2V0TGlrZSIp
KSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNl
dExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RSZWFkT25seVNldExpa2UiKTsK
IH0KQEAgLTIzNDQsNyArMjM0NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JHZXR0CiAgICAgcmV0
dXJuIEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1l
bW9yeUNvc3RDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiKTsKIH0KQEAgLTIzNTYsNyArMjM1Niw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0Q29uc3RydWN0b3JTZXR0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiKSwgc3RybGVuKCJUZXN0UmVwb3J0RXh0
cmFNZW1vcnlDb3N0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpOwogfQpAQCAtMjM2OCw3ICsyMzY4
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHIKICAgICByZXR1cm4gSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIp
OwogfQpAQCAtMjM4Myw3ICsyMzgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHIKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ui
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Iik7CiB9CkBAIC0yMzk2LDcgKzIzOTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iagogICAg
IHJldHVybiBKU1Rlc3RTZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFNldExpa2UiKTsKIH0KQEAgLTI0MDgsNyArMjQwOCw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yU2V0
dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRl
c3RTZXRMaWtlIiksIHN0cmxlbigiVGVzdFNldExpa2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U2V0TGlrZSIp
OwogfQpAQCAtMjQxOSw3ICsyNDE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3QKICAgICBy
ZXR1cm4gSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uczo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9CkBAIC0yNDMxLDcgKzI0MzEsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNDb25zdAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpLCBzdHJsZW4oIlRlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAgLTI0NDIsNyArMjQ0Miw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVy
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdFN0cmluZ2lmaWVyIik7CiB9CkBAIC0yNDU0LDcgKzI0NTQsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0
ZXIoSlNHbG9iYQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3Ry
aW5naWZpZXIiKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0U3RyaW5naWZpZXIiKTsKIH0KQEAgLTI0NjUsNyArMjQ2NSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVy
YXRpb25Db25zdHJ1CiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIik7CiB9CkBAIC0yNDc3LDcgKzI0Nzcs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKSwgc3RybGVuKCJU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKTsKIH0KQEAgLTI0ODgsNyArMjQ4OCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiIpOwogfQpAQCAtMjUwMCw3ICsyNTAwLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKSwgc3RybGVuKCJUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIik7
CiB9CkBAIC0yNTExLDcgKzI1MTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbgogICAgIHJl
dHVybiBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIik7CiB9CkBAIC0yNTIzLDcgKzI1MjMs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIiksIHN0cmxl
bigiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiKTsK
IH0KQEAgLTI1MzQsNyArMjUzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uCiAgICAgcmV0
dXJuIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKTsKIH0KQEAgLTI1NDYsNyArMjU0Niw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKSwgc3RybGVu
KCJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmdDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpOwog
fQpAQCAtMjU1Nyw3ICsyNTU3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWMKICAgICByZXR1
cm4gSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlIik7CiB9CkBAIC0yNTY5LDcgKzI1NjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1
YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZSIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKTsK
IH0KQEAgLTI1ODAsNyArMjU4MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1CiAgICAgcmV0
dXJuIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlIik7CiB9CkBAIC0yNTkyLDcgKzI1OTIsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
Q29uc3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUiKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTI2MDMsNyArMjYwMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iCiAgICAgcmV0dXJuIEpTVGVzdFR5cGVkZWZzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFR5cGVkZWZzIik7CiB9CkBAIC0yNjE1LDcgKzI2MTUs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZz
Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0VHlwZWRlZnMiKSwgc3RybGVuKCJUZXN0VHlwZWRlZnMiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0VHlwZWRlZnMiKTsKIH0KQEAgLTI2MjYsNyArMjYyNiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
R2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIEpTV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJXb3JrZXJH
bG9iYWxTY29wZSIpOwogfQpAQCAtMjYzOCw3ICsyNjM4LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIo
SlNHbG8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiV29ya2VyR2xvYmFs
U2NvcGUiKSwgc3RybGVuKCJXb3JrZXJHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIldvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0yNjQ5LDcgKzI2NDksNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbAogICAgIHJldHVybiBKU1dvcmtsZXRHbG9iYWxTY29wZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpOwogfQpAQCAtMjY2MSw3ICsyNjYxLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
V29ya2xldEdsb2JhbFNjb3BlIiksIHN0cmxlbigiV29ya2xldEdsb2JhbFNjb3BlIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiV29ya2xldEdsb2JhbFNjb3BlIik7CiB9CkBAIC0yNjgz
LDcgKzI2ODMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rp
b25SZWd1bGFyT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJl
Z3VsYXJPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInJl
Z3VsYXJPcGVyYXRpb24iKTsKIH0KQEAgLTI3NDYsNyArMjc0Niw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5h
YmxlZEF0UnVuCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5j
dGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9u
Iik7CiB9CkBAIC0yNzcwLDcgKzI3NzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVu
YWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3Bl
cmF0aW9uU3RhdGljLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmNhbGxTdGF0aWM8anNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlv
bkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMiKTsKIH0KQEAg
LTI3OTQsNyArMjc5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lm
aWNXb3JsZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEluU3BlY2lmaWNXb3JsZCIpOwogfQpAQCAtMjgx
Niw3ICsyODE2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dv
cmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRX
aGVuUnVudGltZUZlYXR1cmVFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5j
dGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkSW5TcGVjaWZpY1dvcmxk
V2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpOwogfQpAQCAtMjgzOCw3ICsyODM4LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNl
RnVuY3Rpb25FbmFibGVkSW5TcGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9i
amVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0
dXJlc0VuYWJsZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJl
c0VuYWJsZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3Bl
Y2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0
dXJlc0VuYWJsZWQiKTsKIH0KQEAgLTI4NTYsNyArMjg1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdFBy
aXZhdGVGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uVGVzdFByaXZhdGVGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rpb24sIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdFByaXZhdGVGdW5jdGlvbkJvZHksIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidGVzdFByaXZhdGVGdW5jdGlvbiIpOwogfQpAQCAtMjg3NSw3ICsyODc1LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25DYWxjdWxhdGVTZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25DYWxjdWxh
dGVTZWNyZXRSZXN1bHQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQ
cm9taXNlPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iik7CiB9CkBAIC0yODkwLDcgKzI4
OTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VGdW5jdGlvbkdldFNlY3JldEJvbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLmdldFNlY3Jl
dEJvb2xlYW4oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkdldFNlY3Jl
dEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9v
bGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0U2VjcmV0Qm9v
bGVhbiIpOwogfQpAQCAtMjkwNiw3ICsyOTA2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUcK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMQm9vbGVhbj4oaW1wbC50ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNy
ZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9i
amVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJl
R2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
dGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggZjQ4Nzk3NDQyZWJmOGZhNWE5N2Y5
MTIxMWRhOWQ0MzkyZjM2NGUwMi4uMDVjYWEzMTZiZWU4MzFhZjU3MTBhMTNmMjQ3NTYyNDU2ZGI5
ZTRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjQx
LDcgKzI0MSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaW5l
T3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iCiAgICAgcmV0dXJuIEpTT2JqZWN0
OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApp
bmRleCBmYjk5NjNlNjRhMDAyNjYyYTQ0OThmNWM1NjY4YTlhMTlkMmIxOTQxLi4yYTMyMzM3Y2Ni
MmQyZmZiNzNjNjQ2ZTlkZDI3YzFjNjI3ZTY1N2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDYsOCArNDYsOCBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTI0MSw3ICsyNDEsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSgogICAgIHJldHVybiBKU09i
amVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUxLDcg
KzI1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDU2MjFiY2JjMGM4MTI0ZGI4Y2ExNGYwMmY3ZGEy
ZjI3NzY1MGZlYzEuLjYzNzgwZmJhOTNjMzc2Yzk3YTZmZGZkNmEyNDVmZTc4MjZmYWE5NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
CkBAIC00OCwxMiArNDgsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25z
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNl
dHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjUzLDcgKzI1Myw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVz
dEluZGV4ZWRTCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFt
ZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNjMsNyArMjYzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGkKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5Niw3ICsyOTYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyUHJvdG90eXBlRnVuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXJCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAKaW5kZXggZTEwODQ0NDQwZTYzOWM2NGMxZGViODY2NzhiN2I3YWM1
YTFkMWI4Yi4uMzU3MWEyMjk4ZDkxMjE5MzY2MzhkYTUyYTY2MWU3YzQ4M2I0ZjMxZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAKQEAgLTc1LDkxICs3NSw5MSBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogLy8gRnVuY3Rpb25zCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4
T3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGlu
Q29tcGxleE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKTsK
ICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTEpICYmIEVOQUJMRShDb25kaXRpb24yMikp
IHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRp
b24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRp
b25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlv
bihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdz
Q29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9u
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0Rmll
bGRPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24yMikgJiYgRU5BQkxF
KENvbmRpdGlvbjMzKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1p
eGluT3BlcmF0aW9uRnJvbVBhcnRpYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRob2QxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
blN1cHBsZW1lbnRhbE1ldGhvZDEpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMpOwogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1l
bnRhbE1ldGhvZDQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25T
dXBwbGVtZW50YWxNZXRob2Q0KTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpblJl
YWRPbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
TWl4aW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVy
ZmFjZU1peGluQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50
ZXJmYWNlTWl4aW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEludGVyZmFj
ZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbk5v
ZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VN
aXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVu
dGFsU3RhdGljUmVhZE9ubHlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsU3RyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsU3RyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZVByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtMjU4LDcgKzI1OCw3
IEBAIHN0YXRpY19hc3NlcnQoVGVzdFN1cHBsZW1lbnRhbDo6U1VQUExFTUVOVEFMQ09OU1RBTlQx
ID09IDEsICJTVVBQTEVNRU5UQUxDT05TVEFOCiBzdGF0aWNfYXNzZXJ0KFRlc3RTdXBwbGVtZW50
YWw6OkNPTlNUX0lNUEwgPT0gMiwgIkNPTlNUX0lNUEwgaW4gVGVzdFN1cHBsZW1lbnRhbCBkb2Vz
IG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwogI2VuZGlmCiAKLXRlbXBsYXRlPD4gRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y29uc3Ry
dWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVT
IEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9
IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODQsNiArMjg0LDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpjb25zdHJ1
Y3QoSlMKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNU
SU9OKEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC01MTYsNyArNTE3LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0SW50ZXJmYWNlKiBJRExPcGVyYXRpb248SlNUZXN0SW50
ZXJmYWNlPjo6Y2FzdChKU0dsb2JhbE8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUyNiw3ICs1MjcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW50ZXJmYWNl
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NTQ4LDcgKzU0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhp
blJlYWRPbmx5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5taXhpblJlYWRPbmx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZh
Y2VNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhp
blJlYWRPbmx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5SZWFkT25seUF0dHJpYnV0
ZSIpOwogfQpAQCAtNTY0LDcgKzU2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VNaXhpbkF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5taXhpbkF0dHJpYnV0ZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1p
eGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01ODUsNyArNTg2LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJtaXhpbkF0dHJpYnV0ZSIpOwogfQpAQCAtNTk5LDcgKzYwMCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbE9iamVjdCYKICAgICByZXR1cm4gdGhpc09iamVjdC5taXhpbkN1c3RvbUF0dHJpYnV0ZShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
TWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+
OjpnZXQ8anNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjE0LDcgKzYxNSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRlcihK
U0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbnRl
cmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZU1peGlu
Q3VzdG9tQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjMwLDcgKzYzMSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Ob2RlQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50
ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5Ob2RlQXR0cmli
dXRlIik7CiB9CkBAIC02NTEsNyArNjUyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRl
cmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJtaXhpbk5vZGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTY2Nyw3ICs2NjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWxHZXR0ZXIoSlNH
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUGFy
dGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1
dGVGcm9tUGFydGlhbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0
cmlidXRlRnJvbVBhcnRpYWxHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwYXJ0aWFsTWl4aW5BdHRyaWJ1dGVG
cm9tUGFydGlhbCIpOwogfQpAQCAtNjgyLDcgKzY4Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0
ckdlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6
OnN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFj
ZT46OmdldFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRp
Y1JlYWRPbmx5QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1
cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0ciIpOwogfQpAQCAtNjk3LDcgKzY5OCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRh
bFN0YXRpY0F0dHJHZXR0ZXIoSlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2Vi
Q29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RhdGljQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0
YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNl
Pjo6Z2V0U3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRh
bFN0YXRpY0F0dHIiKTsKIH0KQEAgLTcxNyw3ICs3MTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyU2V0dGVy
KEpTRwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JT
dXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldFN0YXRpYzxz
ZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1cHBsZW1l
bnRhbFN0YXRpY0F0dHIiKTsKIH0KQEAgLTczMyw3ICs3MzQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01T
dHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBw
bGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0cjEoaW1wbCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIx
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdElu
dGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic3VwcGxlbWVudGFsU3RyMSIpOwogfQpAQCAtNzQ5LDcgKzc1MCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMihpbXBsKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdHIyIik7CiB9CkBAIC03NzAsNyArNzcxLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxTdHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdHIyIik7CiB9CkBAIC03ODQsNyArNzg1LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjNHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdGhpc09iamVjdC5zdXBwbGVtZW50YWxT
dHIzKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+Ojpn
ZXQ8anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM0dldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBs
ZW1lbnRhbFN0cjMiKTsKIH0KQEAgLTc5OSw3ICs4MDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM1NldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjNTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1cHBsZW1l
bnRhbFN0cjMiKTsKIH0KQEAgLTgxNSw3ICs4MTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8
Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxOb2RlKGlt
cGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsTm9kZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRhbE5vZGUiKTsKIH0K
QEAgLTgzNiw3ICs4MzcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsTm9kZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNl
dEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1cHBsZW1lbnRhbE5vZGUiKTsKIH0KQEAg
LTg1Miw3ICs4NTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUmVm
bGVjdEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RhdHRyaWJ1dGVBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlIik7CiB9CkBAIC04NzMsNyArODc0LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGVTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJyZWZsZWN0QXR0cmlidXRlIik7CiB9CkBAIC04OTMsNyArODk0LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uTWl4aW5PcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtaXhpbk9wZXJhdGlvbiIpOwogfQpAQCAtOTIyLDcgKzkyMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5taXhpbkNvbXBsZXhPcGVyYXRpb24oKmNvbnRleHQsIFdURk1vdmUoc3RyQXJnKSwgKm9i
akFyZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4
T3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFj
ZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVy
YXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluQ29tcGxl
eE9wZXJhdGlvbiIpOwogfQpAQCAtOTM5LDcgKzk0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9t
T3BlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUo
Y2FzdGVkVGhpcy0+bWl4aW5DdXN0b21PcGVyYXRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0
b21PcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJm
YWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkN1c3Rv
bU9wZXJhdGlvbiIpOwogfQpAQCAtOTU5LDcgKzk2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0
aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5Db25kaXRpb25hbE9w
ZXJhdGlvbiIpOwogfQpAQCAtOTc5LDcgKzk4MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3ND
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1p
eGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9u
YWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJm
YWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3ND
b25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uIik7CiB9CkBAIC05OTgsNyArOTk5
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPE5v
ZGU+Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwg
V1RGTW92ZShpbXBsUmVzdWx0Lm5vZGVzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRP
cGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiIpOwogfQpAQCAt
MTAxOCw3ICsxMDE5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3AKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0
aW9uRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFs
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwYXJ0aWFsTWl4aW5PcGVy
YXRpb25Gcm9tUGFydGlhbCIpOwogfQpAQCAtMTAzOCw3ICsxMDM5LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3Vw
cGxlbWVudGFsTWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdXBwbGVtZW50YWxNZXRob2QxIik7CiB9CkBA
IC0xMDY3LDcgKzEwNjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8
VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE1l
dGhvZDIoaW1wbCwgKmNvbnRleHQsIFdURk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25TdXBwbGVtZW50YWxNZXRob2QyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDJCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN1cHBsZW1lbnRhbE1ldGhvZDIiKTsKIH0KQEAgLTEw
ODQsNyArMTA4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1lCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c3VwcGxlbWVu
dGFsTWV0aG9kMygqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25TdXBwbGVtZW50YWxNZXRob2QzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDNCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInN1cHBsZW1lbnRhbE1ldGhvZDMiKTsKIH0KQEAgLTExMDMs
NyArMTEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5j
dGlvblN1cHBsZW1lbnRhbE1ldGhvZDQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbFN0YXRpYzxqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1
bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9kNCIpOwogfQpAQCAtMTE2NSw2ICsxMTY2LDcgQEAg
SUdOT1JFX1dBUk5JTkdTX0VORAogfTsKIAogdXNpbmcgVGVzdEludGVyZmFjZUl0ZXJhdG9yUHJv
dG90eXBlID0gSlNET01JdGVyYXRvclByb3RvdHlwZTxKU1Rlc3RJbnRlcmZhY2UsIFRlc3RJbnRl
cmZhY2VJdGVyYXRvclRyYWl0cz47CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihUZXN0SW50
ZXJmYWNlSXRlcmF0b3JQcm90b3R5cGVOZXh0LCBUZXN0SW50ZXJmYWNlSXRlcmF0b3JQcm90b3R5
cGU6Om5leHQpOwogCiB0ZW1wbGF0ZTw+CiBjb25zdCBKU0M6OkNsYXNzSW5mbyBUZXN0SW50ZXJm
YWNlSXRlcmF0b3JCYXNlOjpzX2luZm8gPSB7ICJUZXN0SW50ZXJmYWNlIEl0ZXJhdG9yIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZXN0SW50
ZXJmYWNlSXRlcmF0b3JCYXNlKSB9OwpAQCAtMTE3OCw3ICsxMTgwLDcgQEAgc3RhdGljIGlubGlu
ZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXND
YWxsZXIoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yQ3JlYXRlPFRl
c3RJbnRlcmZhY2VJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMp
KTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMTE4OCw3ICsxMTkwLDcg
QEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbktleXNDYWxsZXIoSlNHbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0
ZXJhdG9yQ3JlYXRlPFRlc3RJbnRlcmZhY2VJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlv
bktpbmQ6OktleXMpKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6
Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMTE5OCw3ICsxMjAwLDcg
QEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlc0NhbGxlcihKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0
ZXJhdG9yQ3JlYXRlPFRlc3RJbnRlcmZhY2VJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlv
bktpbmQ6OlZhbHVlcykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVl
cywgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJm
YWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0NhbGxlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTEyMDgs
NyArMTIxMCw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVyKEpTR2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShpdGVyYXRvckZvckVhY2g8VGVzdEludGVyZmFjZUl0ZXJhdG9yPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKnRoaXNPYmplY3QpKTsKIH0KIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2hDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiZm9yRWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZS5jcHAKaW5kZXggMzYyOGNkNjYyN2NjOGVmZjc1MzRiOTY0NmY4YmVmNWE5Mjkx
NDhkZi4uMGE2OWRmYjdlYmMwMGZjMWQ1MzFiMzIzMWVhNTJmODRhYzQwN2FkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCkBAIC00Niw5
ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZVJlYWRvbmx5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVy
ZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE1OCw3ICsxNTgsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSogSURMQXR0cmlidXRlPEpTVGVzdElu
dGVyZmFjZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVh
ZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNjgsNyArMTY4LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw3ICsxODksNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seUdl
dHRlcihKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVh
ZG9ubHkoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVSZWFkb25seShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmU+OjpnZXQ8anNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVS
ZWFkb25seUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRvbmx5Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNw
cAppbmRleCAxNDRmYTAxZTFjMzQ1NDRhNzQwZTg4YmU1MjZmOTE1MDRlMzAxNzhlLi43YjQ1YzY2
NzFhMDAwMGYyODdmMGJmNTMzMjliN2NkZjA1NzFhNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAK
QEAgLTQ5LDE2ICs0OSwxNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90
eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJsZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1
bmN0aW9uU3ltYm9sSXRlcmF0b3IpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJ
dGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJh
YmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SXRlcmFibGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEl0ZXJhYmxlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RJdGVyYWJsZVByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTcyLDcgKzE3Miw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEl0ZXJhYmxlKiBJRExPcGVyYXRpb248SlNUZXN0
SXRlcmFibGU+OjpjYXN0KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0SXRlcmFibGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1l
LnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODIsNyArMTgyLDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEl0ZXJhYmxl
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SXRlcmFibGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1
MCw2ICsyNTAsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiB9OwogCiB1c2luZyBUZXN0SXRlcmFi
bGVJdGVyYXRvclByb3RvdHlwZSA9IEpTRE9NSXRlcmF0b3JQcm90b3R5cGU8SlNUZXN0SXRlcmFi
bGUsIFRlc3RJdGVyYWJsZUl0ZXJhdG9yVHJhaXRzPjsKK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNU
SU9OKFRlc3RJdGVyYWJsZUl0ZXJhdG9yUHJvdG90eXBlTmV4dCwgVGVzdEl0ZXJhYmxlSXRlcmF0
b3JQcm90b3R5cGU6Om5leHQpOwogCiB0ZW1wbGF0ZTw+CiBjb25zdCBKU0M6OkNsYXNzSW5mbyBU
ZXN0SXRlcmFibGVJdGVyYXRvckJhc2U6OnNfaW5mbyA9IHsgIlRlc3RJdGVyYWJsZSBJdGVyYXRv
ciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
VGVzdEl0ZXJhYmxlSXRlcmF0b3JCYXNlKSB9OwpAQCAtMjYzLDcgKzI2NCw3IEBAIHN0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkVudHJp
ZXNDYWxsZXIoSlNHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0
ZTxUZXN0SXRlcmFibGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OlZhbHVl
cykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFi
bGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFibGU+OjpjYWxsPGpz
VGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI3Myw3ICsyNzQsNyBAQCBz
dGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rp
b25LZXlzQ2FsbGVyKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0
b3JDcmVhdGU8VGVzdEl0ZXJhYmxlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5k
OjpLZXlzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJ
dGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMjgzLDcgKzI4NCw3IEBAIHN0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVl
c0NhbGxlcihKU0dsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0
ZTxUZXN0SXRlcmFibGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OlZhbHVl
cykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFi
bGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEl0ZXJhYmxlPjo6Y2FsbDxqc1Rl
c3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMjkzLDcgKzI5NCw3IEBAIHN0YXRp
YyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2hDYWxsZXIoSlNHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckZv
ckVhY2g8VGVzdEl0ZXJhYmxlSXRlcmF0b3I+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqdGhpc09iamVjdCkpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaCwgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRl
cmFibGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IDFjMTFiYzZiZmI5NmJm
YmJkN2I5MDdhOWNiY2M1ODA1Mjk2YjI4ZDUuLjJhN2E2NmY0YWRjODEyY2EwMjYxZWRmNjk2MjRj
MDk0NTc0YmIxZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNw
cApAQCAtNDMsMTUgKzQzLDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9u
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21GdW5jdGlvbihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21GdW5jdGlv
bik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldD
dXN0b20oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVDdXN0b20oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZVJXQ3VzdG9tKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTE3MSw3ICsxNzEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvciogSURMT3BlcmF0aW9uPEpTVGVzdEpTQnVpbHRpbkNvbnN0cgogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKj4oSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbUdldHRl
cihKU0dsb2IKICAgICByZXR1cm4gdGhpc09iamVjdC50ZXN0QXR0cmlidXRlQ3VzdG9tKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1
dGVDdXN0b20oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpnZXQ8anNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JUZXN0QXR0cmlidXRlQ3VzdG9tR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZUN1c3Rv
bSIpOwogfQpAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbUdldHRlcihKU0dsCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QudGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9t
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0
dHJpYnV0ZVJXQ3VzdG9tR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZVJXQ3VzdG9tIik7
CiB9CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tU2V0dGVyKEpTR2wKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRy
aWJ1dGVSV0N1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldD
dXN0b20oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpzZXQ8c2V0SlNUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21TZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVSV0N1c3Rv
bSIpOwogfQpAQCAtMjM3LDcgKzIzNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uVGVzCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhp
cy0+dGVzdEN1c3RvbUZ1bmN0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9u
VGVzdEN1c3RvbUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yPjo6Y2FsbDxqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJ0ZXN0Q3VzdG9tRnVuY3Rpb24iKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAKaW5kZXggMzRiMmY1NWI1MmE1MmI5N2Q3Y2U5
ZTZlZGMyNTc2ZjAzYjYzYzE4ZC4uYWRlN2E0NjhiY2VmOTcyNzc1ZDZjNGIzNTk1ODg0YWFhZTYy
ODYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAKQEAg
LTQ4LDggKzQ4LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMDEsNyArMTAxLDcgQEAgdGVtcGxhdGU8PiB2b2lk
IEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVy
dGllcyhWTSYKIAogdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKSB9OwogCi10ZW1wbGF0ZTw+
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGlj
YWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMzIsNiArMTMyLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnkK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpT
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdCwg
SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpjb25zdHJ1
Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVn
YWN5RmFjdG9yeUZ1bmN0aW9uOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNv
bnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yMDYsNyArMjA3LDcg
QEAgdm9pZCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmRlc3Ryb3koSlNDOjpKU0NlbGwq
IGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjp+SlNU
ZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMTYsNyArMjE3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5
RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG8KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
bkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3QuY3BwCmluZGV4IGFhYThiZTYxN2Q3ZTdjZTI4ZWNhZWUwZThiZjRlOGEzNmIyODAxZTcuLjhj
Y2ExNGU0MmQ1MWFlOGJjZTM3ZjY5ZTg2NGI5YTg1MjIwNmZkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcApAQCAtNTIsMjIgKzUyLDIyIEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5j
dGlvblZvaWRPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21P
cGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RD
b25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9wZXJhdGlvbik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBl
RnVuY3Rpb25UaHJvd2luZ09wZXJhdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRp
b24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb24pOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFk
b25seVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RO
b2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Tm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmlu
Z0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21H
ZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Tm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTc1LDcgKzE3NSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5n
QXR0cmlidXRlR2V0dGVyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFk
b25seVN0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46Omdl
dDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTE4OCw3ICsx
ODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwucmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3Jp
dGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1
dGUiKTsKIH0KQEAgLTIwNiw3ICsyMDYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVTZXR0ZQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJl
YWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dD46OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0yMTcsNyArMjE3LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9t
R2V0dGVyU2V0dGVyU3RyaW5nQXR0cmkKICAgICByZXR1cm4gdGhpc09iamVjdC5jdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVy
U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJT
dHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTIyOSw3
ICsyMjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVy
U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRl
clNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dD46OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRl
clN0cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlIik7CiB9CkBA
IC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5u
b2RlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdE5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJub2RlQXR0cmlidXRlIik7CiB9CkBA
IC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnNldDxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdE5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTI3Miw3ICsyNzIsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IFRlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdDo6c3RhdGljU3RyaW5nQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3Ry
dWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Z2V0U3RhdGlj
PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRy
aWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdGF0aWNTdHJp
bmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTI4OSw3ICsyODksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpzZXRTdGF0aWM8c2V0SlNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RhdGljU3RyaW5n
QXR0cmlidXRlIik7CiB9CkBAIC0zMDYsNyArMzA2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rp
b24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdD46OmNhbGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5j
dGlvblZvaWRPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
InZvaWRPcGVyYXRpb24iKTsKIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVG
dW5jdGlvbgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGhyb3dpbmdPcGVyYXRp
b24oKmNvbnRleHQsIFdURk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5
cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVy
YXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3Q+OjpjYWxsPGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBl
RnVuY3Rpb25UaHJvd2luZ09wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidGhyb3dpbmdPcGVyYXRpb24iKTsKIH0KQEAgLTM0Niw3ICszNDYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RQcm90b3R5cGVGdW5jdGlvbgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
SlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmN1c3RvbU9wZXJhdGlvbigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9w
ZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNhbGw8anNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlv
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY3VzdG9tT3BlcmF0aW9u
Iik7CiB9CkBAIC0zNjIsNyArMzYyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGkKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JG
dW5jdGlvblN0YXRpY09wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVj
dG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInN0YXRpY09wZXJhdGlvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnMuY3BwCmluZGV4IGRmMWZmZmI0NzkwODY0NWY4NDc3ZGQwM2VlMjgx
Yzc5ZDgzMjVhNjYuLmMzZjRkNGQ5MTQ1ZTRhN2I4OWFhNThkMzkxZWUxY2IyN2MzYWIxMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKQEAgLTUwLDEy
ICs1MCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQ
cm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtKTsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpT
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIxNSw3ICsyMTUsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKiBJRExPcGVyYXRpb248SlNUZXN0
TGVnYWN5T3ZlcnJpZAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1l
LnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjI1LDcgKzIyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk4KICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50
ZXJmYWNlPE5vZGU+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9i
amVjdCgpLCBpbXBsLm5hbWVkSXRlbShXVEZNb3ZlKG5hbWUpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBl
RnVuY3Rpb25OYW1lZEl0ZW0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjo6Y2FsbDxq
c1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW1Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5hbWVkSXRlbSIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1h
cExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1hcExpa2UuY3BwCmluZGV4IDdkYTcwNThlNzdiMjAzMjQ4YzJlMWU4ZGZkODU3Y2YwMDYyMjNh
NGQuLjczZDQzM2U1MTk5OGIzMjViOTZlMTdhMTUwNjVkN2FmYjlhZGE5ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFw
TGlrZS5jcHAKQEAgLTUwLDIxICs1MCwyMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBG
dW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5j
dGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlv
blNldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVh
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJp
ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVNpemUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xh
c3MgSlNUZXN0TWFwTGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTg5LDcgKzE4OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdE1hcExpa2UqIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FzdChKU0dsb2JhbE9i
amVjCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWFwTGlrZSo+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xOTksNyArMTk5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmMKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE1hcExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0TWFwTGlrZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndhcmRTaXplVG9NYXBMaWtlKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RNYXBMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE1hcExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE1hcExpa2U+OjpnZXQ8anNUZXN0TWFwTGlrZVNpemVH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CkBAIC0y
MzgsNyArMjM4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkR2V0
VG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywg
V1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldCIpOwog
fQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJo
YXMiKTsKIH0KQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHkoSlNDOgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExB
bnk+KGZvcndhcmRFbnRyaWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0yODUsNyArMjg1LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5
KEpTQzo6SlMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5
KEpTQzo6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVz
dE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2hCb2R5KEpTQzoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsK
IH0KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0Qm9keShKU0M6OkpTRwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZv
cndhcmRTZXRUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzLCBXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblNl
dCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxq
c1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgInNldCIpOwogfQpAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVh
ckJvZHkoSlNDOjpKCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25DbGVhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7CiB9CkBAIC0zNzUs
NyArMzc1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHkoSlNDOjoKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRGVsZXRl
VG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywg
V1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25EZWxldGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImRlbGV0ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnMuY3BwCmluZGV4IGQ5MDMzYzY5ZGY4ZWIyNjliMDJkYzI5ZGZhMmIz
ZDVlMjNhMTJkZDEuLmI5ZmJlYTdjZjdlNTliMmNmMjcxMjU4ZDE0MTExYjY0MDQwODllYTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucy5jcHAKQEAgLTUxLDIyICs1MSwyMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBG
dW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbkdldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25HZXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKIAogY2xhc3MgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTkx
LDcgKzE5MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMCiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyo+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDEs
NyArMjAxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uczo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmpl
Y3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0R2V0dGVy
KEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc2V0KCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNT
ZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnM+OjpnZXQ8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldEdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInNldCIpOwogfQpAQCAtMjQwLDcgKzI0MCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0U2V0dGVy
KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1NldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Pjo6c2V0PHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXRTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldCIpOwog
fQpAQCAtMjUyLDcgKzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb01hcExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInNpemUiKTsKIH0KQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJjbGVhciIpOwogfQpAQCAtMjg4LDcgKzI4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZEdldFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uR2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3Rv
dHlwZUZ1bmN0aW9uR2V0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJn
ZXQiKTsKIH0KQEAgLTMwNyw3ICszMDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExB
bnk+KGZvcndhcmRIYXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+Ojpj
YWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CiB9CkBA
IC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJk
RW50cmllc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMzM1
LDcgKzMzNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNU
b01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0KQEAgLTM0OSw3ICszNDksNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRWYWx1ZXNUb01hcExpa2UoKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMzY4LDcgKzM2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CkBAIC0zODcsNyArMzg3LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRGVsZXRlVG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbkRlbGV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImRlbGV0ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCBi
ZGQ5NDUxZWEyYTc4MjQ4MzllNGExOTRkNzFiZjFlMDQ5ZWRjM2E4Li5mOTgwYzk3MTEzNmMyMmMy
MDc5NGU4OGE1ZDgwYTI2NTBiNjFiNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNDcsOCArNDcsOCBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTMxNSw3ICszMTUsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdAog
ICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhy
b3cpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMzI1LDcgKzMyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAppbmRleCAwYjQ4NThjNzE3ZmQ1ZTQ2Y2IzMTE1ZmJkZmZmYWYxZGRm
YThmZmZmLi5kNjExMzBiZjRjZWEzNDAwYjc3NzBmMjFhMzlhNzc5MmJlYTAyNDg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTQ3LDggKzQ3LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMzE1LDcgKzMxNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBv
CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxH
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzI1LDcgKzMyNSw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29s
IHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBkNjFkMGNmMTBjYTA0
NzkzYTljNDQ2YmFiYTExOWU2MmJlNTAwZDJkLi4yMGUwMjMzZWNmOTc0ZmM4NmNhODVhMjJmZjkx
MTQ3MjBkYWQzMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTQ5LDEzICs0OSwxMyBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJv
dG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRl
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbklu
ZGV4ZWRTZXR0ZXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CkBAIC0zMjksNyArMzI5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3QK
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUu
dGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzOSw3ICszMzksNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25OYW1lZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVy
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRlciIpOwog
fQpAQCAtMzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbklu
ZGV4ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDZm
ZTAwZDFiNThkN2YwNzgwOWRhMGEyNWFmZmU4YTZiMjRkNzkzM2IuLjFkNTJhNjQ2NGExZGE1OTdh
OTVhYTRkOTNiYjU0OGFmZDMxZDgwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
ZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBKU0dsb2JhCiAgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgbGV4aWNhbEdsb2JhbE9i
amVjdCwgaW5kZXgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjM3LDcgKzIzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCBiODU2MGZhMWM5YzllYmE3YThjMGRiYWIyMzhkZjYx
NDkxNTAwZDc2Li5iMjkwNDRlYTAwZmRiYjVmYzAzNjczZThkNDdiNTUxYzNiZjIyNjQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRl
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhy
b3dpbmdFeGNlcHRpb246OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTCiAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgbGV4aWNhbEds
b2JhbE9iamVjdCwgaW5kZXgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggMmJiYWNi
YzNiOGQxZjg1NzYyMmQyZWY0ZjI2ZmUxOWQyODliYjRhMi4uMjc0NzFlZGU5ZWVmNDcyZDJiYjFk
ODE5MGY3ODNmMTAzMWJhYzRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC00NywxMiArNDcsMTIgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRE
ZWxldGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZUZ1bmN0aW9uTmFtZWREZWxldGVyKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjM0LDcgKzIzNCw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVy
YXRpb248SlNUZXN0TmFtZWREZWxlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDQsNyArMjQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3NCw3ICsyNzQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRlcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQ
cm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRlckJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibmFtZWREZWxldGVyIik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApp
bmRleCA2YmE0MjNmNmYyMjY3MWY1ODJmOTMwYjY0ZDhlMTIwN2EzZDNjZDgxLi4wMGM5NjM0YTQ0
ZGM4MDJlMjVkZGFlNDFmMWQ3MGM0NTI4N2FkYzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRH
ZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKQEAgLTQ3LDggKzQ3LDggQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjQxLDcg
KzI0MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmRlbGV0
ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTCiAgICAgcmV0dXJuICFpbXBsLmlzU3Vw
cG9ydGVkUHJvcGVydHlJbmRleChpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKaW5kZXggMGM4OTkzMTI0MzZi
OWQyMWM4MzI0MjUyZDFkOWVmMWIzNGMyYzIyZC4uZTRiOTVhNDYyNDM2ZjY5NzE0OGRkNTg5NTg1
MGVlNWU0ZjczYTA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNw
cApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFt
ZWRHZXR0ZXJDYWxsV2l0aFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgSlNUZXN0TmFtZWRHZXR0
ZXJDYWxsV2l0aDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2Jh
bE9iCiAgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjExLDcgKzIxMSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNw
cAppbmRleCAxN2JjZjc5MjViMGQ1NjExYjQzZDY3MzI4YTVlMWNjZWUyNWU4ZTk5Li5lZWE3NGVj
ZDY1NDg3Y2Q1MjVjNzVlZjJhMzg2MDA4MzI4NjhkMjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iCiAgICAg
SlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMTEsNyArMjExLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEcKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyLmNwcAppbmRleCBlZjEzMjY3NGM0NzNkNDE1NTc5NmNhMWUzNzY3ZTQ1OWQy
NmVhNzM0Li42NmVhNzJjODMyNTIxYTE2YWI3MWQ2MDdjNzY4YzVlZGUzY2ZjNTRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC00Nywx
MiArNDcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyUHJvdG90eXBlRnVuY3Rpb25HZXR0ZXJOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEdldHRl
cldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25HZXR0ZXJOYW1lKTsKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIx
Miw3ICsyMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRHZXR0ZQogICAgIHJldHVybiBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIqPihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIyLDcgKzIyMiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTAs
NyArMjUwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGkKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgaW1wbC5nZXR0ZXJOYW1lKFdURk1vdmUobmFtZSkpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5h
bWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZUZ1bmN0aW9uR2V0dGVyTmFtZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiZ2V0dGVyTmFtZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllci5jcHAKaW5kZXggZWYwMzlkYjZmZTM5MThmYWQ5YTc2MzQ3NzMwNmY5MzRmMzQwMjhk
Ny4uYmU4NmVmNzA3ODcxYmY1NDk0MTJmNTMwYjBhYWRjNmU2NmU3ZmNlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00Niw4ICs0Niw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI3MCw3ICsyNzAsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBKU0ds
b2JhbAogICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hv
dWxkVGhyb3cpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI4MCw3ICsyODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsRwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCmluZGV4IDJjNzllM2QzMTMzMWVjN2YzYjVjNmNjNmYwNWIzNmNlOWJhNWIwZWUu
LjI5ZjY1YTZjODRlZTE0NGY0MDYwMThmNDY1NTZmYjhmYmRiZTkzYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTQ2LDgg
KzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI3
MCw3ICsyNzAsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmRl
ZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTRwogICAgIHJldHVybiBKU09iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODAsNyArMjgwLDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
LmNwcAppbmRleCAxNDZiNDE0YjFkZjljZDc0YmMwOWE2NDE0NDRhNWQyMDlmZjc1ZjQyLi5mYmM5
YTlkMDkxNTUwMWFkNDI0MGE5OGViMTc5NTMxNTg4YTg1ZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC00NywxMiArNDcsMTIgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25OYW1lZFNldHRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjgxLDcgKzI4MSw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElE
TE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTEsNyArMjkxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyNCw3ICszMjQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRlciIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IGRiMDgy
ZTlmN2EzN2ZhYzA1ZDllOTRlMjBjZGZmYTJkYzI0ZTRlNjUuLjMwMzYxMDVjMGQ3OWYwNGVmMzU4
YTMwNDZjOWY5OTk5MmU1NTc1YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKQEAgLTQ5LDEzICs0OSwxMyBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bk5hbWVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0zMDYsNyArMzA2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2UKICAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxNiw3
ICszMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBl
RnVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uTmFt
ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7CiB9CkBAIC0zNjksNyArMzY5LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJQcm90b3R5cGVGdW4KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
aW1wbC5pbmRleGVkU2V0dGVyKFdURk1vdmUoaW5kZXgpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90
eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0
dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQ
cm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAppbmRl
eCBhYTE4ZTJkYjg4Zjc3NTMyZTE2MDMzYjRlMTNiZGNiODIwZmNkNjMwLi5mMjBmNWY3ZWFkMTg2
ZDEzNTU0YWU2MDkzMzBhNjViMmU2OTQwYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCkBAIC00
OSwxMyArNDksMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90
eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFu
ZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzI5
LDcgKzMyOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIqIElETE9wZXJhdGlvbjxKU1RlCiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcio+KEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0zMzksNyArMzM5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTM3Miw3ICszNzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclBybwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
clByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5j
dGlvbk5hbWVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI+OjpjYWxsPGpzVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVy
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZFNldHRlciIpOwog
fQpAQCAtNDI0LDcgKzQyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvCiAgICAgcmV0dXJu
IGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkp
IDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXI+
OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXJPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiaW5kZXhlZFNldHRlciIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMu
Y3BwCmluZGV4IDYyNzVlYzJiZjY4NjZiOTliOWU4YzM4ZmFhNjk5ZTk2ZDY4NGI4NzQuLjIwZmIy
NDRkZmUyMmEwMTM4ZTI0MzIzNTQ2NDMxOTlmMmNmNWE0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRl
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAK
IGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI1
MSw3ICsyNTEsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnM6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYgogICAgIHJldHVybiBKU09iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2IKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAKaW5kZXggZWViMjZhYjIyNGJmYjNhOGI3ODE1OGQ0
ODY0MDEwYmI0Y2ExMWEzMi4uZTMzNzYzM2NkNzI2ZjIxYzVkNDc4OGE3MjMxNzBjNzBmODRlYjhi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAKQEAgLTQ4LDEzICs0OCwxMyBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5j
dGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3Jn
ZWFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMxMSw3ICszMTEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXMqIElETE9wZXJhdGlvbgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyo+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzIxLDcgKzMyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c1VuZm9yZ2VhYmwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuZm9yZ2Vh
YmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzPjo6Z2V0PGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidW5mb3JnZWFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTM1OSw3ICsz
NTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5j
dGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1bmN0
aW9uVW5mb3JnZWFibGVPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzPjo6Y2FsbDxq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1
bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInVuZm9yZ2VhYmxlT3BlcmF0aW9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAKaW5kZXggNTE2YzZkOTUyOWExZmE1MzhmYzdlYmM0MGI4ZmFkOGYyN2VlZDU0NS4uNWU3YzFk
OWRlMTU5MzhlODNmM2NjNGIwOGYwYzEyZWNlMTQyNmY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
LmNwcApAQCAtNDgsMTMgKzQ4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0
aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbik7CiAKIC8vIEF0dHJp
YnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dEluc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjkyLDcgKzI5Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0zMDIsNyArMzAyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyMyw3ICszMjMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQW5kTGVnYWN5TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5mb3Jn
ZWFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnM+OjpnZXQ8anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidW5mb3JnZWFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJh
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjo6
Y2FsbDxqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmZvcmdlYWJsZU9wZXJh
dGlvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IGY3MzlmNjkwNGFkY2VlYjMxY2I2Yzk4YzlhMjcy
MWU4YmYxNTU3OTAuLjk4OGJiNWM0YWZmMDdkNmViMzg2NWQ1YmVmNjM3YzViYzM1Nzg5ZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAKQEAgLTU0LDI1ICs1NCwyNSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvblRlc3RXb3JrZXJQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZSk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0
ZVNlY3JldFJlc3VsdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4pOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1
bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pOwogI2VuZGlmCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblN5bWJv
bEl0ZXJhdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVu
dHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlv
blZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvbkZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE5vZGVOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5vZGVOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
Tm9kZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROb2RlUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMDgsNyArMTA4LDcgQEAg
U1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0Tm9kZVByb3RvdHlwZSwg
SlNUZXN0Tm9kZVByb3RvdHlwZTo6QmEKIAogdXNpbmcgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yID0g
SlNET01Db25zdHJ1Y3RvcjxKU1Rlc3ROb2RlPjsKIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBs
YXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdE5vZGVD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTIzLDYgKzEyMyw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhCiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNWYWx1ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3ROb2RlQ29u
c3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAog
dGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogewpAQCAtMjY0LDcgKzI2NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5vZGUqIElE
TE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzQsNyArMjc1LDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dE5vZGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROb2RlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5NSw3
ICsyOTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Tm9kZU5hbWVHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5uYW1lKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVO
YW1lKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Tm9kZT46OmdldDxqc1Rlc3ROb2RlTmFtZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5hbWUi
KTsKIH0KQEAgLTMxMyw3ICszMTQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Tm9k
ZU5hbWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5vZGVOYW1lKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE5vZGU+OjpzZXQ8c2V0SlNUZXN0Tm9kZU5hbWVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5hbWUiKTsKIH0KQEAgLTMzMCw3
ICszMzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2VCbwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2UoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RXb3JrZXJQcm9t
aXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rl
c3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlz
ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFdvcmtlclByb21p
c2UiKTsKIH0KQEAgLTM0Nyw3ICszNDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2Vj
cmV0UmVzdWx0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iik7CiB9CkBAIC0zNjIsNyArMzYz
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5nZXRTZWNyZXRC
b29sZWFuKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9k
ZVByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJnZXRTZWNyZXRCb29sZWFuIik7CiB9CkBAIC0zNzgsNyArMzc5LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5j
dGlvblRlc3RGZWF0dXJlR2V0U2VjcmUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC50ZXN0RmVhdHVyZUdldFNl
Y3JldEJvb2xlYW4oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0
dXJlR2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNl
Y3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RG
ZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpOwogfQpAQCAtMzk2LDcgKzM5Nyw3IEBAIHN0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9k
eShKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlv
blRvSlNPTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+
OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9KU09OIik7CiB9CkBAIC00NTYsNiArNDU3LDcgQEAg
SUdOT1JFX1dBUk5JTkdTX0VORAogfTsKIAogdXNpbmcgVGVzdE5vZGVJdGVyYXRvclByb3RvdHlw
ZSA9IEpTRE9NSXRlcmF0b3JQcm90b3R5cGU8SlNUZXN0Tm9kZSwgVGVzdE5vZGVJdGVyYXRvclRy
YWl0cz47CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihUZXN0Tm9kZUl0ZXJhdG9yUHJvdG90
eXBlTmV4dCwgVGVzdE5vZGVJdGVyYXRvclByb3RvdHlwZTo6bmV4dCk7CiAKIHRlbXBsYXRlPD4K
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIFRlc3ROb2RlSXRlcmF0b3JCYXNlOjpzX2luZm8gPSB7ICJU
ZXN0Tm9kZSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoVGVzdE5vZGVJdGVyYXRvckJhc2UpIH07CkBAIC00NjksNyArNDcxLDcg
QEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rp
b25FbnRyaWVzQ2FsbGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0
ZXJhdG9yQ3JlYXRlPFRlc3ROb2RlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5k
OjpWYWx1ZXMpKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3RO
b2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTQ3OSw3ICs0ODEsNyBAQCBzdGF0aWMgaW5s
aW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXIo
SlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8
VGVzdE5vZGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OktleXMpKTsKIH0K
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RO
b2RlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0K
QEAgLTQ4OSw3ICs0OTEsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvblZhbHVlc0NhbGxlcihKU0dsb2JhbE9iagogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdE5vZGVJdGVyYXRvcj4oKnRoaXNPYmpl
Y3QsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2Rl
Pjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC00OTksNyArNTAxLDcg
QEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rp
b25Gb3JFYWNoQ2FsbGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0
ZXJhdG9yRm9yRWFjaDxUZXN0Tm9kZUl0ZXJhdG9yPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgKnRoaXNPYmplY3QpKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
LCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6
Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMTM1
YjA1ZTBmYjYxZTZlYzBjNjQ5NzE5MWVhNDdjYzkwZjY2MzIzZS4uY2I4NTVlNzhmZmU0Zjg1MTE0
MjcyNDk3ZWRmMzg5NThiNGUzNTRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE0MjIsMzc1ICsxNDIyLDM3
NSBAQCB0ZW1wbGF0ZTw+IFRlc3RPYmo6OkNvbmRpdGlvbmFsRGljdGlvbmFyeUMgY29udmVydERp
Y3Rpb25hcnk8VGVzdE9iajo6Q29uZGl0aW9uYQogLy8gRnVuY3Rpb25zCiAKICNpZiBFTkFCTEUo
VEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRp
b25TdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uU3RhdGljKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3Js
ZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV29ybGRTcGVjaWZpY01ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRT
ZWNyZXRCb29sZWFuKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVH
ZXRTZWNyZXRCb29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RG
ZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZFdp
dGhBcmdzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1l
dGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRo
b2RXaXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9j
dGV0TWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0
ZXRNZXRob2RXaXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkxvbmdNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Mb25nTWV0aG9kV2l0aEFyZ3MoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PYmpNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpJbnN0YW5j
ZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5T
UmVzb2x2ZXJQYXJhbWV0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2Qo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51
bUFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhTdGFuZGFsb25lRW51bUFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhh
dFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3Ry
aW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmlu
Z0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2Vw
dGlvblJldHVybmluZ0xvbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9kKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhv
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlz
dGVuZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVF
dmVudExpc3RlbmVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aEV4ZWNTdGF0ZVZvaWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoRXhlY1N0YXRlT2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
T2JqRXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9j
dW1lbnRBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0Fu
ZERlZmF1bHRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJ
c051bGwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxT
dHJpbmdJc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21T
dHJpbmdJc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
TG9uZ0xvbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmcoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxV
bnNpZ25lZExvbmdMb25nSXNaZXJvKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2UoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHko
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxCb29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbnkoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5T
UmVzb2x2ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxSZWNvcmQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5k
Q2FsbGJhY2tBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNr
QXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxBcmcoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdp
dGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2RXaXRoQXJn
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Qnl0ZU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9u
Z01ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxl
TWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRo
TlNSZXNvbHZlclBhcmFtZXRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0
aWNNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhTdGFuZGFsb25lRW51bUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aFVTVlN0cmluZ0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5nQXJnKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJp
bmdBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJn
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3JkKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4
Y2VwdGlvblJldHVybmluZ09iamVjdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0
ZU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0
ZW5lcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aEV4ZWNTdGF0ZVZvaWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkRXhjZXB0
aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNT
dGF0ZVdpdGhTcGFjZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhEb2N1bWVudEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVu
dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aENhbGxlcldpbmRvd0FyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxB
cmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21T
dHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZSk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxs
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0
cmluZ0lzTnVsbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lz
RW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxG
bG9hdElzTmFOKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xv
bmdJc1plcm8pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmcpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFVuc2lnbmVkTG9uZ0xvbmdJc1plcm8pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW4pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEJvb2xlYW5Jc0ZhbHNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbnkpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bE9iamVjdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxO
dWxsYWJsZVdyYXBwZXJJc051bGwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlcik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsUmVjb3JkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJh
Y2tBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJh
Y2tBbmRPcHRpb25hbEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmcpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25D
YWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9u
QW5kT3B0aW9uYWxBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3Rh
dGljTWV0aG9kV2l0aENhbGxiYWNrQXJnKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsTWV0aG9kMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE1ldGhvZDEpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJM
RShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMik7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzKTsK
ICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aERpc3Rpbmd1aXNoaW5nVW5pb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFi
bGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpD
b25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdp
dGhPcHRpb25hbFBhcmFtZXRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9u
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdp
dGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdp
dGhPcHRpb25hbFVuaW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1l
dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvbkNsYXNzTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMik7CiAj
aWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEpOwogI2VuZGlmCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25DbGFzc01ldGhvZFdpdGhDbGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25hbChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0
aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9u
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0
aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9yYW5nZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRo
b2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1Vu
aW9uTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VG
dW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlv
bldpdGhPcHRpb25hbEludEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQ
cm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5j
dGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0
b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rp
b24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xh
bXApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25hbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdl
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
bGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25n
U2VxdWVuY2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0
aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5j
ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
R2V0RWxlbWVudEJ5SWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MSk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0
YWJsZVBvaW50RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk9yYW5nZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRob2QpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0
aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25WYXJpYWRpY05vZGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRob2QpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueSk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlv
bik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEV4Y2VwdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJv
bWlzZU92ZXJsb2FkZWRGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0
aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRl
c3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1
bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbik7CiAjaWYg
RU5BQkxFKENPTkRJVElPTjEpIHx8IEVOQUJMRShDT05ESVRJT04yKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxP
dmVybG9hZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE92
ZXJsb2FkKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3QoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJu
YWxEaWN0aW9uYXJ5UGFyYW1ldGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1ldGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVyTmFtZWQoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRp
bWl6YXRpb25XaXRoRXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dv
cmtlckZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93
Um9vdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlcik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFy
YW1ldGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25MZWdhY3lDYWxsZXJOYW1lZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
VmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlYWRPbmx5TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVhZE9ubHlTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
YWRPbmx5VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
c3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmooSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpCeXRlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iak9jdGV0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpPY3RldEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDbGFtcGVk
U2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW5mb3JjZVJh
bmdlU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0cmluZ0F0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpUZXN0T2Jq
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9i
akF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0
cmluZ09ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpT
dHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5n
TnVsbGFibGVPYmpSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpT
dHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqRGljdGlvbmFy
eUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURpY3Rp
b25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5Vbmlv
bkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVu
Y2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak1lZGlhRGV2aWNlcyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE9ialhNTE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDcmVh
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVn
cmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2ln
bmVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVh
bkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9i
alJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3Ry
dWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25z
dHJ1Y3RvclRlc3RTdWJPYmooSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVudW1BdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakJ5dGVBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqQnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9jdGV0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iak9jdGV0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVbnNpZ25lZFNo
b3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVuc2lnbmVkU2hv
cnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxvbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpMb25n
TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVu
c2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
VW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5mb3JnZWFi
bGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
U3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5n
QXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQnl0ZVN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdMb25nUmVj
b3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0xvbmdS
ZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJp
bmdPYmpSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3Ry
aW5nT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdWb2lkQ2Fs
bGJhY2tSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3Ry
aW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFubm90YXRl
ZFR5cGVJblVuaW9uQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFu
bm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpJbXBsZW1l
bnRhdGlvbkVudW1BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqSW1w
bGVtZW50YXRpb25FbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqTWVkaWFEZXZpY2VzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9ialhNTE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRJbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEJv
b2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Qm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRW5hYmxlZEF0UnVu
dGltZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVB
VFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlU3RhdGljKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9y
RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0
cmlidXRlU3RhdGljKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3Ry
dWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakN1c3RvbUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE9iak9uZm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT253ZWJraXRm
b28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqT253ZWJraXRmb28oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRo
U3BhY2VzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqT25mb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpPbmZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqT253ZWJraXRmb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPbndl
YmtpdGZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRo
QW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
RXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbEF0dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lm
IEVOQUJMRShDT05ESVRJT04pCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0
dHJpYnV0ZTMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpDYWNoZWRBdHRyaWJ1dGUzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iak11dGFibGVQ
b2ludChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqU3RyYXdiZXJyeShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iaklkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iaklkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqSGFzaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91
YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
TG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJs
ZUJvb2xlYW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVs
bGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVs
bGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVX
aXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRo
UmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRl
c3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RP
YmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dv
cmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQW55QXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW55QXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPYmpl
Y3RBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPYmplY3RB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNvbnRlbnREb2N1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iak11dGFibGVQb2ludChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iak11dGFibGVQb2ludChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqU3RyYXdiZXJyeShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialN0cmF3YmVycnkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqSWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpJZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
SGFzaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
UmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVVU1ZT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFi
bGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2Vy
dmVkRW51bVR5cGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialB1
dEZvcndhcmRzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
UHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdp
ZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmlu
Z2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QW5kV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0T2JqUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTM3LDcg
KzE5MzcsNyBAQCBzdGF0aWNfYXNzZXJ0KFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzE0ID09IDB4MWFi
YywgIkNPTlNUX1ZBTFVFXzE0IGluIFRlc3RPYmogZG9lcwogc3RhdGljX2Fzc2VydChUZXN0T2Jq
OjpDT05TVF9JTVBMID09IDE1LCAiQ09OU1RfSU1QTCBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNo
IHZhbHVlIGZyb20gSURMIik7CiBzdGF0aWNfYXNzZXJ0KFRlc3RPYmo6OnJlYWRvbmx5ID09IDAs
ICJyZWFkb25seSBpbiBUZXN0T2JqIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CiAK
LXRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPYmpDb25zdHJ1
Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TF9BVFRSSUJVVEVTIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZN
JiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTY1LDYgKzE5NjUsNyBAQCB0ZW1wbGF0ZTw+
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0
cnVjdChKU0dsb2JhbAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQorSlNDX0FOTk9UQVRFX0hP
U1RfRlVOQ1RJT04oSlNUZXN0T2JqQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE9iakNvbnN0
cnVjdG9yOjpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T2JqQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAgLTI1NDYsNyArMjU0Nyw3IEBAIHN0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUgY2FsbEpTVGVzdE9iajMoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNUZXN0T2JqKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNUZXN0T2JqLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU4Miw3ICsyNTgzLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0T2JqKiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FzdChKU0dsb2JhbE9iamVj
dCYgbGV4aWMKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1
OTIsNyArMjU5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yNjEzLDcgKzI2MTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
UmVhZE9ubHlMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5TG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkT25s
eUxvbmdBdHRyIik7CiB9CkBAIC0yNjI2LDcgKzI2MjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhZE9ubHlTdHJpbmdB
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialJlYWRPbmx5U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRy
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAicmVhZE9ubHlTdHJpbmdBdHRyIik7CiB9CkBAIC0yNjM5LDcgKzI2
NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5
VGVzdE9iakF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlU
ZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlYWRPbmx5
VGVzdE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkT25seVRlc3RPYmpBdHRyIik7CiB9CkBA
IC0yNjUxLDcgKzI2NTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3Ry
dWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyR2V0dGVyKEpTR2xvYmFsTwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjpzdGF0aWNSZWFkT25seUxvbmdBdHRyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic3RhdGljUmVhZE9ubHlMb25nQXR0ciIpOwogfQpAQCAtMjY2
Myw3ICsyNjY0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjpzdGF0aWNTdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JTdGF0
aWNTdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3Rh
dGljU3RyaW5nQXR0ciIpOwogfQpAQCAtMjY4MCw3ICsyNjgxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0clNldHRlcihKU0dsb2Jh
bE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25zdHJ1
Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXRTdGF0aWM8c2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0
aWNTdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdGF0aWNTdHJpbmdBdHRyIik7CiB9CkBAIC0yNjkxLDcgKzI2OTIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiBKU1Rlc3RTdWJPYmo6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0
U3ViT2JqKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25z
dHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0U3ViT2JqIik7CiB9CkBAIC0yNzA4LDcgKzI3MDksNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmpHZXR0ZXIoSlNH
bG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRl
cmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICpqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRocm93U2NvcGUsIFRlc3RPYmo6OnRlc3RT
dGF0aWNSZWFkb25seU9iaihkb2N1bWVudCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3Rh
dGljUmVhZG9ubHlPYmooSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRp
Y1JlYWRvbmx5T2JqR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVz
dFN0YXRpY1JlYWRvbmx5T2JqIik7CiB9CkBAIC0yNzIxLDcgKzI3MjIsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqRW51bUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwuZW51bUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpFbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqRW51bUF0dHJHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJlbnVtQXR0ciIpOwogfQpAQCAtMjc0Miw3ICsyNzQzLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakVudW1BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpFbnVt
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
akVudW1BdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJlbnVtQXR0ciIpOwogfQpAQCAtMjc1NSw3ICsyNzU2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
Qnl0ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlQXR0cigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakJ5dGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpCeXRlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVBdHRyIik7CiB9CkBAIC0y
NzczLDcgKzI3NzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQnl0ZUF0dHJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQnl0ZUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImJ5dGVBdHRyIik7CiB9CkBAIC0y
Nzg2LDcgKzI3ODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqT2N0ZXRBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPY3RldD4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5vY3RldEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqT2N0ZXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqT2N0ZXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpPY3RldEF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJvY3RldEF0dHIiKTsKIH0KQEAgLTI4MDQsNyArMjgwNSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPY3RldEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
T2JqT2N0ZXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iak9jdGV0QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAib2N0ZXRBdHRyIik7CiB9CkBAIC0yODE3LDcgKzI4MTgsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5z
aG9ydEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
U2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTaG9ydEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaG9y
dEF0dHIiKTsKIH0KQEAgLTI4MzUsNyArMjgzNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU2hvcnRBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialNob3J0QXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
c2hvcnRBdHRyIik7CiB9CkBAIC0yODQ4LDcgKzI4NDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExDbGFtcEFk
YXB0b3I8SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNs
YW1wZWRTaG9ydEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2xhbXBl
ZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNsYW1wZWRTaG9y
dEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjbGFtcGVkU2hvcnRBdHRyIik7CiB9CkBAIC0yODY2LDcg
KzI4NjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNsYW1wZWRTaG9y
dEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNs
YW1wZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI4NzksNyArMjg4MCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEVu
Zm9yY2VSYW5nZUFkYXB0b3I8SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmVuZm9yY2VSYW5nZVNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVu
Zm9yY2VSYW5nZVNob3J0QXR0ciIpOwogfQpAQCAtMjg5Nyw3ICsyODk4LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0clNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpF
bmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmZvcmNl
UmFuZ2VTaG9ydEF0dHIiKTsKIH0KQEAgLTI5MTAsNyArMjkxMSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVu
c2lnbmVkU2hvcnQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWdu
ZWRTaG9ydEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRT
aG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVW5zaWduZWRTaG9y
dEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZFNob3J0QXR0ciIpOwogfQpAQCAtMjkyOCw3
ICsyOTI5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2wKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVW5zaWduZWRT
aG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRB
dHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ1bnNpZ25lZFNob3J0QXR0ciIpOwogfQpAQCAtMjk0MSw3ICsyOTQyLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25nQXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakxvbmdBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdBdHRyIik7CiB9CkBA
IC0yOTU5LDcgKzI5NjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTG9uZ0F0
dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMb25nQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxvbmdBdHRyIik7CiB9CkBA
IC0yOTcyLDcgKzI5NzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTG9uZ0xv
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpMb25nTG9uZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25nTG9uZ0F0dHIiKTsKIH0KQEAgLTI5
OTAsNyArMjk5MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0
dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakxvbmdMb25nQXR0clNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibG9uZ0xvbmdB
dHRyIik7CiB9CkBAIC0zMDAzLDcgKzMwMDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZExvbmdM
b25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0xv
bmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xv
bmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KQEAg
LTMwMjEsNyArMzAyMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25l
ZExvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpV
bnNpZ25lZExvbmdMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KQEAgLTMwMzQsNyAr
MzAzNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5zdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic3RyaW5nQXR0ciIpOwogfQpAQCAtMzA1Miw3ICszMDUzLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RPYmpTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDY1LDcgKzMwNjYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwudXN2c3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVXN2c3RyaW5n
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0cmluZ0F0dHIiKTsKIH0KQEAgLTMwODMsNyArMzA4
NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nQXR0ciIp
OwogfQpAQCAtMzA5Niw3ICszMDk3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alRlc3RPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC50ZXN0T2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpUZXN0T2JqQXR0ckdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInRlc3RPYmpBdHRyIik7CiB9CkBAIC0zMTE0LDcgKzMxMTUsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdE9ialRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqVGVzdE9iakF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RPYmpBdHRyIik7CiB9CkBAIC0zMTI3LDcg
KzMxMjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdE51bGxhYmxlT2Jq
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8VGVzdE9iaj4+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC50ZXN0TnVsbGFibGVPYmpBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdE51bGxhYmxl
T2JqQXR0ciIpOwogfQpAQCAtMzE0NSw3ICszMTQ2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVP
YmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZXN0TnVsbGFibGVPYmpBdHRyIik7CiB9
CkBAIC0zMTU4LDcgKzMxNTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTGVu
aWVudFRlc3RPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsRwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLmxlbmllbnRUZXN0T2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9iakxlbmllbnRUZXN0T2JqQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJl
dHVybkVhcmx5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibGVuaWVudFRlc3RP
YmpBdHRyIik7CiB9CkBAIC0zMTc2LDcgKzMxNzcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
RwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2Jq
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHJTZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpSZXR1cm5FYXJseT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAibGVuaWVudFRlc3RPYmpBdHRyIik7CiB9CkBAIC0zMTg5LDcgKzMxOTAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVW5mb3JnZWFibGVBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwudW5mb3JnZWFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVu
Zm9yZ2VhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVW5mb3JnZWFi
bGVBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5mb3JnZWFibGVBdHRyIik7CiB9CkBAIC0zMjAyLDcg
KzMyMDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0clRyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ0FkYXB0b3I8SURM
RE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdB
dHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0F0dHJU
cmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC0zMjIwLDcgKzMyMjEsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0
ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nIik7CiB9CkBAIC0zMjMzLDcgKzMyMzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIo
SlNHbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMZWdhY3lO
dWxsVG9FbXB0eVN0cmluZ0FkYXB0b3I8SURMVVNWU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC51c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmlu
ZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmlu
Z0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
Iik7CiB9CkBAIC0zMjUxLDcgKzMyNTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXIoSlNHbAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nIik7CiB9CkBAIC0zMjY0LDcgKzMyNjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyKEpT
RwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMZWdhY3lOdWxs
VG9FbXB0eVN0cmluZ0FkYXB0b3I8SURMQnl0ZVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nIik7CiB9CkBAIC0zMjgyLDcgKzMyODMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyKEpTRwog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpCeXRlU3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyIpOwogfQpAQCAtMzI5NSw3ICszMjk2LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVj
b3JkPElETERPTVN0cmluZywgSURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ0xvbmdSZWNvcmRBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzMTMs
NyArMzMxNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVj
b3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmlu
Z0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdM
b25nUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAic3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzMjYsNyArMzMyNyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExVU1ZTdHJpbmcsIElETExvbmc+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC51
c3ZzdHJpbmdMb25nUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0zMzQ0LDcgKzMzNDUsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialVz
dnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVz
dnN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0zMzU3LDcgKzMzNTgsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExSZWNvcmQ8SURMQnl0ZVN0cmluZywgSURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnVzdnN0cmluZ0xv
bmdSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmlu
Z0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
alVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nTG9uZ1Jl
Y29yZEF0dHIiKTsKIH0KQEAgLTMzNzUsNyArMzM3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzODgsNyArMzM4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJlY29y
ZDxJRExET01TdHJpbmcsIElETEludGVyZmFjZTxUZXN0T2JqPj4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ09i
alJlY29yZEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nT2Jq
UmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ09i
alJlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdPYmpSZWNvcmRBdHRyIik7CiB9CkBA
IC0zNDA2LDcgKzM0MDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5n
T2JqUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alN0cmluZ09ialJlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0
cmluZ09ialJlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInN0cmluZ09ialJlY29yZEF0dHIiKTsKIH0KQEAgLTM0MTksNyArMzQy
MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJl
Y29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01TdHJpbmcsIElETE51bGxhYmxlPElETElu
dGVyZmFjZTxUZXN0T2JqPj4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNv
cmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJp
bmdOdWxsYWJsZU9ialJlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdOdWxsYWJsZU9i
alJlY29yZEF0dHIiKTsKIH0KQEAgLTM0MzcsNyArMzQzOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nTnVs
bGFibGVPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3Jk
QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAic3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDUwLDcgKzM0NTEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3Jk
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExDYWxsYmFja0Z1bmN0aW9uPEpT
Vm9pZENhbGxiYWNrPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3Jk
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmlu
Z1ZvaWRDYWxsYmFja1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdWb2lkQ2FsbGJh
Y2tSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDY4LDcgKzM0NjksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0clNldHRlcihKU0dsb2Jh
bE9iamVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmluZ1Zv
aWRDYWxsYmFja1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1Jl
Y29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIiKTsKIH0KQEAgLTM0ODEsNyArMzQ4
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERpY3Rpb25hcnk8VGVzdE9iajo6RGljdGlvbmFyeT4+KGxleGlj
YWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBp
bXBsLmRpY3Rpb25hcnlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRp
Y3Rpb25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakRpY3Rpb25hcnlB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiZGljdGlvbmFyeUF0dHIiKTsKIH0KQEAgLTM0OTksNyArMzUw
MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZGljdGlvbmFyeUF0
dHIiKTsKIH0KQEAgLTM1MTIsNyArMzUxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERp
Y3Rpb25hcnk8VGVzdE9iajo6RGljdGlvbmFyeT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZURpY3Rpb25h
cnlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRGljdGlv
bmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJs
ZURpY3Rpb25hcnlBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVEaWN0aW9uYXJ5QXR0ciIp
OwogfQpAQCAtMzUzMCw3ICszNTMxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
ak51bGxhYmxlRGljdGlvbmFyeUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJsZURpY3Rpb25hcnlBdHRyIik7
CiB9CkBAIC0zNTQzLDcgKzM1NDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
QW5ub3RhdGVkVHlwZUluVW5pb25BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbmlvbjxJRExET01TdHJpbmcs
IElETENsYW1wQWRhcHRvcjxJRExMb25nPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmFubm90YXRlZFR5cGVJblVuaW9u
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5V
bmlvbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakFubm90
YXRlZFR5cGVJblVuaW9uQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFubm90YXRlZFR5cGVJblVuaW9u
QXR0ciIpOwogfQpAQCAtMzU2MSw3ICszNTYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGUK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5V
bmlvbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhbm5vdGF0ZWRUeXBl
SW5VbmlvbkF0dHIiKTsKIH0KQEAgLTM1NzQsNyArMzU3NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNlcXVl
bmNlPElETENsYW1wQWRhcHRvcjxJRExMb25nPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmFubm90YXRlZFR5cGVJblNl
cXVlbmNlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRU
eXBlSW5TZXF1ZW5jZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFubm90
YXRlZFR5cGVJblNlcXVlbmNlQXR0ciIpOwogfQpAQCAtMzU5Miw3ICszNTkzLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RP
YmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNl
cXVlbmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlw
ZUluU2VxdWVuY2VBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJhbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIiKTsKIH0KQEAgLTM2MDUs
NyArMzYwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpJbXBsZW1lbnRhdGlv
bkVudW1BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEVudW1lcmF0aW9uPEFsdGVybmF0ZUVudW1OYW1lPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pbXBsZW1lbnRhdGlvbkVudW1B
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpJbXBsZW1lbnRh
dGlvbkVudW1BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaW1wbGVtZW50YXRpb25FbnVtQXR0ciIpOwog
fQpAQCAtMzYyNiw3ICszNjI3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iaklt
cGxlbWVudGF0aW9uRW51bUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpbXBsZW1lbnRhdGlvbkVudW1BdHRyIik7CiB9
CkBAIC0zNjM5LDcgKzM2NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTWVk
aWFEZXZpY2VzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8TWVkaWFEZXZpY2Vz
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwubWVkaWFEZXZpY2VzKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iak1lZGlhRGV2aWNlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iak1lZGlhRGV2aWNlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTWVkaWFEZXZp
Y2VzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibWVkaWFEZXZpY2VzIik7CiB9CkBAIC0zNjUyLDcgKzM2NTMs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnhtbE9iakF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialhNTE9iakF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9ialhNTE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJYTUxPYmpBdHRy
Iik7CiB9CkBAIC0zNjcwLDcgKzM2NzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqWE1MT2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialhNTE9iakF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alhNTE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialhNTE9iakF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlhN
TE9iakF0dHIiKTsKIH0KQEAgLTM2ODMsNyArMzY4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpDcmVhdGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaXNDcmVhdGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ3JlYXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpDcmVhdGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjcmVhdGUiKTsKIH0KQEAgLTM3MDEsNyArMzcwMiw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDcmVhdGVTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T2JqQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9iakNyZWF0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiY3JlYXRlIik7CiB9CkBAIC0zNzE0LDcgKzM3MTUsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxl
Y3RlZHN0cmluZ2F0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJl
ZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRTdHJpbmdBdHRyIik7
CiB9CkBAIC0zNzMyLDcgKzM3MzMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM3NDUs
NyArMzc0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZT
dHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6cmVmbGVjdGVkdXN2c3RyaW5nYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVNWU3Ry
aW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0ckdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInJlZmxlY3RlZFVTVlN0cmluZ0F0dHIiKTsKIH0KQEAgLTM3NjMsNyArMzc2NCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3Ry
aW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3Ry
aW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAicmVmbGVjdGVkVVNWU3RyaW5nQXR0ciIpOwogfQpAQCAtMzc3Niw3ICszNzc3LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5n
ZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGludGVncmFs
YXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRl
Z3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEludGVncmFsQXR0ciIpOwog
fQpAQCAtMzc5NCw3ICszNzk1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEludGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiKTsKIH0KQEAg
LTM4MDcsNyArMzgwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0ckdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkTG9uZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgc3RkOjptYXgoMCwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0
ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVuc2lnbmVkaW50ZWdyYWxhdHRyQXR0cikp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpS
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zODI1LDcgKzM4MjYsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJl
ZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5z
aWduZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0z
ODM4LDcgKzM4MzksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
Qm9vbGVhbkF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2Vi
Q29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRib29sZWFuYXR0ckF0dHIpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xl
YW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0ckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInJlZmxlY3RlZEJvb2xlYW5BdHRyIik7CiB9CkBAIC0zODU2LDcgKzM4NTcsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHJTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHJTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxl
Y3RlZEJvb2xlYW5BdHRyIik7CiB9CkBAIC0zODY5LDcgKzM4NzAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExE
T01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZ2V0VVJMQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXJsYXR0ckF0dHIpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVJM
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJl
ZmxlY3RlZFVSTEF0dHIiKTsKIH0KQEAgLTM4ODcsNyArMzg4OCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpz
ZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVVJMQXR0ciIpOwogfQpAQCAt
MzkwMCw3ICszOTAxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZFVTVlVSTEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6
OnJlZmxlY3RlZHVzdnVybGF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialJlZmxlY3RlZFVTVlVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVU1ZVUkxB
dHRyIik7CiB9CkBAIC0zOTE4LDcgKzM5MTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFVTVlVSTEF0dHIiKTsKIH0KQEAg
LTM5MzEsNyArMzkzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudFN0cmluZ0F0dHJBdHRyKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFN0
cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJyZWZsZWN0ZWRTdHJpbmdBdHRyIik7CiB9CkBAIC0zOTQ5LDcgKzM5NTAsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3Rl
ZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM5NjIsNyArMzk2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZ2V0SW50ZWdyYWxBdHRyaWJ1
dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50SW50ZWdyYWxBdHRyQXR0cikpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tSW50ZWdy
YWxBdHRyIik7CiB9CkBAIC0zOTgwLDcgKzM5ODEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bUludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJl
ZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIpOwogfQpAQCAtMzk5Myw3ICszOTk0LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhh
c0F0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0
b21Db250ZW50Qm9vbGVhbkF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciIpOwogfQpAQCAtNDAxMSw3ICs0MDEyLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5B
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNl
dEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tQm9vbGVhbkF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIik7CiB9CkBAIC00
MDI0LDcgKzQwMjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tVVJMQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwuZ2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
Y3VzdG9tQ29udGVudFVSTEF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0
ZWRDdXN0b21VUkxBdHRyIik7CiB9CkBAIC00MDQyLDcgKzQwNDMsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxl
Y3RlZEN1c3RvbVVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHIiKTsKIH0KQEAgLTQwNTYsNyArNDA1Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxl
ZEF0UnVudGltZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDA3Nyw3ICs0MDc4LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CkBAIC00MDkyLDcgKzQwOTMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50
aW1lQXR0cmlidXRlU3RhdGljR2V0dGVyKAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IFRlc3RPYmo6OmVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
U3RhdGljKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0
aWNHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQXRSdW50
aW1lQXR0cmlidXRlU3RhdGljIik7CiB9CkBAIC00MTEyLDcgKzQxMTMsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
U3RhdGljU2V0dGVyKAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNv
bnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3Ry
dWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dFN0YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVT
dGF0aWNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiKTsKIH0KQEAgLTQxMjcsNyArNDEy
OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEZsb2F0MzJBcnJheT4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudHlwZWRBcnJheUF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUeXBl
ZEFycmF5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVHlwZWRBcnJheUF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ0eXBlZEFycmF5QXR0ciIpOwogfQpAQCAtNDE0NSw3ICs0MTQ2LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpUeXBl
ZEFycmF5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0eXBlZEFycmF5QXR0ciIpOwogfQpAQCAtNDE1Niw3
ICs0MTU3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVj
dC5jdXN0b21BdHRyKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDdXN0b21BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQ3VzdG9tQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ3VzdG9tQXR0
ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImN1c3RvbUF0dHIiKTsKIH0KQEAgLTQxNjgsNyArNDE2OSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqQ3VzdG9tQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY3VzdG9tQXR0ciIpOwogfQpAQCAtNDE3OSw3ICs0
MTgwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak9uZm9vR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBldmVudEhhbmRsZXJB
dHRyaWJ1dGUodGhpc09iamVjdC53cmFwcGVkKCksIGV2ZW50TmFtZXMoKS5mb29FdmVudCwgd29y
bGRGb3JET01PYmplY3QodGhpc09iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpPbmZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iak9uZm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpPbmZvb0dldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9u
Zm9vIik7CiB9CkBAIC00MTk0LDcgKzQxOTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqT25mb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqT25mb28oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9u
Zm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpPbmZvb1NldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib25mb28iKTsKIH0KQEAg
LTQyMDUsNyArNDIwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpPbndlYmtp
dGZvb0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJuIGV2
ZW50SGFuZGxlckF0dHJpYnV0ZSh0aGlzT2JqZWN0LndyYXBwZWQoKSwgZXZlbnROYW1lcygpLmZv
b0V2ZW50LCB3b3JsZEZvckRPTU9iamVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iak9ud2Via2l0Zm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT253ZWJraXRmb28oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9u
d2Via2l0Zm9vR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib253ZWJraXRmb28iKTsKIH0KQEAgLTQyMjAsNyAr
NDIyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPbndlYmtpdGZvb1NldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0T2JqT253ZWJraXRmb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpPbndlYmtpdGZvb1NldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib253ZWJraXRmb28iKTsKIH0K
QEAgLTQyMzMsNyArNDIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRo
RXhlY1N0YXRlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwud2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSgqanNDYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ3aXRoRXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CkBAIC00MjUxLDcgKzQyNTIsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIndpdGhFeGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyNjQsNyArNDI2NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0
aEF0dHJpYnV0ZUdldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwud2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aENhbGxX
aXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialdpdGhDYWxsV2l0
aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0aENhbGxXaXRo
QW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyODIsNyArNDI4Myw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0
aEF0dHJpYnV0ZVNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdp
dGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aENh
bGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyOTgsNyArNDI5OSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoKmNvbnRleHQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QXR0cmlidXRlIik7CiB9CkBAIC00MzE5LDcgKzQzMjAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlIik7CiB9CkBAIC00MzM1LDcgKzQzMzYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRy
aWJ1dGVHZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRl
cmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2Jh
bE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNDM1Niw3ICs0MzU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRl
U2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOwogfQpA
QCAtNDM3Miw3ICs0MzczLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0EKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRy
aWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
KmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
V2l0aFNwYWNlc0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIpOwogfQpAQCAtNDM5Myw3ICs0
Mzk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdp
dGhTcGFjZXNBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
RXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRy
aWJ1dGUiKTsKIH0KQEAgLTQ0MDcsNyArNDQwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxBdHRyMSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImNvbmRpdGlvbmFsQXR0cjEiKTsKIH0KQEAgLTQ0MjgsNyArNDQyOSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMSIpOwogfQpA
QCAtNDQ0NCw3ICs0NDQ1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEF0dHIyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxB
dHRyMiIpOwogfQpAQCAtNDQ2NSw3ICs0NDY2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0dHIyIik7CiB9CkBAIC00NDgxLDcgKzQ0
ODIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyM0dl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmNvbmRpdGlvbmFsQXR0cjMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHIzIik7CiB9CkBA
IC00NTAyLDcgKzQ1MDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyM1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImNvbmRpdGlvbmFsQXR0cjMiKTsKIH0KQEAgLTQ1MTYsNyArNDUxNyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3JHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVzdE9iamVjdEE6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHI0Iik7CiB9CkBAIC00NTMxLDcgKzQ1MzIsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJjb25kaXRpb25hbEF0dHI0IiksIHN0cmxlbigiY29uZGl0aW9uYWxBdHRyNCIpKSwgdmFs
dWUpOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjQi
KTsKIH0KQEAgLTQ1NDUsNyArNDU0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAg
cmV0dXJuIEpTVGVzdE9iamVjdEI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0
dHI1Iik7CiB9CkBAIC00NTYwLDcgKzQ1NjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0Jgog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjb25kaXRpb25hbEF0dHI1Iiks
IHN0cmxlbigiY29uZGl0aW9uYWxBdHRyNSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
NUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI1Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjUiKTsKIH0KQEAgLTQ1NzQsNyArNDU3NSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVzdE9iamVjdEM6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHI2Iik7CiB9CkBAIC00NTg5LDcgKzQ1
OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNv
bnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJjb25kaXRpb25hbEF0dHI2IiksIHN0cmxlbigiY29uZGl0aW9uYWxBdHRy
NiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlv
bmFsQXR0cjYiKTsKIH0KQEAgLTQ2MDksNyArNDYxMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2Fj
aGVkQXR0cmlidXRlMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNhY2hlZEF0
dHJpYnV0ZTFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRBdHRyaWJ1dGUxIik7CiB9CkBAIC00NjI3
LDcgKzQ2MjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmli
dXRlMkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRB
dHRyaWJ1dGUyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiY2FjaGVkQXR0cmlidXRlMiIpOwogfQpAQCAtNDY0Niw3ICs0NjQ3LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTNHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqQ2FjaGVkQXR0cmlidXRlM0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZEF0dHJpYnV0ZTMiKTsK
IH0KQEAgLTQ2NjEsNyArNDY2Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpB
bnlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5hbnlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQW55QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpBbnlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhbnlBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ2
NzksNyArNDY4MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1
dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW55QXR0cmli
dXRlIik7CiB9CkBAIC00NjkyLDcgKzQ2OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqT2JqZWN0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYgog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPYmplY3Q+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwub2JqZWN0QXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9iamVjdEF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqT2JqZWN0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib2Jq
ZWN0QXR0cmlidXRlIik7CiB9CkBAIC00NzEwLDcgKzQ3MTEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak9iamVjdEF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm9iamVjdEF0dHJpYnV0ZSIpOwogfQpAQCAtNDcyMyw3
ICs0NzI0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVu
dEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPERvY3VtZW50Pj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIEJpbmRpbmdT
ZWN1cml0eTo6Y2hlY2tTZWN1cml0eUZvck5vZGUobGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5j
b250ZW50RG9jdW1lbnQoKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRl
bnREb2N1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29udGVudERvY3Vt
ZW50R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiY29udGVudERvY3VtZW50Iik7CiB9CkBAIC00NzM2LDcgKzQ3
MzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBvaW50R2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8U1ZHUG9pbnQ+PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tdXRhYmxl
UG9pbnQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBvaW50KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
TXV0YWJsZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpNdXRhYmxlUG9pbnRHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJtdXRhYmxlUG9pbnQiKTsKIH0KQEAgLTQ3NTQsNyArNDc1NSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnRTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTXV0YWJs
ZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iak11dGFibGVQb2ludFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAibXV0YWJsZVBvaW50Iik7CiB9CkBAIC00NzY3LDcgKzQ3NjgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeUdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmJsdWViZXJyeSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqU3RyYXdiZXJyeShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyYXdiZXJyeUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN0cmF3YmVycnkiKTsKIH0KQEAgLTQ3ODUsNyArNDc4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyYXdiZXJy
eShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqU3RyYXdiZXJyeShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
U3RyYXdiZXJyeVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic3RyYXdiZXJyeSIpOwogfQpAQCAtNDc5OCw3ICs0Nzk5LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kZXNjcmlwdGlv
bigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakRlc2Ny
aXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpEZXNjcmlwdGlvbkdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRlc2Ny
aXB0aW9uIik7CiB9CkBAIC00ODExLDcgKzQ4MTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqSWRHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmlkKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iaklkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqSWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iaklkR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiaWQiKTsKIH0KQEAgLTQ4MjksNyArNDgzMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpJZFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNU
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqSWQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iaklk
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpJZFNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiaWQiKTsKIH0KQEAgLTQ4NDIsNyAr
NDg0Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpIYXNoR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5oYXNoKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhh
c2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpIYXNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpIYXNoR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaGFzaCIpOwog
fQpAQCAtNDg1NSw3ICs0ODU2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZXBsYWNlYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlcGxhY2VhYmxl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInJlcGxhY2VhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00ODY3LDcgKzQ4NjgsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGVTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpLCBzdHJsZW4oInJlcGxhY2VhYmxlQXR0cmlidXRl
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVwbGFjZWFibGVBdHRyaWJ1dGUiKTsKIH0KQEAg
LTQ4ODAsNyArNDg4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJs
ZURvdWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVucmVzdHJpY3RlZERv
dWJsZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVEb3Vi
bGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVE
b3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
TnVsbGFibGVEb3VibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZURvdWJsZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNDg5Myw3ICs0ODk0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8
SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVM
b25nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
TG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVs
bGFibGVMb25nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVMb25nQXR0cmlidXRl
Iik7CiB9CkBAIC00OTA2LDcgKzQ5MDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExCb29s
ZWFuPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZUJvb2xl
YW5BdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZUJvb2xl
YW5BdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5MTksNyArNDkyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxh
YmxlPElETERPTVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
bnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxs
YWJsZVN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtNDkzMiw3ICs0OTMzLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVy
KEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTnVsbGFibGU8SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwubnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdT
ZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwog
fQpAQCAtNDk1MCw3ICs0OTUxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51
bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJs
ZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDk2Myw3ICs0OTY0LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5udWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpO
dWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVTdHJpbmdTZXR0
YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDk4MSw3ICs0OTgyLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNH
bG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJs
ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJudWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBA
IC00OTk0LDcgKzQ5OTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVU1ZTdHJpbmc+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7
CiB9CkBAIC01MDEyLDcgKzUwMTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
TnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFi
bGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFi
bGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIm51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUw
MjUsNyArNTAyNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJ5
dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEJ5dGVTdHJpbmc+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlQnl0ZVN0cmluZ1NldHRh
YmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
Qnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUi
KTsKIH0KQEAgLTUwNDMsNyArNTA0NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAibnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0K
QEAgLTUwNTYsNyArNTA1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGUiKTsKIH0KQEAgLTUwNjksNyArNTA3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRF
bnVtVHlwZUdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6Ok9wdGlvbmFsPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlw
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2
ZWRFbnVtVHlwZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0
ZVdpdGhSZXNlcnZlZEVudW1UeXBlIik7CiB9CkBAIC01MDkwLDcgKzUwOTEsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGVTZXR0
ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9i
akF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQXR0cmlidXRl
V2l0aFJlc2VydmVkRW51bVR5cGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIik7CiB9CkBA
IC01MTAzLDcgKzUxMDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdFJl
YWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETFVuZGVmaW5lZD4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVz
dFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3RSZWFkT25s
eVZvaWRQcm9taXNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVq
ZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RSZWFkT25s
eVZvaWRQcm9taXNlQXR0cmlidXRlIik7CiB9CkBAIC01MTE2LDcgKzUxMTcsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZUdldHRl
cihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExQcm9taXNlPElETEludGVyZmFjZTxUZXN0Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZXN0UmVhZE9u
bHlQcm9taXNlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRl
c3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTUxMjks
NyArNTEzMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0Tm9kZT4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnB1
dEZvcndhcmRzQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1
dEZvcndhcmRzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
alB1dEZvcndhcmRzQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicHV0Rm9yd2FyZHNBdHRyaWJ1
dGUiKTsKIH0KQEAgLTUxNTIsNyArNTE1Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHV0Rm9yd2FyZHNBdHRyaWJ1dGUiKTsKIH0K
QEAgLTUxNjUsNyArNTE2Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpQdXRG
b3J3YXJkc051bGxhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEludGVyZmFjZTxU
ZXN0Tm9kZT4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC5wdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpQdXRGb3J3YXJk
c051bGxhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicHV0Rm9yd2FyZHNOdWxsYWJsZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNTE4OCw3ICs1MTg5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051
bGxhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MjAxLDcgKzUyMDIsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuc3RyaW5naWZpZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdpZmll
ckF0dHJpYnV0ZSIpOwogfQpAQCAtNTIxOSw3ICs1MjIwLDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdpZmll
ckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0
ZSIpOwogfQpAQCAtNTIzMiw3ICs1MjMzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0ZXIoSlNHbG8KICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJp
YnV0ZSIpOwogfQpAQCAtNTI1MCw3ICs1MjUxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVTZXR0ZXIoSlNHbG8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0
cmlidXRlIik7CiB9CkBAIC01MjYzLDcgKzUyNjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZUdldHRlcihKU0ds
bwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
b3JrZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
b3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3Jr
ZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2Vy
QXR0cmlidXRlIik7CiB9CkBAIC01MjgxLDcgKzUyODIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZVNldHRlcihK
U0dsbwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9Xb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRp
dGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3Jr
ZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyOTQsNyArNTI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmli
dXRlR2V0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
Q29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1
dGUiKTsKIH0KQEAgLTUzMTIsNyArNTMxMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlU2V0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9z
ZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSIpOwogfQpAQCAtNTM3NSw3
ICs1Mzc2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXIKICAgICByZXR1cm4gYXJnc0NvdW50
IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZN
VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKTsKIH0K
QEAgLTUzOTksNyArNTQwMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9w
ZXJhdGlvblN0YXRpYyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpY0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0
YXRpYyIpOwogfQpAQCAtNTQyMyw3ICs1NDI0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZElu
U3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3Js
ZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNw
ZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0
dXJlRW5hYmxlZCIpOwogfQpAQCAtNTQ0NSw3ICs1NDQ2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29ybGRTcGVjaWZpY01l
dGhvZEIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29y
bGRTcGVjaWZpY01ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Xb3Js
ZFNwZWNpZmljTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3
b3JsZFNwZWNpZmljTWV0aG9kIik7CiB9CkBAIC01NDYyLDcgKzU0NjMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxh
dGVTZWNyZXRSZXN1bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0LCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKIH0K
QEAgLTU0NzcsNyArNTQ3OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+
KGltcGwuZ2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRC
b29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRTZWNyZXRCb29sZWFuIik7CiB9CkBAIC01NDkz
LDcgKzU0OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLnRl
c3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZl
YXR1cmVHZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKTsKIH0KQEAgLTU1MTIsNyArNTUxMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblVuZGVmaW5lZE1ldGhvZEJvZHkoCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2QsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidW5kZWZpbmVkTWV0aG9kIik7CiB9CkBAIC01NTQwLDcgKzU1NDEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25V
bmRlZmluZWRNZXRob2RXaXRoQQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2RXaXRoQXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2RXaXRoQXJncywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVuZGVmaW5lZE1ldGhvZFdpdGhBcmdzIik7CiB9CkBA
IC01NTU1LDcgKzU1NTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kQm9keShKU0M6OgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCeXRlPihpbXBs
LmJ5dGVNZXRob2QoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQnl0ZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYnl0
ZU1ldGhvZCIpOwogfQpAQCAtNTU4MSw3ICs1NTgyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdz
Qm8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMQnl0ZT4oaW1wbC5ieXRlTWV0aG9kV2l0aEFyZ3MoV1RGTW92ZShieXRlQXJnKSwgV1RG
TW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9k
V2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYnl0ZU1ldGhvZFdpdGhBcmdzIik7CiB9CkBA
IC01NTk2LDcgKzU1OTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZEJvZHkoSlNDOgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExPY3RldD4oaW1w
bC5vY3RldE1ldGhvZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9jdGV0TWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJvY3RldE1ldGhvZCIpOwogfQpAQCAtNTYyMiw3ICs1NjIzLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RX
aXRoQXJnc0IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMT2N0ZXQ+KGltcGwub2N0ZXRNZXRob2RXaXRoQXJncyhXVEZNb3ZlKG9jdGV0
QXJnKSwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFy
Z3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2N0ZXRNZXRob2RXaXRoQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJn
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib2N0ZXRNZXRob2RXaXRo
QXJncyIpOwogfQpAQCAtNTYzNyw3ICs1NjM4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZEJvZHkoSlNDOjoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMTG9uZz4oaW1wbC5sb25nTWV0aG9kKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImxvbmdNZXRob2QiKTsKIH0KQEAgLTU2NjMsNyArNTY2NCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2RXaXRoQXJnc0JvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETExvbmc+KGltcGwubG9uZ01ldGhvZFdpdGhBcmdzKFdURk1vdmUo
bG9uZ0FyZyksIFdURk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0
aEFyZ3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTG9uZ01ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFy
Z3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImxvbmdNZXRob2RXaXRo
QXJncyIpOwogfQpAQCAtNTY3OCw3ICs1Njc5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kQm9keShKU0M6OkoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBpbXBsLm9iak1ldGhvZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhv
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJvYmpNZXRob2QiKTsKIH0KQEAgLTU3MDQsNyArNTcwNSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9i
ak1ldGhvZFdpdGhBcmdzQm9kCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5vYmpNZXRob2RXaXRoQXJn
cyhXVEZNb3ZlKGxvbmdBcmcpLCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2Jq
TWV0aG9kV2l0aEFyZ3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhv
ZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvYmpNZXRo
b2RXaXRoQXJncyIpOwogfQpAQCAtNTcxOSw3ICs1NzIwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU1ldGhv
ZEJvZHkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMTG9uZz4oaW1wbC51bmZvcmdlYWJsZU1ldGhvZCgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJs
ZU1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqSW5zdGFuY2VGdW5j
dGlvblVuZm9yZ2VhYmxlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlTWV0aG9k
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmZvcmdlYWJsZU1ldGhv
ZCIpOwogfQpAQCAtNTc0MSw3ICs1NzQyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW4KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFy
Z1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRo
QXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAtNTc2Myw3ICs1NzY0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFhQYXRoTlNSZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
WFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBh
dGhOU1Jlc29sdmVyUGFyYW1ldGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyIik7CiB9CkBAIC01Nzc4LDcg
KzU3NzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJp
bmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5udWxsYWJsZVN0cmluZ01ldGhvZCgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2QsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJudWxsYWJsZVN0cmluZ01ldGhvZCIpOwogfQpAQCAtNTc5Miw3ICs1NzkzLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9y
RnVuY3Rpb25OdWxsYWJsZVN0cmluZ1N0YXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIFRlc3RPYmo6Om51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNN
ZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbFN0
YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRo
b2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU3RyaW5n
U3RhdGljTWV0aG9kIik7CiB9CkBAIC01ODEyLDcgKzU4MTMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmlu
Z1NwZWNpYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
aW1wbC5udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QoV1RGTW92ZShpbmRleCkpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJudWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QiKTsK
IH0KQEAgLTU4MzQsNyArNTgzNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnQm9kCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJn
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhFbnVtQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZ0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEVudW1BcmciKTsK
IH0KQEAgLTU4NTYsNyArNTg1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFs
b25lRW51bUFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnIik7CiB9CkBAIC01ODc2LDcgKzU4
NzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEVudW1BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1B
cmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbEVudW1BcmciKTsKIH0KQEAgLTU4OTYsNyArNTg5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51
bUFyZ0FuZERlZmF1bHRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
RW51bUFyZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZSIpOwogfQpAQCAt
NTkxOSw3ICs1OTIwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRl
c3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLm1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoV1RG
TW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NB
bmRUaHJvd3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93c0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyIp
OwogfQpAQCAtNTk0MSw3ICs1OTQyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0EKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0
cmluZ0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
VVNWU3RyaW5nQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRo
b2RXaXRoVVNWU3RyaW5nQXJnIik7CiB9CkBAIC01OTYzLDcgKzU5NjQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoTnVsbGFibGVVUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlVVNWU3Ry
aW5nQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOdWxsYWJs
ZVVTVlN0cmluZ0FyZyIpOwogfQpAQCAtNTk4NSw3ICs1OTg2LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVT
VlN0cmluZ0EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVT
VlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAtNjAwNyw3ICs2MDA4LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEJ5dGVTdHJpbmcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyIpOwogfQpAQCAtNjAy
OSw3ICs2MDMwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQnkKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmlu
Z0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnIik7CiB9CkBAIC02MDUx
LDcgKzYwNTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwog
fQpAQCAtNjA3Myw3ICs2MDc0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlQm9keSgKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNlcmlh
bGl6ZWRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzZXJpYWxpemVkVmFsdWUiKTsKIH0KQEAgLTYw
OTUsNyArNjA5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmRCb2R5CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJl
Y29yZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFJlY29yZCIpOwogfQpAQCAtNjExMiw3
ICs2MTEzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbkIKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoRXhjZXB0aW9uIik7CiB9CkBA
IC02MTI3LDcgKzYxMjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExMb25nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5tZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nTG9uZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhF
eGNlcHRpb25SZXR1cm5pbmdMb25nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZyIpOwogfQpAQCAtNjE0Miw3ICs2
MTQzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLm1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmlu
Z09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09i
amVjdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEV4
Y2VwdGlvblJldHVybmluZ09iamVjdCIpOwogfQpAQCAtNjE1Niw3ICs2MTU3LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3Vz
dG9tTWV0aG9kQm9keShKU0MKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpT
VmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5jdXN0b21NZXRob2QoKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJjdXN0b21NZXRob2QiKTsKIH0KQEAgLTYxNzAsNyArNjE3MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1l
dGhvZFdpdGhBcmdzCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVl
OjplbmNvZGUoY2FzdGVkVGhpcy0+Y3VzdG9tTWV0aG9kV2l0aEFyZ3MoKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9k
V2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjdXN0b21NZXRob2RXaXRoQXJncyIpOwog
fQpAQCAtNjE5MCw3ICs2MTkxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZEJvZHkoSlMKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3Ry
aW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5wcml2YXRlTWV0aG9kKFdURk1vdmUoYXJn
dW1lbnQpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uUHJpdmF0ZU1ldGhvZEJvZHksIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicHJpdmF0ZU1ldGhvZCIpOwogfQpAQCAt
NjIxMCw3ICs2MjExLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGgKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5wdWJsaWNBbmRQcml2YXRlTWV0aG9kKFdURk1vdmUo
YXJndW1lbnQpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1l
dGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhvZEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicHVibGljQW5kUHJpdmF0ZU1ldGhvZCIpOwog
fQpAQCAtNjIzOSw3ICs2MjQwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lckJvZHkKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRF
dmVudExpc3RlbmVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJhZGRFdmVudExpc3RlbmVyIik7CiB9CkBA
IC02MjY4LDcgKzYyNjksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyQgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92
ZUV2ZW50TGlzdGVuZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXJCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInJlbW92ZUV2ZW50TGlzdGVuZXIi
KTsKIH0KQEAgLTYyODUsNyArNjI4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkQm9kCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVW
b2lkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhFeGVjU3RhdGVWb2lkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZVZvaWQi
KTsKIH0KQEAgLTYzMDAsNyArNjMwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpCb2R5CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETElu
dGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgaW1wbC53aXRoRXhlY1N0YXRlT2JqKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihsZXhpY2FsR2xvYmFsT2JqZWN0KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVj
U3RhdGVPYmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhFeGVjU3RhdGVPYmoiKTsKIH0KQEAgLTYz
MTcsNyArNjMxOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkRXhjCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkRXhjZXB0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhFeGVjU3RhdGVWb2lkRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRl
Vm9pZEV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0
aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24iKTsKIH0KQEAgLTYzMzIsNyArNjMzMyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhFeGVjU3RhdGVPYmpFeGNlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRo
RXhlY1N0YXRlT2JqRXhjZXB0aW9uKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihsZXhpY2Fs
R2xvYmFsT2JqZWN0KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3Rh
dGVPYmpFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpFeGNlcHRp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhFeGVjU3RhdGVP
YmpFeGNlcHRpb24iKTsKIH0KQEAgLTYzNTIsNyArNjM1Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVj
dXRpb25DCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKTsKIH0KQEAg
LTYzNzIsNyArNjM3Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25DCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGUiKTsKIH0KQEAgLTYzOTAsNyArNjM5MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3Jp
cHRFeGVjdXRpb25DCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbigqanNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0KSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2Vw
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb24iKTsKIH0KQEAgLTY0MDgsNyAr
NjQwOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25DCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC53
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXMoKmpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxHbG9iYWxPYmplY3QpLCAqY2FsbEZyYW1lLCAqY29u
dGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhT
cGFjZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhT
cGFjZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyIpOwogfQpAQCAtNjQzMCw3ICs2
NDMxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJn
dW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEb2N1bWVudEFyZ3VtZW50Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoRG9jdW1lbnRBcmd1bWVudCIpOwogfQpA
QCAtNjQ1MCw3ICs2NDUxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXIKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXJn
dW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aENhbGxlckRvY3VtZW50QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxs
ZXJEb2N1bWVudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ3aXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCIpOwogfQpAQCAtNjQ2Nyw3ICs2NDY4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aENhbGxlcldpbmRvd0FyZ3UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlcldpbmRvd0FyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1
bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlcldpbmRvd0FyZ3VtZW50Qm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoQ2FsbGVyV2luZG93QXJndW1lbnQi
KTsKIH0KQEAgLTY0ODcsNyArNjQ4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9k
V2l0aE9wdGlvbmFsQXJnIik7CiB9CkBAIC02NTA3LDcgKzY1MDgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJn
QW5kRGVmYXVsdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmdB
bmREZWZhdWx0VmFsdWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1l
dGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSIpOwogfQpAQCAtNjUzMiw3ICs2NTMz
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxB
cmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25h
bEFyZyIpOwogfQpAQCAtNjU2MCw3ICs2NTYxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmEK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZFR3b09wdGlvbmFsQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFs
QXJnQW5kVHdvT3B0aW9uYWxBcmdzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MiKTsKIH0KQEAg
LTY1ODAsNyArNjU4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
ZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9k
V2l0aE9wdGlvbmFsU3RyaW5nIik7CiB9CkBAIC02NjAwLDcgKzY2MDEsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxVUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5n
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmlu
ZyIpOwogfQpAQCAtNjYyMCw3ICs2NjIxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXQKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsQXRvbVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nIik7CiB9CkBAIC02
NjQwLDcgKzY2NDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdB
bmREZWZhdWx0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0VmFsdWVCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0
cmluZ0FuZERlZmF1bHRWYWx1ZSIpOwogfQpAQCAtNjY2MCw3ICs2NjYxLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVm
YXVsdFZhbHVlIik7CiB9CkBAIC02NjgwLDcgKzY2ODEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
TnVsbCIpOwogfQpAQCAtNjcwMCw3ICs2NzAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmlu
ZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVk
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmdJc1VuZGVmaW5lZCIpOwogfQpAQCAtNjcyMCw3ICs2NzIxLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzTnVsbChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxB
dG9tU3RyaW5nSXNOdWxsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9t
U3RyaW5nSXNOdWxsQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRo
b2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxsIik7CiB9CkBAIC02NzQwLDcgKzY3NDEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmciKTsK
IH0KQEAgLTY3NjAsNyArNjc2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0
eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyIpOwogfQpAQCAtNjc4MCw3ICs2NzgxLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5n
SXNFbXB0eVN0cmluZyIpOwogfQpAQCAtNjgwMCw3ICs2ODAxLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsRG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJ
c05hTiIpOwogfQpAQCAtNjgyMCw3ICs2ODIxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRmwK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsRmxvYXRJc05hTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOIik7CiB9CkBA
IC02ODQwLDcgKzY4NDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMbwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25n
TG9uZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsTG9uZ0xvbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nIik7CiB9CkBAIC02ODYwLDcgKzY4NjEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxMbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxMb25nTG9uZ0lzWmVybywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
TG9uZ0xvbmdJc1plcm9Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1l
dGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvIik7CiB9CkBAIC02ODgwLDcgKzY4ODEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFVuc2lnbmVkTG9uZ0xvbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmciKTsKIH0KQEAgLTY5MDAs
NyArNjkwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9u
Z0xvbmdJc1plcm8oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVybywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVyb0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsVW5z
aWduZWRMb25nTG9uZ0lzWmVybyIpOwogfQpAQCAtNjkyMCw3ICs2OTIxLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU2UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2Us
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZSIp
OwogfQpAQCAtNjk0MCw3ICs2OTQxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2UKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsU2VxdWVuY2VJc0VtcHR5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlz
RW1wdHkiKTsKIH0KQEAgLTY5NjAsNyArNjk2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbiIpOwogfQpAQCAtNjk4MCw3ICs2
OTgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2Uo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNGYWxzZSIpOwogfQpAQCAtNzAwMCw3
ICs3MDAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW4KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEFueSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55Qm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBbnki
KTsKIH0KQEAgLTcwMjAsNyArNzAyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE9iCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbE9iamVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbE9iamVjdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0Iik7CiB9CkBAIC03MDQwLDcgKzcwNDEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxOdQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsTnVsbGFibGVXcmFwcGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlciIpOwogfQpAQCAtNzA2MCw3ICs3MDYx
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNO
dWxsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxsQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBw
ZXJJc051bGwiKTsKIH0KQEAgLTcwODAsNyArNzA4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFhQCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2
ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlckJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFs
WFBhdGhOU1Jlc29sdmVyIik7CiB9CkBAIC03MTAwLDcgKzcxMDEsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxSZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCIpOwogfQpAQCAtNzEy
MCw3ICs3MTIxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHIKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxQcm9taXNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxQcm9taXNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RX
aXRoT3B0aW9uYWxQcm9taXNlIik7CiB9CkBAIC03MTQyLDcgKzcxNDMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQ2FsbGJhY2tBcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDYWxsYmFja0FyZyIpOwogfQpAQCAtNzE2Nyw3ICs3MTY4
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tB
cmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFj
a0FyZyIpOwogfQpAQCAtNzE4Nyw3ICs3MTg4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW4K
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRp
b25hbEFyZyIpOwogfQpAQCAtNzIwOSw3ICs3MjEwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNr
RnUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aENhbGxiYWNrRnVuY3Rpb25BcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyIp
OwogfQpAQCAtNzIzNCw3ICs3MjM1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNh
bGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRD
YWxsYmFja0Z1bmN0aW9uQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJh
Y2tBcmdBbmRDYWxsYmFja0Z1bmN0aW9uQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Z1bmN0aW9uQXJn
Iik7CiB9CkBAIC03MjU0LDcgKzcyNTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2Fs
bGJhY2tGdW5jdGlvbkFuZE9wdGlvbmFsQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0
aW9uYWxBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5k
T3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxBcmciKTsKIH0KQEAgLTcyNzMsNyArNzI3
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9u
YWxBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3RhdGljTWV0aG9kV2l0aENhbGxi
YWNrQW5kT3B0aW9uYWxBcmciKTsKIH0KQEAgLTcyOTQsNyArNzI5NSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGlj
TWV0aG9kV2l0aENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNr
QXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0
aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0Fy
Z0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3RhdGljTWV0aG9kV2l0
aENhbGxiYWNrQXJnIik7CiB9CkBAIC03MzEwLDcgKzczMTEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1l
dGhvZDFCbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmNvbmRpdGlv
bmFsTWV0aG9kMSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbE1ldGhvZDEiKTsKIH0KQEAgLTczMzAsNyAr
NzMzMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMkJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhv
ZDIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxNZXRob2QyIik7CiB9CkBAIC03MzUw
LDcgKzczNTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDNCbwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDMoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxN
ZXRob2QzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDNCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFsTWV0aG9kMyIpOwogfQpAQCAt
NzYwNCw3ICs3NjA1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXIKICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZE92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJvdmVybG9hZGVkTWV0aG9kIik7CiB9CkBAIC03NjcxLDcgKzc2NzIsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kV2l0aAogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFy
YW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXJPdmVybG9hZERpc3BhdGNo
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdp
dGhPcHRpb25hbFBhcmFtZXRlciIpOwogfQpAQCAtNzcyNiw3ICs3NzI3LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGgKICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlz
aGluZ1VuaW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uT3ZlcmxvYWRE
aXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRN
ZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbiIpOwogfQpAQCAtNzc4Myw3ICs3Nzg0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93
Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgy
RGlzdGluZ3Vpc2hpbmdVbmlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlv
bnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5n
VW5pb25zT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zIik7CiB9CkBAIC03
ODQxLDcgKzc4NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHJldHVybiBhcmdz
Q291bnQgPCAyID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRo
cm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhO
b25EaXN0aW5ndWlzaGluZ1VuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlz
aGluZ1VuaW9uIik7CiB9CkBAIC03ODk4LDcgKzc4OTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxs
YWJsZQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxh
YmxlVW5pb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb25PdmVy
bG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3Zlcmxv
YWRXaXRoTnVsbGFibGVVbmlvbiIpOwogfQpAQCAtNzk1Niw3ICs3OTU3LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRXaXRoT3B0aW9uYWwKICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRX
aXRoT3B0aW9uYWxVbmlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoT3B0aW9uYWxV
bmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJvdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uIik7CiB9CkBAIC04MDE1LDcgKzgwMTYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZFdpdGhOdWxsYWJsZQogICAgIHJldHVybiBhcmdzQ291bnQgPCAyID8gdGhyb3dW
TUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5v
bkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hp
bmdQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlz
dGluZ3Vpc2hpbmdQYXJhbWV0ZXJPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1Bh
cmFtZXRlciIpOwogfQpAQCAtODAzMSw3ICs4MDMyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZEJvZHko
SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFz
c01ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbkNsYXNzTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9k
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZCIpOwog
fQpAQCAtODA0OCw3ICs4MDQ5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHQKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTG9uZz4o
VGVzdE9iajo6Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoV1RGTW92ZShhcmcpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
Q2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xhc3NNZXRob2RXaXRoT3B0aW9uYWwiKTsKIH0KQEAg
LTgwNjIsNyArODA2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyQm9keShKCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2JqOjpjbGFzc01l
dGhvZDIoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01l
dGhvZDIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25DbGFzc01ldGhvZDIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2Qy
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZDIiKTsK
IH0KQEAgLTgxMjMsNyArODEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDFPCiAgICAgcmV0
dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVj
dCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMU92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kMSIpOwogfQpAQCAtODE1
MCw3ICs4MTUxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXAKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRo
b2RXaXRoQ2xhbXAsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhDbGFtcCIp
OwogfQpAQCAtODE3MCw3ICs4MTcxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXAKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRo
Q2xhbXBPbk9wdGlvbmFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25hbCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwiKTsKIH0K
QEAgLTgxOTUsNyArODE5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9y
Y2VSYW5nZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNz
TWV0aG9kV2l0aEVuZm9yY2VSYW5nZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlIik7CiB9CkBAIC04MjE1LDcgKzgyMTYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFs
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNs
YXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNs
YXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWxCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwi
KTsKIH0KQEAgLTgyMzcsNyArODIzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNp
Z25lZExvbmdTZXF1ZW5jZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZUJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlIik7CiB9
CkBAIC04MjU3LDcgKzgyNTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uQgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExTZXF1ZW5j
ZTxJRExET01TdHJpbmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ0FycmF5RnVuY3Rpb24oV1RGTW92ZSh2
YWx1ZXMpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbiwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAic3RyaW5nQXJyYXlGdW5jdGlvbiIpOwogfQpAQCAtODI3Nyw3ICs4
Mjc4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPERPTVN0cmluZ0xp
c3Q+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLmRvbVN0cmluZ0xpc3RGdW5jdGlvbigqdmFsdWVzKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRv
bVN0cmluZ0xpc3RGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkRvbVN0cmluZ0xpc3RGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiZG9tU3RyaW5nTGlzdEZ1bmN0aW9uIik7CiB9CkBAIC04Mjk3LDcgKzgyOTgsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PcGVyYXRpb25XaXRoT3B0aW9uYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlvblBhcmFtZXRlcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25X
aXRoT3B0aW9uYWxVbmlvblBhcmFtZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0
aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1ldGVyIik7CiB9CkBAIC04MzIy
LDcgKzgzMjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxl
U2VxdWVuY2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2VCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1
ZW5jZSIpOwogfQpAQCAtODM0Miw3ICs4MzQzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRCb2R5KEoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEVsZW1lbnQ+Pj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5nZXRFbGVtZW50QnlJZChXVEZNb3Zl
KGVsZW1lbnRJZCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJnZXRFbGVtZW50QnlJZCIpOwogfQpAQCAtODM1Nyw3ICs4MzU4LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0
U1ZHRG9jdW1lbnRCb2R5KEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPERvY3VtZW50Pj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgQmluZGluZ1Nl
Y3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9kZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5n
ZXRTVkdEb2N1bWVudCgpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZ2V0U1ZHRG9jdW1lbnQiKTsKIH0KQEAgLTgzNzksNyArODM4MCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQxQm9keShKU0M6OkpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MUJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDEiKTsKIH0KQEAg
LTg0MDEsNyArODQwMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyQm9keShKU0M6OkpTCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0MkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiY29udmVydDIiKTsKIH0KQEAgLTg0MjMsNyArODQyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzQm9keShK
U0M6OkpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bnZlcnQzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbnZlcnQzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0M0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDMiKTsKIH0KQEAgLTg0NDUsNyArODQ0Niw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQ0Qm9keShKU0M6OkpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0LCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252
ZXJ0NEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29udmVydDQiKTsK
IH0KQEAgLTg0NjAsNyArODQ2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9uCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVy
ZmFjZTxTVkdQb2ludD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIGltcGwubXV0YWJsZVBvaW50RnVuY3Rpb24oKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2lu
dEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9p
bnRGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibXV0YWJs
ZVBvaW50RnVuY3Rpb24iKTsKIH0KQEAgLTg0NzcsNyArODQ3OCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9yYW5nZUJvZHko
SlNDOjpKU0dsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk9yYW5nZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcmFuZ2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9yYW5nZUJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAib3JhbmdlIik7CiB9CkBAIC04NTAxLDcgKzg1MDIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25WYXJpYWRpY1N0cmluZ01ldGhvZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInZhcmlhZGljU3RyaW5nTWV0aG9kIik7CiB9CkBAIC04NTI1LDcg
Kzg1MjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJs
ZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2RCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhcmlhZGljRG91YmxlTWV0aG9kIik7CiB9
CkBAIC04NTQ5LDcgKzg1NTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2RCbwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2Qo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFy
aWFkaWNOb2RlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2RCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhcmlhZGljTm9kZU1ldGhvZCIp
OwogfQpAQCAtODU3Myw3ICs4NTc0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhvZEIKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1l
dGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25WYXJpYWRpY1VuaW9uTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9uTWV0
aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YXJpYWRpY1VuaW9u
TWV0aG9kIik7CiB9CkBAIC04NTk4LDcgKzg1OTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BbnlCb2R5KEpTQzo6SlNHbG9i
YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BbnkoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55LCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25BbnlCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImFueSIpOwogfQpAQCAtODYxNSw3ICs4NjE2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlv
bkIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFBy
b21pc2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAidGVzdFByb21pc2VGdW5jdGlvbiIpOwogfQpAQCAtODYzNyw3ICs4NjM4LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9h
dEFyZ3VtZW50Iik7CiB9CkBAIC04NjU0LDcgKzg2NTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0
aW9uVwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0
UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25X
aXRoRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0
UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbiIpOwogfQpAQCAtODY3NCw3ICs4Njc1LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVGVzdFByb21pc2VGdW5jdGlvblcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1
bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFByb21pc2VG
dW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50Iik7CiB9CkBAIC04NzI3LDcgKzg3MjgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhy
b3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2Fk
ZWRGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uT3ZlcmxvYWREaXNw
YXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9taXNlT3Zl
cmxvYWRlZEZ1bmN0aW9uIik7CiB9CkBAIC04NzQzLDcgKzg3NDQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0
aWNQcm9taXNlRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+
OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlz
ZUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0U3Rh
dGljUHJvbWlzZUZ1bmN0aW9uIik7CiB9CkBAIC04NzU5LDcgKzg3NjAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RT
dGF0aWNQcm9taXNlRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1By
b21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0U3RhdGljUHJvbWlzZUZ1bmN0
aW9uV2l0aEV4Y2VwdGlvbiIpOwogfQpAQCAtODc3Myw3ICs4Nzc0LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3Rv
bVByb21pc2VGdW4KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6
OmVuY29kZShjYXN0ZWRUaGlzLT50ZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCBXVEZNb3ZlKHByb21pc2UpKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0
b21Qcm9taXNlRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb25Cb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24iKTsK
IH0KQEAgLTg3ODcsNyArODc4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2JqOjp0
ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCBXVEZNb3ZlKHByb21pc2UpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByb21p
c2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RTdGF0aWNDdXN0
b21Qcm9taXNlRnVuY3Rpb24iKTsKIH0KQEAgLTg4MDEsNyArODgwMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0
b21SZXR1cm5zT3duCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVl
OjplbmNvZGUoY2FzdGVkVGhpcy0+dGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rpb24o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVy
bnNPd25Qcm9taXNlRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rpb24sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46
OmNhbGxSZXR1cm5pbmdPd25Qcm9taXNlPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1
c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uIik7CiB9CkBA
IC04ODE2LDcgKzg4MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuc093blByb21pcwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExQcm9taXNlPElE
TFVuZGVmaW5lZD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIGltcGwudGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24o
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RS
ZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsUmV0dXJuaW5n
T3duUHJvbWlzZTxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5zT3duUHJvbWlz
ZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0ZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbiIpOwog
fQpAQCAtODg3OSw3ICs4ODgwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPdmVybG9hZE8KICAgICByZXR1
cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0
KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29uZGl0aW9uYWxPdmVybG9hZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE92ZXJsb2FkLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db25kaXRpb25hbE92ZXJsb2FkT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFsT3ZlcmxvYWQiKTsKIH0KQEAgLTg5MzcsNyAr
ODkzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblNpbmdsZUNvbmRpdGlvbmFsT3ZlCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8
IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5
cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNpbmdsZUNvbmRp
dGlvbmFsT3ZlcmxvYWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
U2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZE92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJzaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkIik7CiB9CkBA
IC04OTU5LDcgKzg5NjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290Qm9keQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNo
YWRvd1Jvb3QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3RCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImF0dGFjaFNoYWRvd1Jvb3QiKTsKIH0KQEAgLTg5
ODEsNyArODk4Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rp
b25hcnlQYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlckJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3BlcmF0aW9uV2l0aEV4dGVy
bmFsRGljdGlvbmFyeVBhcmFtZXRlciIpOwogfQpAQCAtOTAwMyw3ICs5MDA0LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnVm
ZmVyU291cmNlUGFyYW1ldGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJjZVBhcmFtZXRlciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1ldGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJidWZmZXJTb3VyY2VQYXJhbWV0ZXIiKTsKIH0KQEAgLTkwMjUsNyAr
OTAyNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkQm9kCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVk
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25MZWdhY3lDYWxsZXJOYW1lZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibGVnYWN5Q2FsbGVyTmFtZWQiKTsKIH0KQEAgLTkwNTAsNyAr
OTA1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhcmd1bWVudDAudmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dFJldHVyblZhbHVlT3B0aW1pemF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFs
dWVPcHRpbWl6YXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRl
c3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbiIpOwogfQpAQCAtOTA3NSw3ICs5MDc2LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFJldHVyblZhbHVlT3B0aW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFyZ3VtZW50
MC52YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4
Y2VwdGlvbiIpOwogfQpAQCAtOTA5Miw3ICs5MDkzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9z
ZWQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dG
dW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1
bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24iKTsKIH0KQEAgLTkxMDksNyArOTExMCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsbHlFeHBvc2VkCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25h
bGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uIik7CiB9CkBAIC05
MTI2LDcgKzkxMjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QW5kV29ya2VyRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1
bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5k
V29ya2VyRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbiIpOwogfQpAQCAtOTE0
MSw3ICs5MTQyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5KEpTQzo6SlMKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMVVNWU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5zdHJpbmdpZmllckF0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9T
dHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
cGVyYXRpb25Db25kaXRpb25hbC5jcHAKaW5kZXggNGI0YmE3MzgzZmI5MDVmMmUzNzk5M2FiOTkz
MGExZjA1MTBlNjNmMi4uZDkxMTQ4OWRkNzllOTUyZTI1ZjVlMTNhZWI1YjIzYTUyZmZkM2ZjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwCkBAIC00OSwxNiAr
NDksMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIC8vIEZ1bmN0aW9ucwogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbkJhc2UpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9u
Tm9uQ29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbkJh
c2UpICYmIEVOQUJMRShDb25kaXRpb25PcGVyYXRpb24pCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFBy
b3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAKIC8vIEF0dHJp
YnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3Mg
SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE3Nyw3ICsxNzcsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbCogSURMT3BlcmF0aW9uPEpTVGVzdE9w
ZXJhdGlvbkNvbmRpdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE9wZXJhdGlvbkNv
bmRpdGlvbmFsKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50
aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg3
LDcgKzE4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MTMsNyArMjEzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Ob24KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Ob25Db25kaXRp
b25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjo6
Y2FsbDxqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uTm9uQ29uZGl0
aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5v
bkNvbmRpdGlvbmFsT3BlcmF0aW9uIik7CiB9CkBAIC0yMzMsNyArMjMzLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90
eXBlRnVuY3Rpb25Db24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsPjo6Y2FsbDxqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFsT3BlcmF0aW9uIik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggNWEyYTgyMGM3NTZm
NmE0ZDU3YmY3ODY4N2Q3NDMxYThhM2JlMjMwMS4uYjg2OWEzNWY4NzMwNDRjZDFiMzA5MzI1OGY1
MmE3YTIzYzliZGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcApAQCAtNTAsOCArNTAsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTgxLDcgKzE4MSw3IEBA
IHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yczUoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Zh
bHVlKTsKIH0KIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRl
PD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBs
ZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjA0LDYgKzIwNCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3I6CiAgICAgfQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUpOwogfQorSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0
cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCkKIHsKQEAgLTI3Myw3ICsyNzQsNyBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yczo6fkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjgzLDcgKzI4NCw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5j
cHAKaW5kZXggYTkyMDIyNDRhNWEzMTIzYTlmYWJmMjY3N2MyYzAzMjhlNmZlOTJlMC4uOTA3YjAx
MDYwNzYzY2U4ODg3NmQxN2JlZjUyMTE0YzIwYTUyZWQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAt
NDksOCArNDksOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTI0LDcgKzEyNCw3IEBAIHN0YXRpYyBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZTIoCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKIH0K
IAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBs
YXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQzLDYgKzE0Myw3IEBAIHRlbXBs
YXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlCiAgICAgfQogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQorSlNDX0FOTk9UQVRFX0hPU1RfRlVO
Q1RJT04oSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9y
Q29uc3RydWN0LCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3Ry
dWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsK
QEAgLTIxMiw3ICsyMTMsNyBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2U6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6fkpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIyLDcgKzIyMyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCmlu
ZGV4IGFkNGRjMzQ2MDlkMGIwM2YyY2Y3YzM4YzFmOTM4YWNjMmM0MjBhMWUuLmIxMTNiMGEyODg5
MWQzZDYyNzc2NzM2Yjg4NDY1NmVhZTU2ODY1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRl
cmZhY2UuY3BwCkBAIC00NSw4ICs0NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UGx1Z2luSW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RQbHVn
aW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFBsdWdpbkludGVy
ZmFjZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjExLDcgKzIxMSw3IEBAIENhbGxEYXRhIEpTVGVzdFBsdWdpbkludGVyZmFjZTo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogICAgIHJldHVybiBwbHVnaW5FbGVtZW50Q3VzdG9t
R2V0Q2FsbERhdGEodGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFBsdWdp
bkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MjEsNyArMjIxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdFBsdWdpbkludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKaW5kZXggMGZlM2E4MDk2NTBiYzMwODQyN2UyNjc3
ZmIwMWIyZjRmYjNjYTMxOC4uOGU1YzZiYTIzOTE0ZjcwNzliNzZlNDliZmFjMjQ5OTk1M2U5ZjVi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKQEAgLTEy
NywxMCArMTI3LDEwIEBAIHRlbXBsYXRlPD4gVGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6SW5p
dCBjb252ZXJ0RGljdGlvbmFyeTxUZXN0UHJvbWlzZVJlamVjdGlvCiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dFByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50UmVhc29uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50UHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTE2Niw3ICsxNjYsNyBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJT
UEFDRV9TSEFSQUJMRShKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm90b3R5cGUsIEpTVGVz
dAogCiB1c2luZyBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvciA9IEpTRE9N
Q29uc3RydWN0b3I8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50PjsKIAotdGVtcGxhdGU8PiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6
OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OSw2
ICsxODksNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OgogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUp
OwogfQorSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0
cnVjdG9yOjpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAgLTI1OCw3ICsy
NTksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQqIElE
TEF0dHJpYnV0ZTxKU1Rlc3RQcm9taXNlUmVqZWN0aQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjgsNyArMjY5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4OSw3ICsyOTAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZUdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExQ
cm9taXNlPElETEFueT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnByb21pc2UoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dFByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Pjo6Z2V0PGpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFByb21pc2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNl
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicHJvbWlzZSIpOwogfQpAQCAtMzAy
LDcgKzMwMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRSZWFzb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5yZWFzb24oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50UmVhc29uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudD46OmdldDxqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb25HZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZWFzb24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAK
aW5kZXggZGMyNzNmM2I0NzkzOGRjNWI3MWJiMjU0MDY0NGRlYjc4ODY2ZTNjOS4uOTIwNTc2YTQx
MzYxZTY0ZTdkMDc0MTMwMDEzYzMzMjE2ZWM2YmMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5
TWFwTGlrZS5jcHAKQEAgLTUwLDE4ICs1MCwxOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlNYXBM
aWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4Myw3ICsx
ODMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RSZWFkT25seU1hcExpa2UqIElETE9wZXJh
dGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTVGVzdFJlYWRPbmx5TWFwTGlrZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFk
T25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTkzLDcgKzE5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1Rlc3RSZWFkT25seU1hcExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVhZE9u
bHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTMsNyArMjEzLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVNpemVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBmb3J3
YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFwTGlr
ZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0UmVhZE9ubHlNYXBMaWtlPjo6Z2V0PGpzVGVzdFJlYWRPbmx5TWFwTGlrZVNpemVHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CkBAIC0yMzIsNyAr
MjMyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkR2V0VG9NYXBM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92
ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7CiB9CkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uSGFzQm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
aGFzIik7CiB9CkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0IKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkRW50cmllc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFw
TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBA
IC0yNzksNyArMjc5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJk
S2V5c1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRo
aXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzQm8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZh
bHVlcyIpOwogfQpAQCAtMzEyLDcgKzMxMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZEZvckVhY2hUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImZvckVhY2giKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAKaW5kZXgg
ZGUwMjVhNmI0YTNkMzQ2MGUxYmIxMTZiNjZmYThkZjJjZjBhMTY4Zi4uYzMyZDc3NGVkNTA2M2Y5
ZmZmYzc1NTMwM2Y4ZGE1MDhkM2YwZmViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlr
ZS5jcHAKQEAgLTUwLDE3ICs1MCwxNyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5j
dGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRP
bmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
KTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5
U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFJlYWRPbmx5U2V0TGlrZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRM
aWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJl
YWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3Mg
SlNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODEsNyArMTgxLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0UmVhZE9ubHlTZXRMaWtlKiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRM
aWtlPjo6Y2EKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RSZWFkT25seVNldExpa2Uq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RS
ZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5MSw3ICsxOTEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0UmVhZE9u
bHlTZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0UmVhZE9u
bHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RSZWFkT25seVNldExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1NldExpa2UobGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dFJlYWRPbmx5U2V0TGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46Omdl
dDxqc1Rlc3RSZWFkT25seVNldExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAic2l6ZSIpOwogfQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkhhc0JvZHkoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIp
OwogfQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4o
Zm9yd2FyZEVudHJpZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmll
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+
OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMjU4
LDcgKzI1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5CiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNU
b1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
blZhbHVlc0JvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5
cGVGdW5jdGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RS
ZWFkT25seVNldExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMi
KTsKIH0KQEAgLTI5MSw3ICsyOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQgogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+
KGZvcndhcmRGb3JFYWNoVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJm
b3JFYWNoIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3Bw
CmluZGV4IDQ2MjE0YzgzMDYwMDkwNTljYzI4ZDM2MWMyNmVlYjRhOWJmNTI5ODcuLjNlZGQwMWZj
YWIyNDllZjVlZjg5Yjk3NWJmNThmZjNlMTU1NzhhM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZXBv
cnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdFByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTUw
LDcgKzE1MCw3IEBAIHZvaWQgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjpkZXN0cm95KEpT
Qzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdDo6fkpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTYwLDcgKzE2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RSZXBvcnRFeHRyYU1lbW9y
eUNvc3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGMxNTU2N2UyNDYzMTI5MzQzZDE5
MGI1YWE0NTQxNTZlYjg0NjAxMzQuLmYwYWRjODNmMDQ2YzcyYzFkNjYyOGU5ZjEzNDk0ZjE0Y2Qz
MTdhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCkBAIC01NiwyMCArNTYsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9u
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25SZXR1cm5pbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uUmV0dXJuaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNhY2hlZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVJlYWRvbmx5VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNhY2hlZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTAsNyArMTkwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBJRExPcGVyYXRpb248SlNUZXN0
U2VyaWEKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1l
LnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIxLDcg
KzIyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWYWx1ZUdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC52YWx1ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInZhbHVl
Iik7CiB9CkBAIC0yMzksNyArMjM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlU2V0dGVyKEpTR2xvYmFsT2IKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjUyLDcgKzI1
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VSZWFkb25seVZhbHVlR2V0dGVyKEpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5yZWFkb25seVZhbHVlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25s
eVZhbHVlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZG9ubHlWYWx1ZSIpOwogfQpAQCAtMjcwLDcgKzI3
MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWNoZWRWYWx1ZUdldHRlcihKU0dsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVk
VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ2FjaGVkVmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRWYWx1ZSIpOwogfQpAQCAtMjg4
LDcgKzI4OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZVNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFs
dWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY2FjaGVkVmFsdWUiKTsKIH0KQEAg
LTMwMSw3ICszMDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUG9ydHNHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8TWVzc2Fn
ZVBvcnQ+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwucG9ydHMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VQb3J0cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwb3J0cyIp
OwogfQpAQCAtMzE5LDcgKzMxOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlR2V0CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0
PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRSZWFkb25seVZhbHVlIik7CiB9CkBAIC0zNDEsNyArMzQx
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FsbDxqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmdW5jdGlvbiIpOwogfQpA
QCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmZ1bmN0aW9uUmV0dXJuaW5nKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpjYWxsPGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rp
b25SZXR1cm5pbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmN0
aW9uUmV0dXJuaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAKaW5kZXggM2RhZjUwNzllMjUyMGFi
ZjgwNTIyNDgxNjc5Nzc0MDA4YWYxZGI5OC4uYmY0Mjk5MWE1NjQ3MGU4NWQxOWNmYTIxOTFiNzVi
NzljZGE3NjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcApAQCAtNTAsMjAgKzUwLDIwIEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25IYXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25DbGVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5
cGVGdW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U2V0TGlrZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVNpemUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNl
dExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFNldExpa2VQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4Nyw3ICsxODcsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXRMaWtlKiBJRExPcGVyYXRpb248SlNUZXN0U2V0
TGlrZT46OmNhc3QoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dFNldExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXRMaWtlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTcsNyArMjE3
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNldExpa2VTaXplR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBm
b3J3YXJkU2l6ZVRvU2V0TGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlU2l6ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlPjo6
Z2V0PGpzVGVzdFNldExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic2l6ZSIpOwogfQpAQCAtMjM2LDcgKzIzNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KEpTQzo6
SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmll
c0JvZHkoSlNDOgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2Fs
bDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0yNjQsNyArMjY0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbktleXNCb2R5KEpTQzo6SlMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvU2V0TGlrZSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5j
dGlvbktleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46
OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25WYWx1ZXNCb2R5KEpTQzo6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvU2V0TGlrZSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExp
a2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0yOTcsNyArMjk3
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1v
dmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImZvckVhY2giKTsKIH0KQEAgLTMxNiw3ICszMTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkQm9keShKU0M6
OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExBbnk+KGZvcndhcmRBZGRUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRk
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpz
VGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiYWRkIik7CiB9CkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFy
Qm9keShKU0M6OkoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkNsZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KQEAgLTM1MSw3
ICszNTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keShKU0M6OgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxldGVU
b1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBX
VEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5
cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
ZGVsZXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucy5jcHAKaW5kZXggNzNjNGVmYzE2MThmMjFhNGFjNjNkMWU3MzJjNzZl
ZjI4OTBlOTgzZi4uMTczYTk2NzIzNzNmNWQxMjU5MzE4Y2U0MzY5NjFkYWY1M2JkNmYxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zLmNwcApAQCAtNTEsMjEgKzUxLDIxIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1
bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
Q2xlYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlz
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTsKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0FkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNT
aXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
QEAgLTE4OSw3ICsxODksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zKiBJRExPcGVyYXRpb248SlNUZXN0U2V0TAogICAgIHJldHVybiBq
c0R5bmFtaWNDYXN0PEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMqPihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTk5LDcgKzE5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Fk
ZEdldHRlcihKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFkZCgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNBZGRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhZGQiKTsKIH0KQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Fk
ZFNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucz46OnNldDxzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRk
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJh
ZGQiKTsKIH0KQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemVHZXR0ZXIoSlNHbG9iYWxPYgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndhcmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpnZXQ8anNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJzaXplIik7CiB9CkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uRGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7CiB9CkBAIC0yODYsNyArMjg2LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImVudHJpZXMiKTsKIH0KQEAgLTMxNCw3ICszMTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExBbnk+KGZvcndhcmRLZXlzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
S2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0z
MjgsNyArMzI4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFs
dWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhp
cykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTM0Nyw3ICszNDcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9TZXRM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92
ZShjYWxsYmFjaykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2go
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFj
aEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpA
QCAtMzYzLDcgKzM2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25DbGVhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46
OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAppbmRleCAxNTEzZmQ4ZmFkNmViMjNiYzVhZmRi
ZmU5MjVmNjFjZmM4NDNlODQ3Li42ZGExZjA4ZGE2YmVhM2VkZWZlOGNiNGI4YTY5ZmJlOWI2NzBk
ZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKQEAgLTQ2LDEyICs0NiwxMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTYxLDcg
KzE2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyKiBJRExPcGVyYXRp
b248SlNUZXN0U3RyaW5naWZpZXI+OjpjYXN0KEpTR2xvCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0U3RyaW5naWZpZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
Y2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5n
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzEsNyArMTcx
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdFN0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5n
Qm9keQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnRvU3RyaW5nKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJQ
cm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXI+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVy
UHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidG9TdHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCmluZGV4IGQwMTdkZmI0OTY3MWU3ZDdmMGIwYjU5
MzMwYmU4NzYwNjMxNTg0NWEuLmVhZTA0OTczZTEwOTI3NmQ2MGIwZmMzZDQ5ZmI1NTdlMDk2ZTUw
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uLmNwcApAQCAtNDYsMTIgKzQ2LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9u
VG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllckFub255bW91
c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNz
IEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24qIElE
TE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmcKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvbio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RT
dHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTk0LDcgKzE5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1CiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmlu
Zz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwudG9TdHJpbmcoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
blByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbj46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Q
cm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb24uY3BwCmluZGV4IDNmNjI4NzYzOWY0MjhiODMwY2JmNDNlMzE2NjA2ZmU4
OTZlZjE2NzcuLjNkNDBjZGIyMTc2YWQyZjY1Mzc0NWRiNjAwMTNhNWQ4OWU1ZWFjOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTQ2
LDEzICs0NiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Qcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbklkZW50
aWZpZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlIGZpbmFs
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjMsNyArMTYz
LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiog
SURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDcgKzE5Niw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3RpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxP
YmplY3QsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbklk
ZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbj46OmNhbGw8anNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllckJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaWRlbnRpZmllciIpOwogfQpA
QCAtMjExLDcgKzIxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3RpCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4o
KmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90
b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
Pjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25U
b1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmci
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcy5jcHAKaW5kZXggYjg2ZjEyZjkxNzUzOWMyZDUzOWQ1MDljOWFhODQ4NDJm
OWZhMjZhMy4uN2RiNWZmN2RjMzQ5M2RjZmIxMjkyYzZlYjlhMjE0Yjc0M2FjMTVkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBcy5jcHAKQEAgLTQ2LDEzICs0NiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBG
dW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQ
cm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQ
cm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0xNjMsNyArMTYzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKiBJRExPcGVyYXRpb248SlNUZXN0
U3QKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1l
LnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTk2LDcgKzE5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5CiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0
cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuYWx0ZXJuYXRlSWRlbnRpZmllcigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
UHJvdG90eXBlRnVuY3Rpb25JZGVudGlmaWVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcz46OmNhbGw8anNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25JZGVudGlm
aWVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpZGVudGlmaWVyIik7
CiB9CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHkKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3Ry
aW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5hbHRlcm5hdGVJZGVudGlmaWVyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJv
dG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM+OjpjYWxsPGpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJp
bmcuY3BwCmluZGV4IDY2NmUzNTY3ZWQ0OTg2Mzc2YmM3ZGZhZTRkNGQyZGFjYTliMDBiNzIuLmNl
YWY2NGFiNWJlMjU4NGFhYjQxYmEwZGFiZTU3Y2NlMzI3NzRiY2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwCkBA
IC00NiwxMiArNDYsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5jdGlvblRvU3Ry
aW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0x
NjEsNyArMTYxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nKiBJRExPcGVyYXRpb248SlNUZXN0U3QKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk0LDcgKzE5NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxP
YmplY3QsIGltcGwudG9TdHJpbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZz46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJv
dG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAidG9TdHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlLmNwcAppbmRleCBjNTAzN2VmMzUxYjk1NjFmYjBjMDdmMGIzNWFi
ZjBkZTEwMTA3NzBjLi45ZWY4MWIxNjk0OTYyZjRkYTFlZjk4Zjc3ZDljZjc4MmEzOWIxODlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUu
Y3BwCkBAIC00NywxMyArNDcsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rp
b25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcp
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0xNjksNyArMTY5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSogSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2kKICAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE3OSw3ICsxNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZTo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmllckdl
dHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pZGVudGlm
aWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZT46OmdldDxqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlSWRlbnRpZmllckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImlkZW50aWZpZXIiKTsKIH0KQEAg
LTIxNSw3ICsyMTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bgogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJv
dG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZT46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlw
ZUZ1bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
InRvU3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlLmNwcAppbmRleCA5MDAyOWJjZTYzODYyZTdjZjNiODc4ZjMzOTYwYjNk
NjBmM2ZmOWE0Li43YzNkNGNiNjA3OWRlZjFiMzI4YWZlNmVlMTk2NDZiODYzNmQzMzUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5j
cHAKQEAgLTQ3LDE0ICs0NywxNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlv
bnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5n
KTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZp
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTcwLDcgKzE3
MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5nCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqPihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODAsNyArMTgwLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyR2V0dGVyKEpTR2xvYgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZp
ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGU+OjpnZXQ8anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVu
dGlmaWVyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaWRlbnRpZmllciIpOwogfQpAQCAtMjE5LDcgKzIxOSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUlkZW50aWZpZXJTZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU+OjpzZXQ8c2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVJZGVudGlmaWVyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJpZGVudGlmaWVyIik7CiB9CkBAIC0yMzQsNyArMjM0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlUHJvdG90eXBlRnUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgaW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRv
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU+OjpjYWxs
PGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGVlYjk5MGY4NWEzNmVmNjkxM2I3NzViMTUzMWM1
YjE1YTI4ZWU4N2EuLjkwY2Q3MDZjMmUzMzljMmNkOTEyZGY0MDc2MjQyY2NjNmE3YzBjOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtNjUsMzkgKzY1LDM5IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVl
bmNlQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25T
ZXF1ZW5jZU9mTnVsbGFibGVzQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZlVu
aW9uc0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
VW5pb25BcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bkZ1bmNXaXRoQ2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNl
RnVuY3Rpb24yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25DYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhTZXF1ZW5jZUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlQXJnKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZO
dWxsYWJsZXNBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxl
U2VxdWVuY2VPZlVuaW9uc0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNX
aXRoQ2xhbXBJblR5cGVkZWYpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0
aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVx
dWlyZXNJbmNsdWRlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24pOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xv
bmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25l
ZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRl
c3RTdWJPYmooSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RU
eXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRl
ZihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wSW5UeXBlZGVmKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNTQsNyArMTU0LDcgQEAgc3RhdGlj
IGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUYWJsZVZhbHVl
c1tdID0KICAgICB7ICJUZXN0U3ViT2JqIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RUeXBlZGVmc0NvbnN0cnVj
dG9yVGVzdFN1Yk9iaiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQ
dXRWYWx1ZUZ1bmM+KDApIH0gfSwKIH07CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxh
dGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTgwLDYgKzE4MCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHCiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNWYWx1ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcjo6
cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjgxLDcgKzI4Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdFR5cGVkZWZzKiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYXN0KEpTR2xv
YmFsT2JqCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yOTEsNyArMjkyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW4KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFR5cGVkZWZzOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxMiw3ICszMTMsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExVbnNpZ25lZExvbmdMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLnVuc2lnbmVkTG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5
cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtMzMwLDcgKzMzMSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExv
bmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc1Vu
c2lnbmVkTG9uZ0xvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtMzQzLDcgKzM0
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLnNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzU2VyaWFs
aXplZFNjcmlwdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlw
dFZhbHVlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2VyaWFsaXplZFNjcmlwdFZhbHVlIik7CiB9CkBAIC0z
NjEsNyArMzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzU2VyaWFs
aXplZFNjcmlwdFZhbHVlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxz
ZXRKU1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2VyaWFsaXplZFNjcmlwdFZhbHVl
Iik7CiB9CkBAIC0zNzIsNyArMzczLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJl
dHVybiBKU1Rlc3RTdWJPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
VGVzdFN1Yk9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RUeXBlZGVmcz46OmdldFN0YXRpYzxqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVz
dFN1Yk9iakdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJP
YmoiKTsKIH0KQEAgLTM4NSw3ICszODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExDbGFtcEFkYXB0b3I8SURM
VW5zaWduZWRMb25nTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
YXR0cmlidXRlV2l0aENsYW1wKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+Ojpn
ZXQ8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRy
aWJ1dGVXaXRoQ2xhbXAiKTsKIH0KQEAgLTQwMyw3ICs0MDQsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0
cmlidXRlV2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcFNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0
cmlidXRlV2l0aENsYW1wIik7CiB9CkBAIC00MTYsNyArNDE3LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmR2V0dGVyKEpT
R2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQ2xh
bXBBZGFwdG9yPElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmF0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRl
V2l0aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wSW5UeXBlZGVmR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBl
ZGVmIik7CiB9CkBAIC00MzQsNyArNDM1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmU2V0dGVyKEpTR2xvYmFsT2IKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhD
bGFtcEluVHlwZWRlZihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXBJblR5cGVkZWZTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIpOwogfQpAQCAtNDQ3LDcg
KzQ0OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJj
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFVuaW9uPElETEFycmF5QnVmZmVyVmlldywgSURMQXJyYXlC
dWZmZXI+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5idWZmZXJTb3VyY2VBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RU
eXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJidWZmZXJTb3VyY2VBdHRyIik7CiB9CkBAIC00NjUsNyArNDY2LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0clNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RUeXBl
ZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImJ1
ZmZlclNvdXJjZUF0dHIiKTsKIH0KQEAgLTQ3OCw3ICs0NzksNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNp
Z25lZExvbmdMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvbVRp
bWVTdGFtcEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNEb21U
aW1lU3RhbXBBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5
cGVkZWZzRG9tVGltZVN0YW1wQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvbVRpbWVTdGFtcEF0dHIi
KTsKIH0KQEAgLTQ5Niw3ICs0OTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlw
ZWRlZnNEb21UaW1lU3RhbXBBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0
PHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZG9tVGltZVN0YW1wQXR0ciIpOwogfQpA
QCAtNTE2LDcgKzUxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY0JvZHkoSlNDOjpKCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJmdW5jIik7CiB9CkBAIC01NTAsNyArNTUxLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXRTaGFk
b3dCb2R5KEoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25TZXRTaGFkb3coSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25TZXRTaGFkb3csIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25T
ZXRTaGFkb3dCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNldFNoYWRv
dyIpOwogfQpAQCAtNTcwLDcgKzU3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFVu
c2lnbmVkTG9uZ0xvbmc+KGltcGwubWV0aG9kV2l0aFNlcXVlbmNlQXJnKFdURk1vdmUoc2VxdWVu
Y2VBcmcpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNl
cXVlbmNlQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZz
Pjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNl
QXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoU2Vx
dWVuY2VBcmciKTsKIH0KQEAgLTU5Miw3ICs1OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVu
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51
bGxhYmxlU2VxdWVuY2VBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlQXJnLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTZXF1ZW5jZUFyZyIpOwogfQpAQCAtNjE0LDcgKzYxNSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxlc0FyZyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNl
T2ZOdWxsYWJsZXNBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlw
ZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVs
bGFibGVzQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzZXF1ZW5j
ZU9mTnVsbGFibGVzQXJnIik7CiB9CkBAIC02MzYsNyArNjM3LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJs
ZVNlcXVlbmMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZO
dWxsYWJsZXNBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRl
ZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNl
T2ZOdWxsYWJsZXNBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51
bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyIpOwogfQpAQCAtNjU4LDcgKzY1OSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uTnVsbGFibGVTZXF1ZW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVT
ZXF1ZW5jZU9mVW5pb25zQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVT
ZXF1ZW5jZU9mVW5pb25zQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJudWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmciKTsKIH0KQEAgLTY4MCw3ICs2ODEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblVuaW9uQXJnQm9keShKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25VbmlvbkFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidW5pb25BcmciKTsKIH0KQEAgLTcwNSw3ICs3MDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xh
bXBCbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bkZ1bmNXaXRoQ2xhbXAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uRnVuY1dpdGhDbGFtcEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
ZnVuY1dpdGhDbGFtcCIpOwogfQpAQCAtNzI3LDcgKzcyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhD
bGFtcEluCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBlZGVmQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmdW5jV2l0aENsYW1wSW5UeXBlZGVmIik7CiB9
CkBAIC03NDIsNyArNzQzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25Qb2ludEZ1bmN0aW9uQm8KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNl
PFNWR1BvaW50Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgaW1wbC5wb2ludEZ1bmN0aW9uKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rpb24oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25Q
b2ludEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVk
ZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicG9pbnRGdW5jdGlvbiIpOwog
fQpAQCAtNzYyLDcgKzc2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcXVlbmNl
PElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nU2VxdWVuY2VGdW5jdGlvbihXVEZNb3Zl
KHZhbHVlcykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2Vx
dWVuY2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNl
RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0cmluZ1Nl
cXVlbmNlRnVuY3Rpb24iKTsKIH0KQEAgLTc4Miw3ICs3ODMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1Nl
cXVlbmNlRgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ1NlcXVl
bmNlRnVuY3Rpb24yKFdURk1vdmUodmFsdWVzKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNl
RnVuY3Rpb24yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIiKTsKIH0KQEAgLTgwMiw3ICs4
MDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLmNhbGxXaXRo
U2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKFdURk1vdmUoc2VxdWVuY2VBcmcpKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVl
bmNlVGhhdFJlcXVpcmVzSW5jbHVkZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxX
aXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJjYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZSIpOwogfQpA
QCAtODE5LDcgKzgyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlv
bihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
ZXRob2RXaXRoRXhjZXB0aW9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5k
ZXggOWZhOWQxMTE2YzkwNDM1NDg1Mzk0YWMzOWI2NDNiMGU3Y2FhYzZmMi4uZWJkNGZjZDZjYmMw
MDgwZDllOGIxOTk3YjI0MzYxZjg2ZDAyODViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3Bl
LmNwcApAQCAtNTAsMTggKzUwLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJp
YnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNj
b3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xv
YmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9k
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtl
ckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5nIEpTV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTV29ya2VyR2xv
YmFsU2NvcGU+OwogCkBAIC0xNzEsNyArMTcxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNXb3Jr
ZXJHbG9iYWxTY29wZSogSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpjYXN0KEoK
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1dvcmtlckdsb2JhbFNjb3BlKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTgxLDcgKzE4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1dvcmtlckdsb2JhbFNjb3BlOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFs
U2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHQKICAgICByZXR1cm4g
SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2Vy
R2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iik7CiB9CkBAIC0yMTIsNyArMjEyLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5k
b3dDb25zdHJ1Y3RvclNldHQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93IiksIHN0cmxlbigiRXhwb3NlZFRvV29ya2VyQW5kV2lu
ZG93IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNl
dDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpOwogfQpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0CiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1dv
cmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNX
b3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dv
cmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBA
IC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTV29ya2VyR2xvYmFsU2Nv
cGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3QKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZCIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2Nv
cGU+OjpzZXQ8c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpOwog
fQpAQCAtMjQ2LDcgKzI0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJu
IEpTVGVzdE5vZGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNX
b3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5v
ZGUiKTsKIH0KQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3Jr
ZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Tm9kZSIpLCBzdHJsZW4oIlRl
c3ROb2RlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RO
b2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RO
b2RlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3ROb2RlIik7CiB9CkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0
ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8
anNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RPYmplY3QiKTsKIH0KQEAgLTI4MSw3ICsyODEs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RD
b25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0T2JqZWN0IiksIHN0cmxlbigiVGVzdE9iamVjdCIpKSwgdmFsdWUpOwog
fQogCi1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
V29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9i
YWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0T2JqZWN0Iik7CiB9CkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JH
ZXQKICAgICByZXR1cm4gSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZVRl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0KQEAgLTMw
NCw3ICszMDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvclNldAogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IiksIHN0cmxlbigi
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTV29y
a2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29y
a2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCAyMmViOGM5YmZlOTU2ZjRkYmM3
MzIwMmExZjQyOGNiNWVmYmY4NjlhLi5lZjNjYmIwY2I1ZjkyYzk0NjQ1YTk5YjY4YzI0ZTU0NmM4
YWU2NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTQ0LDggKzQ0LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiB1c2luZyBKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1
Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNXb3JrbGV0R2xvYmFsU2NvcGU+OwogCkBAIC0xMTYsNyAr
MTE2LDcgQEAgSlNWYWx1ZSBKU1dvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoVk0m
IHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gZ2V0RE9NQ29uc3Ry
dWN0b3I8SlNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3Qg
SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xMjYsNyArMTI2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCBlNjU3YzAxYzQyYzEwMTZiMWI2
Mjg4OGY4ZDhkNjgyNDJkYmI0YTEzLi5mNmUyZTc3Y2ZkNTI2YWVhOWI2MzA2MTk3NzU4OGEwN2U3
NzUwYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBA
IC0yNDYsNyArMjQ2LDkgQEAgYm9vbCBPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dChKU0NlbGwq
LCBKU0dsb2JhbE9iamVjdCosIFByb3BlcnR5TmFtZSwgSlNWYWx1ZSwKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmpDRmFs
bGJhY2tPYmplY3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE9iakNG
YWxsYmFja09iamVjdCk7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsT2JqQ0ZhbGxi
YWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYx
LDcgKzI2Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmpD
RmFsbGJhY2tPYmplY3QoSlNHbG9iYWxPYmplY3QqIGxleGljCiAgICAgT2JqY0luc3RhbmNlKiBv
YmpjSW5zdGFuY2UgPSBydW50aW1lT2JqZWN0LT5nZXRJbnRlcm5hbE9iakNJbnN0YW5jZSgpOwog
CiAgICAgaWYgKCFvYmpjSW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
UnVudGltZU9iamVjdDo6dGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1J1bnRpbWVP
YmplY3RJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsKICAg
ICAKICAgICBvYmpjSW5zdGFuY2UtPmJlZ2luKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX2FycmF5LmNwcAppbmRleCBlYzM1ODhmYzU2NTk1NTNmNTI3MjgzYzU4YTczNTgwMjEzMjlh
YzVkLi5iYzY4ZDUwNjI4MGUxNGYzNTQ5MTJkNTkyZWJlNWM1OTFjYTZlNGFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0zOSw2ICszOSw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gUnVudGltZUFycmF5OjpzX2luZm8gPSB7ICJSdW50
aW1lQXJyYXkiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKFJ1bnRpbWVBcnJheSkgfTsKIAorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gYXJyYXlMZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKKwogUnVudGltZUFycmF5OjpSdW50aW1lQXJyYXkoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTQXJyYXkodm0sIHN0cnVjdHVyZSwgbnVsbHB0cikK
ICAgICAsIG1fYXJyYXkobnVsbHB0cikKQEAgLTYyLDcgKzY0LDcgQEAgdm9pZCBSdW50aW1lQXJy
YXk6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIHN0YXRpY19jYXN0PFJ1bnRpbWVBcnJheSo+
KGNlbGwpLT5SdW50aW1lQXJyYXk6On5SdW50aW1lQXJyYXkoKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBhcnJheUxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05Miw3ICs5NCw3IEBAIGJvb2wg
UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHCiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4o
b2JqZWN0KTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0
aCkgewotICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSwgdGhpc09iamVjdC0+bGVuZ3RoR2V0dGVyKTsKKyAg
ICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0sIGFycmF5TGVuZ3RoR2V0dGVyKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKaW5kZXgg
MWQ3YjcwYjdmMzk2MmZjZTgxNjEzN2JhMjZjNGMyMjIwMjBiZWExMy4uM2M0YzdlODYxMDQ4MTc1
NDE0YzBmYWVlMDJjMGE5YThjNWY0OWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5oCkBAIC04OCw3ICs4OCw2IEBAIGNsYXNzIFJ1bnRpbWVBcnJheSBmaW5hbCA6IHB1Ymxp
YyBKU0FycmF5IHsKICAgICBSdW50aW1lQXJyYXkoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgQmluZGluZ3M6OkFycmF5Kik7CiAKLSAgICBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9y
SW1wbChKU0M6OlZNJik7CiAKICAgICBCaW5kaW5nc0FycmF5KiBtX2FycmF5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggMTgxYTQ2OGUwYjZmZDcyMWQzMzJk
OGYwNGNmMWEzZGQxZDE2NmU0Yy4uMmU5ODU0NzBkMDRiYzM0MzhlN2JiZmRiZWY4MDEwZTVjNDkz
MWNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBAIC00Myw3
ICs0Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBCaW5kaW5nczsKIAogV0VCQ09SRV9FWFBPUlQgY29u
c3QgQ2xhc3NJbmZvIFJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIlJ1bnRpbWVNZXRob2QiLCAm
SW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKFJ1bnRpbWVNZXRob2QpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsUnVudGltZU1ldGhvZCk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBtZXRob2RMZW5ndGhHZXR0ZXIoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogUnVudGltZU1ldGhv
ZDo6UnVudGltZU1ldGhvZChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBNZXRob2QqIG1l
dGhvZCkKICAgICAvLyBDYWxsZXJzIHdpbGwgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9i
YWwgb2JqZWN0IGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBuYXRpdmUgb2JqZWN0ICJtZXRob2QiLgpA
QCAtNTgsNyArNTksNyBAQCB2b2lkIFJ1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgY29uc3QgU3RyaW5nJiBpZGVudCkKICAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoSlNHbG9i
YWxPYmplY3QqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBtZXRob2RMZW5ndGhHZXR0ZXIoSlNHbG9iYWxP
YmplY3QqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjYsNyArNjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lTWV0aG9k
OjpsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlCiAgICAg
UnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZU1ldGhvZCo+
KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCF0aGlzT2JqZWN0KQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0LT5tX21ldGhvZC0+bnVtUGFyYW1l
dGVycygpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlzT2JqZWN0
LT5tZXRob2QoKS0+bnVtUGFyYW1ldGVycygpKSk7CiB9CiAKIGJvb2wgUnVudGltZU1ldGhvZDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBleGVj
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCkBAIC03NCw3
ICs3NSw3IEBAIGJvb2wgUnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBleGVjLCBQCiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVNZXRob2Qq
PihvYmplY3QpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGVu
Z3RoKSB7Ci0gICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCB0aGlzT2JqZWN0LT5sZW5ndGhHZXR0ZXIpOwor
ICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSwgbWV0aG9kTGVuZ3RoR2V0dGVyKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIApAQCAtODYsNyArODcsNyBAQCBJc29TdWJzcGFjZSogUnVudGlt
ZU1ldGhvZDo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSkKICAgICByZXR1cm4gJnN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPnJ1bnRpbWVNZXRob2RTcGFjZSgpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZU1ldGhv
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUnVudGltZU1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTAzLDcgKzEwNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgICAg
IFJ1bnRpbWVPYmplY3QqIHJ1bnRpbWVPYmplY3QgPSBzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0
Kj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CiAgICAgICAgIGluc3RhbmNlID0gcnVudGltZU9iamVj
dC0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpOwogICAgICAgICBpZiAoIWluc3RhbmNlKSAKLSAgICAg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoUnVudGltZU9iamVjdDo6dGhyb3dJbnZhbGlk
QWNjZXNzRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSkpOworICAgICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIENhbGxpbmcgYSBydW50
aW1lIG9iamVjdCBvZiBhIHBsdWdpbiBlbGVtZW50PwogICAgICAgICBpZiAodGhpc1ZhbHVlLmlu
aGVyaXRzPEpTSFRNTEVsZW1lbnQ+KHZtKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0
aG9kLmgKaW5kZXggNmRjMzY2ODY3NTZlODc4OTQ1OTI0MmZlZDFiMDIyOGZkY2MwN2I5Yi4uYjRi
OWU5ZWY3M2ZhZTQ2MjY5MTdlZjljYmU5M2ExOTJlZjY3Y2QyYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmgKQEAgLTc0LDggKzc0LDYgQEAgY2xhc3MgV0VCQ09SRV9FWFBP
UlQgUnVudGltZU1ldGhvZCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKICAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqLCBKU0dsb2JhbE9iamVjdCosIFByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIGxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotCiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwoVk0m
KTsKIAogICAgIEJpbmRpbmdzOjpNZXRob2QqIG1fbWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggODA1MWU2ZWMzYzZjMTI4ZDJjZWYwNWE3NDYzMDFm
OGMwZGI0Y2ZiOC4uODhiMmRlODc1ZGYxZmFhYzBkYTA4MWVjYmQxYTg1OTVjOWU5ZDg4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0zOCw2ICszOCwxMyBA
QCBuYW1lc3BhY2UgQmluZGluZ3MgewogCiBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8g
UnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUnVudGltZU9iamVjdCIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZU9iamVjdCkgfTsK
IAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFJ1bnRpbWVPYmplY3QpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFJ1bnRpbWVDb25zdHJ1Y3Rvcik7
CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZhbGxiYWNrT2JqZWN0R2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmaWVsZEdldHRlcihKU0dsb2JhbE9iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gbWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSk7CisKIFJ1bnRpbWVPYmplY3Q6OlJ1bnRpbWVPYmplY3QoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPEluc3RhbmNlPiYmIGluc3RhbmNlKQogICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogICAgICwgbV9pbnN0YW5jZShXVEZNb3ZlKGluc3RhbmNl
KSkKQEAgLTYzLDE2ICs3MCwxNiBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQog
ICAgIG1faW5zdGFuY2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2Jq
ZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmYWxsYmFja09iamVjdEdldHRlcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFu
Y2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOworICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2Ug
PSB0aGlzT2JqLT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAKICAgICBpZiAoIWluc3RhbmNlKQot
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlKSk7CiAgICAgCiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAKQEAgLTg0LDE2ICs5
MSwxNiBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRl
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0
ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gZmllbGRHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsg
ICAgCiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlz
T2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
Ci0gICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7Cisg
ICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPmdldEludGVybmFsSW5zdGFu
Y2UoKTsKIAogICAgIGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlk
QWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsKICAgICAKICAgICBpbnN0
YW5jZS0+YmVnaW4oKTsKIApAQCAtMTA2LDE2ICsxMTMsMTYgQEAgRW5jb2RlZEpTVmFsdWUgUnVu
dGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIFJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBtZXRob2RHZXR0ZXIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIAogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3Rh
bmNlID0gdGhpc09iai0+bV9pbnN0YW5jZTsKKyAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNl
ID0gdGhpc09iai0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpOwogCiAgICAgaWYgKCFpbnN0YW5jZSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSkpOwogICAgIAogICAgIGluc3RhbmNlLT5iZWdpbigpOwogCkBAIC0xMzMsNyAr
MTQwLDcgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3Qq
IG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWwKIAogICAgIFJ1bnRpbWVPYmplY3QqIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KG9iamVjdCk7CiAgICAgaWYgKCF0aGlz
T2JqZWN0LT5tX2luc3RhbmNlKSB7Ci0gICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgdGhyb3dSdW50aW1lT2JqZWN0SW52
YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICAKQEAgLTE0NywxNCArMTU0LDE0IEBAIGJvb2wgUnVudGlt
ZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsCiAgICAgICAgIC8vIFNlZSBpZiB0aGUgaW5zdGFuY2UgaGFzIGEgZmllbGQg
d2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCiAgICAgICAgIEZpZWxkICphRmllbGQgPSBhQ2xhc3Mt
PmZpZWxkTmFtZWQocHJvcGVydHlOYW1lLCBpbnN0YW5jZS5nZXQoKSk7CiAgICAgICAgIGlmIChh
RmllbGQpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKSwgdGhpc09i
amVjdC0+ZmllbGRHZXR0ZXIpOworICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVj
dCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUpLCBmaWVsZEdldHRlcik7CiAgICAgICAgICAgICBpbnN0YW5jZS0+ZW5kKCk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIE5vdyBj
aGVjayBpZiBhIG1ldGhvZCB3aXRoIHNwZWNpZmllZCBuYW1lIGV4aXN0cywgaWYgc28gcmV0dXJu
IGEgZnVuY3Rpb24gb2JqZWN0IGZvcgogICAgICAgICAgICAgLy8gdGhhdCBtZXRob2QuCiAgICAg
ICAgICAgICBpZiAoYUNsYXNzLT5tZXRob2ROYW1lZChwcm9wZXJ0eU5hbWUsIGluc3RhbmNlLmdl
dCgpKSkgewotICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5LCB0
aGlzT2JqZWN0LT5tZXRob2RHZXR0ZXIpOworICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
KHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5LCBtZXRob2RHZXR0ZXIpOwogICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTE2Myw3ICsxNzAsNyBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbAogCiAgICAgICAgIC8v
IFRyeSBhIGZhbGxiYWNrIG9iamVjdC4KICAgICAgICAgaWYgKCFhQ2xhc3MtPmZhbGxiYWNrT2Jq
ZWN0KGxleGljYWxHbG9iYWxPYmplY3QsIGluc3RhbmNlLmdldCgpLCBwcm9wZXJ0eU5hbWUpLmlz
VW5kZWZpbmVkKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCB0aGlzT2JqZWN0LT5mYWxsYmFja09iamVj
dEdldHRlcik7CisgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSwgZmFsbGJhY2tPYmplY3RHZXR0ZXIpOwogICAgICAg
ICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KQEAgLTE4MSw3ICsxODgsNyBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OnB1dChKU0NlbGwqIGNl
bGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9wZQogCiAgICAgUnVu
dGltZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oY2VsbCk7CiAg
ICAgaWYgKCF0aGlzT2JqZWN0LT5tX2luc3RhbmNlKSB7Ci0gICAgICAgIHRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgdGhyb3dSdW50
aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKQEAgLTIxMyw3ICsyMjAsNyBAQCBK
U1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZShjb25zdCBKU09iamVjdCogb2JqZWN0
LCBKU0dsb2JhbE9iamVjdCogbGV4aQogCiAgICAgY29uc3QgUnVudGltZU9iamVjdCogdGhpc09i
amVjdCA9IGpzQ2FzdDxjb25zdCBSdW50aW1lT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBpZiAoIXRo
aXNPYmplY3QtPm1faW5zdGFuY2UpCi0gICAgICAgIHJldHVybiB0aHJvd0ludmFsaWRBY2Nlc3NF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHJldHVybiB0aHJvd1J1
bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUp
OwogICAgIAogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqZWN0LT5tX2lu
c3RhbmNlOwogCkBAIC0yMjMsNyArMjMwLDcgQEAgSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpkZWZh
dWx0VmFsdWUoY29uc3QgSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGkKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsUnVudGltZU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUnVudGltZU9iamVj
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgp
LT5pbmhlcml0czxSdW50aW1lT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKTsKICAgICBSZWZQ
dHI8SW5zdGFuY2U+IGluc3RhbmNlKHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkpLT5nZXRJbnRlcm5hbEluc3RhbmNlKCkpOwpAQCAtMjQ2LDcgKzI1Myw3
IEBAIENhbGxEYXRhIFJ1bnRpbWVPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCkKICAg
ICByZXR1cm4gY2FsbERhdGE7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxSdW50aW1lQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJ1bnRp
bWVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBKU09iamVjdCogY29uc3RydWN0b3IgPSBjYWxsRnJhbWUtPmpz
Q2FsbGVlKCk7CiAgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLT5p
bmhlcml0czxSdW50aW1lT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKTsKQEAgLTI4MCw3ICsy
ODcsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3Qq
IG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYQogCiAgICAgUnVudGltZU9iamVjdCogdGhp
c09iamVjdCA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBpZiAoIXRoaXNP
YmplY3QtPm1faW5zdGFuY2UpIHsKLSAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICB0aHJvd1J1bnRpbWVPYmplY3RJbnZh
bGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0yOTEsNyArMjk4LDcgQEAgdm9pZCBSdW50aW1lT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2EK
ICAgICBpbnN0YW5jZS0+ZW5kKCk7CiB9CiAKLUV4Y2VwdGlvbiogUnVudGltZU9iamVjdDo6dGhy
b3dJbnZhbGlkQWNjZXNzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IFRocm93U2NvcGUmIHNjb3BlKQorRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlk
QWNjZXNzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFRocm93U2Nv
cGUmIHNjb3BlKQogewogICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRy
eWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIikpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCBlNjE3N2U1YTE3ZmNkNTlhZDYz
MzhlZTFlNmMzNjk5ZTMyMGNmZjE5Li42NTk5MWM1MTU5M2FkODlhYjVmNzA1OGIyZDlhZTNhYzZl
ZmI3YjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaApAQCAtMzIsNiAr
MzIsOCBAQAogbmFtZXNwYWNlIEpTQyB7CiBuYW1lc3BhY2UgQmluZGluZ3MgewogCitFeGNlcHRp
b24qIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihKU0dsb2JhbE9iamVjdCos
IFRocm93U2NvcGUmKTsKKwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9iamVjdCA6IHB1
YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlID0gSlNOb25G
aW5hbE9iamVjdDsKQEAgLTY4LDggKzcwLDYgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGlt
ZU9iamVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKIAogICAgIEluc3RhbmNlKiBnZXRJ
bnRlcm5hbEluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0YW5jZS5nZXQoKTsgfQogCi0g
ICAgc3RhdGljIEV4Y2VwdGlvbiogdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqLCBUaHJvd1Njb3BlJik7Ci0KICAgICBERUNMQVJFX0lORk87CiAKICAgICBzdGF0aWMgT2Jq
ZWN0UHJvdG90eXBlKiBjcmVhdGVQcm90b3R5cGUoVk0mLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQpAQCAtODcsMTAgKzg3LDYgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgUnVudGltZU9i
amVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KFZNJik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2Jq
ZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEpTR2xvYmFsT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IG1ldGhvZEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOwotCiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwoVk0mKTsKIAog
ICAgIFJlZlB0cjxJbnN0YW5jZT4gbV9pbnN0YW5jZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKaW5kZXggZmQz
MDRkMzhmYjc3M2NjMmEwZWNiNjJmZDdiMmVmNmNiNmQxZTQxMy4uZWI0YTk2ZTE3OTRjYjhkOTFl
ZDM5ZjE1ZDNkNDViZjAwOTY5NDhjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAKQEAgLTQ2LDcgKzQ2LDcg
QEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTTlBNZXRob2QpOwog
CiBjb25zdCBDbGFzc0luZm8gSlNOUE1ldGhvZDo6c19pbmZvID0geyAiTlBNZXRob2QiLCAmSW50
ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKEpTTlBNZXRob2QpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxNZXRob2QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxNZXRob2QpOwogCiBKU05QTWV0aG9kOjpKU05QTWV0aG9k
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBOUElk
ZW50aWZpZXIgbnBJZGVudGlmaWVyKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmpl
Y3QtPnZtKCksIHN0cnVjdHVyZSwgY2FsbE1ldGhvZCwgbnVsbHB0cikKQEAgLTY2LDcgKzY2LDcg
QEAgSXNvU3Vic3BhY2UqIEpTTlBNZXRob2Q6OnN1YnNwYWNlRm9ySW1wbChWTSYgdm0pCiAgICAg
cmV0dXJuICZwZXJWTS5nZXQoKS5mb3JWTSh2bSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbE1ldGhv
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAppbmRleCBlM2RlOTFhN2Q1MTgz
MTNiNmI2NTMzYmYwMWIwZTczODJiNjIwZTViLi42ODA0MzMxODhkMWQxMDNjYzk5NTJhMjRjNzI5
ZWNkNjA3ODYyZTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcApAQCAtMjM5LDcgKzIzOSwxMCBAQCBKU1Zh
bHVlIEpTTlBPYmplY3Q6OmNhbGxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE5QSlNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjYWxsTlBKU09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbE5QSlNPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNPYmplY3QqIG9iamVjdCA9IGNhbGxGcmFtZS0+anND
YWxsZWUoKTsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwgb2JqZWN0LT5pbmhlcml0
czxKU05QT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkpKTsKQEAgLTI1OSw3ICsyNjIsNyBAQCBD
YWxsRGF0YSBKU05QT2JqZWN0OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwpCiAgICAgcmV0dXJu
IGNhbGxEYXRhOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aENv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IGNhbGxGcmFtZS0+anNDYWxs
ZWUoKTsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwgY29uc3RydWN0b3ItPmluaGVy
aXRzPEpTTlBPYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpOwo=
</data>
<flag name="commit-queue"
          id="425446"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409667</attachid>
            <date>2020-09-25 01:38:14 -0700</date>
            <delta_ts>2020-09-25 01:47:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216966-20200925013813.patch</filename>
            <type>text/plain</type>
            <size>1781989</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
Mzc3MzlkZGM1NGYxNjhjZDRmOTAwZTY1MTJjYzA3NmQyMTIxYmUxLi4zNjRmZjcwMTJiNzYwYWRh
Mjc4ZmRkY2E3MDk1Zjg4OGU4ZGFiYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDcwIEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04g
LyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRlZmluaXRp
b24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTiBhbmQgY2hhbmdlcyBo
b3cgdG8gZGVmaW5lIGhvc3QgZnVuY3Rpb25zLgorICAgICAgICBJbiB0aGUgbmV3IHdheSwgd2Ug
ZGVjbGFyZSBhIGZ1bmN0aW9uIGxpa2UsCisKKyAgICAgICAgICAgIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25IZWxsb1dvcmxkKTsKKworICAgICAgICBBbmQgZGVmaW5lIHRoZSBm
dW5jdGlvbiBsaWtlLAorCisgICAgICAgICAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25IZWxsb1dvcmxkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9u
IGJvZHkuCisgICAgICAgICAgICB9CisKKyAgICAgICAgVGhpcyBtYWtlcyBhZGRpbmcgc29tZSBt
ZXRhIGluZm9ybWF0aW9uIHRvIGVhY2ggZnVuY3Rpb24gZWFzeSwgd2hpY2ggaGVscHMgSklULWNh
Z2luZyB0byBjb2xsZWN0IGFsbG93ZWQgZnVuY3Rpb24gcG9pbnRlcnMuCisKKyAgICAgICAgKiBB
UEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24p
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU0NhbGxiYWNrQ29uc3RydWN0
b3IpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxs
SlNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNO
b25GaW5hbE9iamVjdD46OmdldENvbnN0cnVjdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlND
YWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAg
IChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5j
dGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmdldENhbGxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsSW1wbCk6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y29uc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW06Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNh
bGxPYmpDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVj
dE9iakNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvZ2xpYi9KU0FQ
SVdyYXBwZXJHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3Ry
dWN0RnVuY3Rpb24pOgorICAgICAgICAqIEFQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIu
Y3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46
OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0NhbGxiYWNrRnVu
Y3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjYWxsSlNDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdEpTQ0NhbGxiYWNrRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZVNhdmVkUmVzdWx0QWxpYXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUpOiBE
ZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0
b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9y
Ojpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcyk6IERlbGV0
ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25XZWFrU2V0U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
dGVyYXRvckVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMpOiBEZWxldGVkLgorICAg
ICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVl
cnlIb2xkZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvblN1YnR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldElu
dGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxG
cmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24pOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKElu
c3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQpOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlQ29sdW1uKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3Bl
Y3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbik6IERlbGV0ZWQu
CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJh
bWVBdHRyaWJ1dGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2Ny
aXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCk6IERlbGV0ZWQuCisgICAgICAgICoganNjLmNwcDoK
KyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChmdW5jdGlvblBy
aW50U3RkT3V0KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25EZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
bkRlc2NyaWJlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNsZWVwU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkpTQ1N0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uR0NBbmRTd2Vl
cCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZ1bGxHQyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkVkZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBTaXplKTog
RGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrKTogRGVsZXRlZC4KKyAg
ICAgICAgKGZ1bmN0aW9uQWRkcmVzc09mKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uVmVy
c2lvbik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblJ1bik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJ1blN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVhZEZpbGUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DaGVja1N5bnRh
eCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpOiBEZWxldGVkLgorICAgICAg
ICAoZnVuY3Rpb25HZXRSYW5kb21TZWVkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzUm9wZSk6IERlbGV0ZWQu
CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJlYWRsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJlY2lzZVRp
bWUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uTm9ERkcpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Ob0ZUTCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChmdW5jdGlvbkNhbGxlcklzT01HQ29tcGlsZWQpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckV2YWxTY3JpcHQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9hZGNhc3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Eb2xsYXJBZ2VudEdldFJlcG9ydCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckFnZW50TGVhdmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50TW9u
b3RvbmljTm93KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uV2FpdEZvclJlcG9ydCk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkZsYXNoSGVhcEFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRp
c2FibGVSaWNoU291cmNlSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1hbGxvY0lu
QUxvb3ApOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSlNDT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChm
dW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblRyYW5zZmVyQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25GYWls
TmV4dE5ld0NvZGVCbG9jayk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblF1aXQpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25GYWxzZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blVuZGVmaW5lZDEpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25VbmRlZmluZWQyKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSXNJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbklzUHVyZU5hTik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklkZW50aXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRWZmZWN0ZnVsNDIpOiBEZWxldGVkLgorICAgICAgICAo
ZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DYWxs
TWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25IYXNDdXN0b21Qcm9wZXJ0
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVz
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uU2V0VGltZW91dCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blJlbGVhc2VXZWFrUmVmcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZpbmFsaXphdGlv
blJlZ2lzdHJ5TGl2ZUNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRmluYWxpemF0
aW9uUmVnaXN0cnlEZWFkQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25JczMyQml0
UGxhdGZvcm0pOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3Qp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Vc2VCaWdJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzQmlnSW50MzIp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Jc0hlYXBCaWdJbnQpOiBEZWxldGVkLgorICAg
ICAgICAoZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbkVuc3VyZUFycmF5U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblN0YXJ0
U2FtcGxpbmdQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNhbXBsaW5nUHJv
ZmlsZXJTdGFja1RyYWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1heEFyZ3VtZW50
cyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQXN5bmNUZXN0UGFzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1
bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9u
U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Bc0RvdWJsZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxBcnJh
eUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlDb25zdHJ1Y3RvclBy
aXZhdGVGdW5jSXNBcnJheVNsb3cpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwZWNpZXNDcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVBy
b3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9p
bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNQb3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1B1
c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JldmVyc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFy
cmF5UHJvdG9GdW5jU3BsaWNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1
bmNVblNoaWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9m
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNw
eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFzeW5jRnVuY3Rp
b25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVjdEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0F0b21p
Y3NPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjphdG9taWNzRnVuY0FkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0
b21pY3NGdW5jQW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNDb21wYXJl
RXhjaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY0V4Y2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNJc0xvY2tGcmVlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNMb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
YXRvbWljc0Z1bmNPcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jU3RvcmUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY1N1Yik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmF0b21pY3NGdW5jV2FpdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21p
Y3NGdW5jV2FrZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jWG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEJpZ0lu
dENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50Q29uc3RydWN0b3JG
dW5jQXNVaW50Tik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0ludENvbnN0cnVjdG9yRnVu
Y0FzSW50Tik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjpiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0lu
dFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50
UHJvdG9GdW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Y29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1RvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1ZhbHVlT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNEZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNXYXJuKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVu
Y0Rpcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNEaXJYTUwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGFibGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVHJhY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0NvdW50UmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5j
UHJvZmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNQcm9maWxl
RW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWVFbmQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY1JlY29yZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNSZWNv
cmRFbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hv
dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbERh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkYXRlTm93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVVUQyk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvVVRDU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2wpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRVVENGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRV
VENNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRN
aW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0
ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY1NldFNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNTZXRNaW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ01pbnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0
SG91cnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0RGF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNTZXRVVENEYXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldE1vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY1NldEZ1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Nl
dFllYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0pTT04pOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjYWxsRXJyb3JDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChKU0M6OmVycm9yUHJvdG9GdW5jVG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0
cnVjdEZpbmFsaXphdGlvblJlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jRmluYWxpemF0aW9uUmVn
aXN0cnlSZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnByb3RvRnVuY0ZpbmFsaXph
dGlvblJlZ2lzdHJ5VW5yZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvblBy
b3RvdHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmNhbGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjppbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2cpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsQ29sbGF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bENvbGxhdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkludGxDb2xsYXRvckZ1bmNDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50
bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bERh
dGVUaW1lRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0
Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dEZ1bmNGb3JtYXREYXRlVGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsRGlzcGxheU5h
bWVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEludGxEaXNwbGF5TmFtZXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRs
TG9jYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEludGxMb2NhbGUpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bExvY2FsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxMb2NhbGVQ
cm90b3R5cGVGdW5jTWF4aW1pemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxl
UHJvdG90eXBlRnVuY01pbmltaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bExvY2Fs
ZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxM
b2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1lcmljKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bE51bWJlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJG
b3JtYXRGdW5jRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjppbnRsT2JqZWN0RnVuY0dldENh
bm9uaWNhbExvY2FsZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsSW50bFBsdXJhbFJ1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3Jt
YXRUb1BhcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1h
dFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50SXRlcmF0b3JQ
cm90b3R5cGVGdW5jTmV4dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsU2VnbWVu
dGVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsU2VnbWVudGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y2FsbEludGxTZWdtZW50ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsU2VnbWVudGVyQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bFNlZ21lbnRlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50ZXJQ
cm90b3R5cGVGdW5jU2VnbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxTZWdtZW50
ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmND
b250YWluaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFNlZ21lbnRzUHJvdG90eXBl
RnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNhbGxBcnJheUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEFycmF5QnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0
U2hhcmVkQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheUJ1ZmZlckZ1
bmNJc1ZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjphcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym91bmRUaGlz
Tm9BcmdzRnVuY3Rpb25DYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym91bmRGdW5jdGlv
bkNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNv
bnN0cnVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJvdW5kRnVuY3Rpb25Db25zdHJ1Y3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpkYXRh
Vmlld1Byb3RvR2V0dGVyQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvR2V0dGVyQnl0ZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJv
dG9GdW5jR2V0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5j
R2V0SW50MTYpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldElu
dDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50OCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MzIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0NjQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFW
aWV3UHJvdG9GdW5jU2V0VWludDgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvRnVuY1NldFVpbnQxNik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9G
dW5jU2V0VWludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcmd1
bWVudHNHZXR0ZXIpOgorICAgICAgICAoSlNDOjpjYWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlND
OjpjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmNhbGxlckdldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKToKKyAg
ICAgICAgKEpTQzo6Y2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGwpOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY1NldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdElu
ZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9m
ZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1JldmVyc2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY1NvcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjptYWtlQm91bmRGdW5jdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omhhc093bkxlbmd0aFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y3JlYXRlUHJpdmF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFz
c2VydENhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplbmFibGVTYW1wbGluZ1Byb2ZpbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjplbmFibGVTdXBlclNhbXBsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkaXNhYmxlU3VwZXJTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZW5x
dWV1ZUpvYik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6Omdsb2JhbEZ1bmNFdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFs
RnVuY1BhcnNlSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNlRmxv
YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRGVjb2RlVVJJKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFbmNvZGVVUkkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY0VzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNV
bmVzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0NhbGxlZUFuZENhbGxlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNN
YWtlVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvU2V0dGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jQnVpbHRpbkxvZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY093bktleXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5j
RGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bW9k
dWxlTG9hZGVyUGFyc2VNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJSZXF1ZXN0ZWRNb2R1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVy
TW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1vZHVsZUxvYWRl
clJlc29sdmVTeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyRmV0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cnVuU3Rk
RnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkpT
T05Qcm90b0Z1bmNQYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT05Qcm90b0Z1bmNT
dHJpbmdpZnkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpvYmpl
Y3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
SXNUeXBlZEFycmF5Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc05ldXRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY0xlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJy
YXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRl
T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNS
ZXZlcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y1N1YmFycmF5Q3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5
cy5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZVVpbnQ4VHlwZWRBcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxNYXApOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RNYXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQ
cml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2
YXRlRnVuY01hcEJ1Y2tldE5leHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2YXRl
RnVuY01hcEJ1Y2tldEtleSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hcFByaXZhdGVGdW5j
TWFwQnVja2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Om1hcFByb3RvRnVuY0Ns
ZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jRGVsZXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jR2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWFwUHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5j
U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hcFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcm90
b0Z1bmNTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpt
YXRoUHJvdG9GdW5jQWJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0FD
b3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNpbik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNBVGFuKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWF0aFByb3RvRnVuY0FUYW4yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0NlaWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2x6MzIpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ29zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQ
cm90b0Z1bmNGbG9vcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNIeXBv
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bWF0aFByb3RvRnVuY01pbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNQ
b3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jUmFuZG9tKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1JvdW5kKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6bWF0aFByb3RvRnVuY1NpZ24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJv
dG9GdW5jU2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1NxcnQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0lNdWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRo
UHJvdG9GdW5jQUNvc2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNp
bmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVRhbmgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2JydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hdGhQcm90b0Z1bmNDb3NoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0V4cG0xKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0Zyb3VuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxMCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Om1hdGhQcm90b0Z1bmNMb2cyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVu
Y1NpbmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuaCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNUcnVuYyk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKEpTQzo6Y2FsbEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxSYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0UmFuZ2VFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxSZWZlcmVuY2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2Fs
bFN5bnRheEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0U3ludGF4RXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsVHlwZUVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFVSSUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0VVJJRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxHZXR0
ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
SlNDOjpOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1
cm5VbmRlZmluZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25J
bnRlcm5hbDo6Y2FsbFRocm93RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9FeHBv
bmVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvRml4ZWQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6b2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JLZXlzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JBc3NpZ24pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9i
amVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVj
dENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0
Q29uc3RydWN0b3JJc0Zyb3plbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdENvbnN0
cnVjdG9ySXNFeHRlbnNpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3Ry
dWN0b3JJcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5j
VmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0hhc093blBy
b3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5
cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZUdldHRl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAoSlNDOjptYWtlUmV2b2NhYmxlUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RQcm94eU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNhbGxQcm94eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OnBlcmZvcm1Qcm94eUNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwZXJmb3JtUHJveHlD
b25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpw
ZXJmb3JtUHJveHlSZXZva2UpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OnJlZmxlY3RPYmplY3RDb25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpy
ZWZsZWN0T2JqZWN0R2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVmbGVjdE9iamVjdEdl
dE93blByb3BlcnR5RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RP
YmplY3RHZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmpl
Y3RJc0V4dGVuc2libGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0T3du
S2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5z
aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RTZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjplc1NwZWNSZWdFeHBDcmVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplc1NwZWNJc1JlZ0V4cCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNhbGxSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpyZWdFeHBQcm90b0Z1bmNFeGVjKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhw
UHJvdG9GdW5jTWF0Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9G
dW5jQ29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1RvU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlckZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9H
ZXR0ZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTZWFy
Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0
ZUZ1bmNTZXRCdWNrZXRIZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1
bmNTZXRCdWNrZXROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1bmNT
ZXRCdWNrZXRLZXkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0FkZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c2V0UHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jU2l6
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY1ZhbHVlcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUpOgorICAg
ICAgICAoSlNDOjpzdHJpbmdGcm9tQ29kZVBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFyY2gpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJBdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0
cmluZ1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpidWlsdGluU3Ry
aW5nSW5kZXhPZkludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNT
bGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY1RyaW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNUcmltU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNUcmltRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3RhcnRz
V2l0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6
CisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxTeW1ib2wpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RTeW1ib2wpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpzeW1ib2xDb25zdHJ1Y3RvckZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN5
bWJvbENvbnN0cnVjdG9yS2V5Rm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYWtNYXApOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RXZWFrTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dl
YWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OnByb3RvRnVuY1dlYWtNYXBIYXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNX
ZWFrTWFwU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtPYmplY3RSZWZDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChKU0M6OmNhbGxXZWFrUmVmKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0V2Vha1JlZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrT2JqZWN0UmVmUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1JlZkRlcmVmKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxXZWFrU2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0V2Vha1NldCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1NldERlbGV0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnByb3RvRnVuY1dlYWtTZXRIYXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpwcm90b0Z1bmNXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0b29scy9KU0Rv
bGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNyYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25CcmVha3BvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25ERkdUcnVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6ZnVuY3Rpb25GVExUcnVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVu
Y3Rpb25DcHVNZmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNwdVJkdHNj
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcHVDcHVpZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1UGF1c2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNwdUNsZmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkxMaW50
VHJ1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Ob0lubGluZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uR0MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkVk
ZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJvbm91
c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNhbGxGcmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ29kZUJsb2NrRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNvZGVCbG9ja0Zvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFNvdXJjZUZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVt
cEJ5dGVjb2RlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EYXRhTG9nKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25QcmludCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uRHVtcENhbGxGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFN0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wUmVn
aXN0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wQ2VsbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSW5kZXhpbmdNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25JbmxpbmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmZ1bmN0aW9uVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldFBJRCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSGF2ZUFCYWRUaW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZnVuY3Rpb25DcmVhdGVQcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3Jl
YXRlUnVudGltZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVO
dWxsUm9wZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlSW1w
dXJlR2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVDdXN0b21H
ZXR0ZXJPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rp
b25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6ZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNz
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1Np
ZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uQ3JlYXRlUm9vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRl
RWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR2V0RWxlbWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU2ltcGxlT2JqZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25SZXR1cm5UeXBlRm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVu
SWRsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9k
ZVdoZW5JZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EZWxldGVBbGxDb2Rl
V2hlbklkbGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdsb2JhbE9iamVjdENv
dW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldEdldHRlclNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJT
ZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRl
cmZsaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DdXJyZW50Q1BVVGltZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG90YWxHQ1RpbWUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblBhcnNlQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldENvbmN1cnJlbnRseSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbklDVVZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklDVUhlYWRlclZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5j
dGlvbkFzc2VydEVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbklzTWVt
b3J5TGltaXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVXNlSklUKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25hcnkpOiBEZWxldGVk
LgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGls
ZUZ1bmMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVu
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3RyZWFtaW5n
SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUdsb2JhbCk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJvdG9G
dW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJv
dG9HZXR0ZXJGdW5jVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUds
b2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OndlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlN
ZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSlNXZWJBc3NlbWJseU1lbW9yeSk6
IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3Jvdyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseU1v
ZHVsZUN1c3RvbVNlY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlN
b2R1bGVJbXBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlNb2R1bGVF
eHBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3NlbWJseU1v
ZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseVRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEpTV2Vi
QXNzZW1ibHlUYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24pOiBEZWxldGVkLgorCiAyMDIwLTA5LTI0ICBCYXN1a2Ug
U3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbUGxheVN0YXRpb25d
IFN0b3AgcmFpc2luZyBTSUdQSVBFIHdoZW4gY2xpZW50IHNpZGUgb2YgUmVtb3RlSW5zcGVjdG9y
IGRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYWI4MDIwNTY2YjA0M2U2NTE3MGViNzZkYjQyNzk1MGZiNTk2ZTIyMC4uZDNk
NTMzNWQ4ZDM3MWQ2ZDIwYWRmY2Q1MTFlOTkxYWZiZmM0OGY1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAg
ICAgIFtKU0NdIEludHJvZHVjZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OIC8gSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OIHRvIG1ha2UgaG9zdCBmdW5jdGlvbiBkZWZpbml0aW9uIGVhc3ktdG8t
c2Nhbm5lZCBmb3IgSklULWNhZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIEpTQ19IT1NUX0NBTEwgdG8gSlNDX0hPU1RfQ0FMTF9BVFRS
SUJVVEUsIGFuZCBpbnRyb2R1Y2UgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTi4KKyAgICAgICAgV2UgYWxzbyBpbnRyb2R1Y2UgSlNDX0FOTk9UQVRF
X0hPU1RfRlVOQ1RJT04gaWYgdGhlIGZ1bmN0aW9uIGlzIG5vdCBkZWZpbmVkIGFzIGZyZWUtZnVu
Y3Rpb25bMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0
aW9ucy80ODYxOTE0L3doYXQtaXMtdGhlLW1lYW5pbmctb2YtdGhlLXRlcm0tZnJlZS1mdW5jdGlv
bi1pbi1jCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaDoKKwog
MjAyMC0wOS0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBvbiBBcHBsZSBXaW5kb3dzIHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBhMDk1ZTVmYWE0NTNjYzJlMWZhOGRjYTI3MDc5MGM3ZjRkMGViZGI0Li45ZGVhNDFhNjI4
MjI0ZTk0NGI2NTYxNTk4M2VkMDhmZDk3M2M1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMw
NyBAQAorMjAyMC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtKU0NdIEludHJvZHVjZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OIC8gSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OIHRvIG1ha2UgaG9zdCBmdW5jdGlvbiBkZWZpbml0aW9uIGVhc3kt
dG8tc2Nhbm5lZCBmb3IgSklULWNhZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBXZSBhbHNvIGFubm90YXRlIGN1
c3RvbSBnZXR0ZXJzIC8gc2V0dGVycyB3aXRoIEpJVF9PUEVSQVRJT04gc2luY2UgdGhleSBjYW4g
YmUgaW52b2tlZCBmcm9tIEpJVCBjb2RlLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
dWlsdGluQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NQnVpbHRpbkNvbnN0
cnVjdG9yPEpTQ2xhc3M+Ojpjb25zdHJ1Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FsbFRocm93VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUaGlzVHlwZUVycm9yRm9yQnVp
bHRpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6bWFrZUdldHRlclR5cGVFcnJvckZv
ckJ1aWx0aW5zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om1ha2VET01FeGNlcHRpb25G
b3JCdWlsdGlucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1JlYWRhYmxlQnl0ZVN0
cmVhbUFQSUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNXcml0YWJsZVN0
cmVhbUFQSUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6d2hlblNpZ25hbEFi
b3J0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6Okl0ZXJhdG9yVHJhaXRzPjo6bmV4dCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb24uaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRv
d1dlYktpdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGxQbHVnaW4pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1N0cnVjdHVyZWRDbG9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6Y2xvbmVBcnJheUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlclZpZXcpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChH
ZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRyYW1wb2xpbmVEZWZpbml0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQXR0cmlidXRlU2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVPcGVyYXRpb25UcmFtcG9saW5lRGVmaW5pdGlvbik6CisgICAgICAgIChHZW5lcmF0ZURl
ZmF1bHRUb0pTT05PcGVyYXRpb25EZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlTGVnYWN5
Q2FsbGVyRGVmaW5pdGlvbnMpOgorICAgICAgICAoR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0
aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSXRlcmFibGVEZWZpbml0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucyk6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2lu
ZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdp
bmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5k
b3dUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
RE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChX
ZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTU2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6cHJvdG90eXBl
Rm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5j
dGlvbkV4Y2l0aW5nRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rp
b25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNBdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VSZWFj
dGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VS
ZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VS
ZWFjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENh
bGxUcmFjZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDYWxsVHJh
Y2VyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRy
YWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3Vt
ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9w
ZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJs
ZVZhcmlhbnRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFy
Z3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJQcm90
b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQ3VzdG9tQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRp
YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1p
eGluT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlv
bmFsT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVS
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
UnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RET01KSVRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RET01KSVRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRBbnlB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJvb2xlYW5BdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJ5dGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVE9jdGV0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRTaG9y
dEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUTG9uZ0F0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklU
VW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklURmxv
YXRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVREb3VibGVBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0RE9NSklURG9tU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
T01KSVRVc3ZTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVE5vZGVB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25HZXRBdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRFbGVtZW50c0J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZh
dWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0
U3RyaW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05T
ZWNvbmRMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05TZWNvbmRMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1
bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJl
c3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVs
dFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFs
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZy
b3plbkFycmF5QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pT
T05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9K
U09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0
ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90
eXBlRnVuY3Rpb25Ub0pTT04pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25n
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVGb28pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVCYXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQ
cm90b3R5cGVGdW5jdGlvblRvSlNPTik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25Qb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
b21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFi
bGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJs
ZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEVuYWJsZWRGb3JDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudFRhcmdldENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbk5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQ
cml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5k
b3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RE
T01XaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmpl
Y3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9i
YWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RE9NSklUQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0
YW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9i
amVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RM
ZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1l
bW9yeUNvc3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25T
dGF0aWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNp
ZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZp
Y1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIx
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhp
bkNvbXBsZXhPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29u
ZGl0aW9uYWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9u
RnJvbVBhcnRpYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SXRlcmFibGVQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20pOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldD
dXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rp
b25UZXN0Q3VzdG9tRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpj
b25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmlu
Z0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNl
dHRlclN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2Rl
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVG
dW5jdGlvblZvaWRPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9u
U3RhdGljT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0p
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBM
aWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TWFwTGlrZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZFNldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5j
dGlvbk5hbWVkRGVsZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uR2V0dGVyTmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVk
U2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVu
Zm9yZ2VhYmxlT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5v
ZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROb2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
R2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJp
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialJlYWRPbmx5U3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWFk
T25seVRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljUmVhZE9ubHlMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yVGVzdFN1Yk9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25z
dHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpFbnVtQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbnVtQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpPY3RldEF0
dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqT2N0ZXRBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialNob3J0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2xhbXBlZFNob3J0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTG9uZ0F0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakxvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RP
YmpVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
bmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ0F0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqVXN2c3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialRlc3RPYmpBdHRy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialVuZm9yZ2VhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialN0cmluZ09ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
U3RyaW5nT2JqUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdO
dWxsYWJsZU9ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqU3Ry
aW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0
cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpEaWN0aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpEaWN0
aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25h
cnlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFy
eUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9u
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2Vx
dWVuY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVt
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpNZWRpYURldmljZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqWE1MT2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZs
ZWN0ZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVj
dGVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJl
ZmxlY3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZVN0YXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
VHlwZWRBcnJheUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVHlwZWRBcnJh
eUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ3VzdG9tQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iak9uZm9vKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9uZm9vKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak9ud2Via2l0Zm9vKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iak9ud2Via2l0Zm9vKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdp
dGhFeGVjU3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoQ2Fs
bFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI2Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakFueUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqT2JqZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9iamVj
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTXV0YWJsZVBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpTdHJhd2JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmF3YmVy
cnkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqRGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqSWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSWQp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqSGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpO
dWxsYWJsZURvdWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxs
YWJsZUxvbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlU3Ry
aW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlTG9uZ1Nl
dHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxh
YmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1U
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQ
cm9taXNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RSZWFkT25s
eVByb21pc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051
bGxhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0cmluZ2lmaWVy
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0FuZFdvcmtlckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhbGxKU1Rlc3RPYmopOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uU3RhdGljKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVh
dHVyZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2Vj
cmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVm
aW5lZE1ldGhvZFdpdGhBcmdzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9k
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2N0ZXRNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
YmpNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpJ
bnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0
cmluZ01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNp
YWxNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEVudW1BcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51
bGxhYmxlQnl0ZVN0cmluZ0FyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9k
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
UHVibGljQW5kUHJpdmF0ZU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aEV4ZWNTdGF0ZVZvaWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRB
cmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZE9wdGlvbmFsQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsQXRvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc051bGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0Vt
cHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91Ymxl
SXNOYU4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xv
bmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2ln
bmVkTG9uZ0xvbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU2VxdWVuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBbnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5v
bkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFy
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5k
Q2FsbGJhY2tGdW5jdGlvbkFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RX
aXRoQ2FsbGJhY2tBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE1ldGhvZDMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0
aW5ndWlzaGluZ1VuaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlv
bmFsVW5pb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25D
bGFzc01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRp
b25hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5n
ZU9uT3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNW
R0RvY3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5j
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9yYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRp
Y05vZGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9uTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VPdmVybG9hZGVkRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0
aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
VGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlz
ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE92ZXJsb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
cGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1l
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTGVnYWN5Q2FsbGVyTmFtZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
VmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9u
YWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OmNvbnN0
cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFJlYXNvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJl
YWRPbmx5TWFwTGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3RDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVBvcnRzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dFNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNBZGQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0FkZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
Q2xlYXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25J
ZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlv
bklkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9u
Z0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2Ny
aXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRl
c3RTdWJPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNC
dWZmZXJTb3VyY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQnVm
ZmVyU291cmNlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc0RvbVRpbWVT
dGFtcEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3Rh
bXBBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
U2V0U2hhZG93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxh
Ymxlc0FyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
RnVuY1dpdGhDbGFtcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNXb3JrZXJHbG9iYWxTY29w
ZVRlc3RPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29u
c3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5TGVuZ3RoR2V0
dGVyKToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcik6IERlbGV0ZWQuCisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwOgorICAgICAgICAoSlNDOjptZXRob2RMZW5ndGhHZXR0ZXIpOgorICAgICAgICAo
SlNDOjpSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsUnVudGltZU1ldGhvZCk6
IERlbGV0ZWQuCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmZhbGxi
YWNrT2JqZWN0R2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmZpZWxkR2V0dGVyKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Om1ldGhvZEdldHRlcik6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6cHV0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OlJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGlt
ZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjp0
aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IpOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxSdW50aW1lT2JqZWN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxSdW50aW1lQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6dGhyb3dJbnZh
bGlkQWNjZXNzRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVj
dC5oOgorCiAyMDIwLTA5LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIG1vcmUgaW5saW5lIGluaXRpYWxpemF0aW9uIGFuZCBjb25zdGV4cHIgaW4gV2Vi
QXVkaW8gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA1YzEzZWQzYThkOTA0Y2NjYWVlMGMwMWNiM2IzMzE3Mjll
ZjI1YTRkLi44MDYxYWU0ZTJjYmU0NTBmMzM5Zjk2NWRkZWZkM2I2NjljZGFlNzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04gLyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRl
ZmluaXRpb24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKFdlYktpdDo6Y2FsbE1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAo
V2ViS2l0OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViS2l0OjpjYWxs
TlBKU09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNvbnN0cnVjdFdpdGhDb25z
dHJ1Y3Rvcik6IERlbGV0ZWQuCisKIDIwMjAtMDktMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hUcmFjZXI6IGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBpbiBOZXR3b3JrU2Vzc2lvbjo6Zmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFp
bigpIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFw
cGVyT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0KaW5kZXggZTI5ZmFmOWY4Y2VkY2E3NmVkYWNlMzJhZmQwMTRjZGUwYWY1MjRmZC4uMzg4
MWVmNmQ0ZTdlMWRkYWQwYWY5ZWFjYWYwNzAxMTYxMjA2NTQ0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KQEAgLTY3LDEwICs2NywyNCBA
QCBib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OgogfQogCiBuYW1lc3BhY2UgSlNDIHsKLSAgICAKKwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0KTsKKwogdGVtcGxhdGUgPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6c19pbmZvID0g
eyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwordGVtcGxhdGUgPD4gY29u
c3QgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRzRGVzdHJ1
Y3Rpb24gPSB0cnVlOworCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFj
a09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpnZXRDYWxsRnVuY3Rpb24oKQoreworICAgIHJl
dHVybiBjYWxsSlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CiAKLXRlbXBsYXRl
PD4gY29uc3QgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOwordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQor
eworICAgIHJldHVybiBjb25zdHJ1Y3RKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsK
K30KIAogdGVtcGxhdGUgPD4KIFN0cnVjdHVyZSogSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBw
ZXJPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKQpAQCAtMTE4LDYgKzEzMiwxNiBAQCBJc29TdWJzcGFjZSog
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpzdWJzcGFjZUZvckltcGwoVk0m
IHZtLCBTdWJzcAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBK
U0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNhbGxJbXBsKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
QVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTQ19PQkpDX0FQ
SV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggN2YyOTlkYTk1NWI2NWM3OWU0ODdiN2ZhN2NhZThkMzU3NDQ4
NWZlYi4uNDg3Nzc4ODkzMGVlNDJmZGFiMzU4NzU5ZGJmNzE0MmYwMzZhMzNiYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcApA
QCAtNjEsNyArNjEsOSBAQCB2b2lkIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZGVzdHJveShKU0Nl
bGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja0NvbnN0cnVjdG9yKj4oY2VsbCkt
PkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6fkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcigpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0NhbGxiYWNrQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NhbGxiYWNr
Q29uc3RydWN0b3IpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNDYWxs
YmFja0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1
Y3RJbXBsPEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3Bw
CmluZGV4IDYwYjcyNzZiODFiMDVkOTEzZDllYzRmMmRjNTNhZDE4YTRkMGU3YzAuLjIxZGNiMmVi
OTkyNmJkMzhjMjE3NWNmZDUxMTk5ZWQzYzViNDA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTM1LDcgKzM1LDkgQEAgU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbik7
CiAKIGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxi
YWNrRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTQ2FsbGJhY2tGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQ2FsbGJhY2tGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gQVBJ
Q2FsbGJhY2tGdW5jdGlvbjo6Y2FsbEltcGw8SlNDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmNwcAppbmRleCBhODJmYWExZmFmODhlNzY4NGM2NTVjOWE2MDY4OTU2YzdjY2U2
OGE5Li5mYjQ2YTU1OWIzMDkzMTEwMmM0YmI4MGJmMWFhYWJiNWMxYzQyOWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5jcHAKQEAgLTMxLDEzICsz
MSw0MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY2FsbEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU05vbkZpbmFsT2JqZWN0Q2FsbGJhY2tPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTR2xvYmFsT2JqZWN0
Q2FsbGJhY2tPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCk7CisKIC8vIERlZmluZSB0aGUgdHdvIHR5
cGVzIG9mIEpTQ2FsbGJhY2tPYmplY3RzIHdlIHN1cHBvcnQuCiB0ZW1wbGF0ZSA8PiBjb25zdCBD
bGFzc0luZm8gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0ZW1wbGF0ZSA8PiBjb25zdCBDbGFz
c0luZm8gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OnNfaW5mbyA9IHsgIkNhbGxi
YWNrR2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwotCiB0ZW1wbGF0ZTw+IGNvbnN0IGJv
b2wgSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6bmVlZHNEZXN0cnVjdGlvbiA9
IHRydWU7CiB0ZW1wbGF0ZTw+IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9i
amVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVG
dW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpnZXRDYWxsRnVuY3Rp
b24oKQoreworICAgIHJldHVybiBjYWxsSlNOb25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0Owor
fQorCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9u
RmluYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCit7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwordGVtcGxhdGU8PgorUmF3
TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxG
dW5jdGlvbigpCit7CisgICAgcmV0dXJuIGNhbGxKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0
OworfQorCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpT
R2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAgIHJldHVybiBjb25z
dHJ1Y3RKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0OworfQorCiB0ZW1wbGF0ZTw+CiBKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0PiogSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9i
amVjdD46OmNyZWF0ZShWTSYgdm0sIEpTQ2xhc3NSZWYgY2xhc3NSZWYsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewpAQCAtODQsNCArMTEyLDI0IEBAIElzb1N1YnNwYWNlKiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwgU3Vic3BhY2VBCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNO
b25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9
CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU05vbkZpbmFsT2JqZWN0Q2Fs
bGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAg
cmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzZGYyYTQ0YzdhZDVkZDJkYmEyMjZjNzQ3MmRlOWQw
ZDkzNTA5ODI4Li43Nzk3M2RhNDQ5MzM4MTc3Y2IwNjEyMDFmZmM2ZTI5ZTQ0NDJjY2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTgyLDYg
KzE4Miw5IEBAIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgZmluYWwgOiBwdWJsaWMgUGFyZW50IHsK
IAogICAgIHVzaW5nIFBhcmVudDo6bWV0aG9kVGFibGU7CiAKKyAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY2FsbEltcGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKyAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SW1wbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OworICAgCiBwcml2YXRlOgogICAgIEpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBKU0NsYXNzUmVmLCB2b2lkKiBkYXRhKTsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KFZNJiwgSlNDbGFzc1JlZiwgU3RydWN0dXJlKik7CkBAIC0yMjMsMTAgKzIyNiwxMiBAQCBjbGFz
cyBKU0NhbGxiYWNrT2JqZWN0IGZpbmFsIDogcHVibGljIFBhcmVudCB7CiAgCiAgICAgc3RhdGlj
IEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoSlNWYWx1ZSk7CiAgICAgc3RhdGlj
IEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoRW5jb2RlZEpTVmFsdWUpOworCisg
ICAgdXNpbmcgUmF3TmF0aXZlRnVuY3Rpb24gPSBFbmNvZGVkSlNWYWx1ZShKU0NfSE9TVF9DQUxM
X0FUVFJJQlVURVMqKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworCisgICAgc3RhdGlj
IFJhd05hdGl2ZUZ1bmN0aW9uIGdldENhbGxGdW5jdGlvbigpOworICAgIHN0YXRpYyBSYXdOYXRp
dmVGdW5jdGlvbiBnZXRDb25zdHJ1Y3RGdW5jdGlvbigpOwogIAotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLSAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUo
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBzdGF0aWNGdW5jdGlvbkdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApp
bmRleCA0NWU2YWVmOTliOTA2NTBkNTBkNmY0NGVjYzFhNjk3MTZiNjA1MTQyLi4yZTM0ZGY4MjEz
MWFhYzVmYThhMzAwYjYyNmRjMDQzYmEzZTZiZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNDQ0LDcgKzQ0
NCw3IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqIGNlbGwpCiAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0
LT5jbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsK
ICAgICAgICAgaWYgKGpzQ2xhc3MtPmNhbGxBc0NvbnN0cnVjdG9yKSB7CiAgICAgICAgICAgICBj
b25zdHJ1Y3REYXRhLnR5cGUgPSBDYWxsRGF0YTo6VHlwZTo6TmF0aXZlOwotICAgICAgICAgICAg
Y29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Q7CisgICAgICAgICAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGdldENvbnN0cnVjdEZ1bmN0aW9uKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTQ1Miw3ICs0NTIsNyBAQCBD
YWxsRGF0YSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5jb2RlZEpTVmFsdWUgSlND
YWxsYmFja09iamVjdDxQYXJlbnQ+Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MjEsNyAr
NTIxLDcgQEAgQ2FsbERhdGEgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxsRGF0YShK
U0NlbGwqIGNlbGwpCiAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0LT5j
bGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgaWYgKGpzQ2xhc3MtPmNhbGxBc0Z1bmN0aW9uKSB7CiAgICAgICAgICAgICBjYWxsRGF0
YS50eXBlID0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2ZTsKLSAgICAgICAgICAgIGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNhbGw7CisgICAgICAgICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBnZXRDYWxsRnVuY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNTI5LDcgKzUyOSw3IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50
PgotRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorRW5jb2RlZEpTVmFs
dWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShn
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rp
b24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1t
CmluZGV4IGIzNWFmMjk5MmQ3ZGNlOGI2ODM2NTI2NzljZWU5NTRmOTA4NzJlMmUuLjRiY2Q4ZjQ1
ZDljNDcyN2FiNDYyMjIyYjVkNTU2ZjdlYzU1MTdiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQpAQCAtNTM1LDEyICs1MzUsMTUg
QEAgc3RhdGljIEpTT2JqZWN0UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uQ2FsbEFzQ29uc3RydWN0
b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnQKIAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0Nh
bGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1
bmN0aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0T2JqQ0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bE9iakNDYWxsYmFja0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpj
YWxsSW1wbDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RPYmpDQ2Fs
bGJhY2tGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RPYmpDQ2FsbGJhY2tG
dW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0SW1wbDxP
YmpDQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xv
YmFsT2JqZWN0LmNwcAppbmRleCBkOGFmZTgwOGYxMTAyNjM0YmNjMDkwNWRmNzQzZTJjZTc4ZmYx
ZDcyLi44MjkwMGY0MzFlNGMzMDIxZjY2YmUxOGY5ZDZjMzgyM2FmMzE0NGVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xv
YmFsT2JqZWN0LmNwcApAQCAtNTQsMTAgKzU0LDI0IEBAIHZvaWQgSlNBUElXcmFwcGVyR2xvYmFs
T2JqZWN0SGFuZGxlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
CiAKIG5hbWVzcGFjZSBKU0MgewogCi10ZW1wbGF0ZSA8PiBjb25zdCBDbGFzc0luZm8gSlNDYWxs
YmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7ICJKU0FQSVdy
YXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNBUElXcmFwcGVy
R2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwogCit0ZW1wbGF0ZSA8PiBjb25zdCBDbGFzc0lu
Zm8gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7
ICJKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0ZW1wbGF0ZTw+
IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+Ojpu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9u
IEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q2FsbEZ1bmN0
aW9uKCkKK3sKKyAgICByZXR1cm4gY2FsbEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNr
T2JqZWN0OworfQorCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09i
amVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCit7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2Jq
ZWN0OworfQorCiB0ZW1wbGF0ZSA8PgogSXNvU3Vic3BhY2UqIEpTQ2FsbGJhY2tPYmplY3Q8SlNB
UElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwgU3Vic3BhY2VB
Y2Nlc3MgbW9kZSkKIHsKQEAgLTg1LDYgKzk5LDE2IEBAIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyR2xvYmFsT2JqZWN0PiogSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxP
CiAgICAgcmV0dXJuIGNhbGxiYWNrT2JqZWN0OwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVy
biBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmNhbGxJbXBsKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVy
biBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmNvbnN0cnVjdElt
cGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCiBKU0FQSVdyYXBwZXJHbG9iYWxPYmpl
Y3Q6OkpTQVBJV3JhcHBlckdsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCmluZGV4IDIz
MzRhMWI1N2YyOWVjMjBmNDliOTE5ZDIxNDlkMWI3ZTgwMDFmMDAuLjUyZTYwNjA4MWJmN2E4OTU2
YTE3OTNmNGQ2ZTZjNThjM2ZiYTlmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAKQEAgLTY3LDEwICs2
NywyNCBAQCBib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OgogCiBuYW1lc3BhY2UgSlNDIHsKIAotdGVt
cGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2Jq
ZWN0Pjo6c19pbmZvID0geyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9Owor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0KTsKIAordGVtcGxhdGUgPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6c19pbmZvID0g
eyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwogdGVtcGxhdGU8PiBjb25z
dCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6bmVlZHNEZXN0cnVj
dGlvbiA9IHRydWU7CiAKK3RlbXBsYXRlIDw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxGdW5jdGlvbigpCit7CisgICAgcmV0
dXJuIGNhbGxKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwordGVtcGxhdGUg
PD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0
Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAgIHJldHVybiBjb25zdHJ1Y3RKU0FQSVdy
YXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwogdGVtcGxhdGUgPD4KIElzb1N1YnNwYWNl
KiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnN1YnNwYWNlRm9ySW1wbChW
TSYgdm0sIFN1YnNwYWNlQWNjZXNzIG1vZGUpCiB7CkBAIC05MCw2ICsxMDQsMTYgQEAgU3RydWN0
dXJlKiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmEKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNBUElXcmFwcGVyT2Jq
ZWN0Q2FsbGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFw
cGVyT2JqZWN0Pjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tP
YmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6
Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKIEpTQVBJV3JhcHBl
ck9iamVjdDo6SlNBUElXcmFwcGVyT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXggYzYwNGRlZWI0
Mzk1ZGUxZDU4MWVhNmMwOTQ2YjViNDlkODcwMWQwNC4uMjBmMTcyMmY0NmUwNjY0YjQ1YWM1YmRj
YmU5NGI5NDM4Nzc4NzI5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9n
bGliL0pTQ0NhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtNTIsMTIgKzUyLDE1IEBAIHN0YXRp
YyBKU09iamVjdFJlZiBjYWxsQXNDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY2FsbGVyQ29udGV4
dCwgSlNPYmplY3RSZWYgY29uCiAKIGNvbnN0IENsYXNzSW5mbyBKU0NDYWxsYmFja0Z1bmN0aW9u
OjpzX2luZm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NDYWxsYmFja0Z1bmN0
aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNDQ2Fs
bGJhY2tGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NDYWxsYmFj
a0Z1bmN0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
Q0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQ0Nh
bGxiYWNrRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJbXBs
PEpTQ0NhbGxiYWNrRnVuY3Rpb24+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNDQ2FsbGJhY2tGdW5j
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NDYWxsYmFja0Z1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3RJbXBsPEpTQ0NhbGxiYWNr
RnVuY3Rpb24+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZS5jcHAKaW5kZXggN2IyY2NkYzczZWY3NWRiNWZhMGE3MGJhYTYyNGVhMDk4ZmFk
NjMxMy4uYWRiYjVlNTdjMzQ1MWMzZDNhODhmODE4ZjdlYzA1N2NlYjU5ODgyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAKQEAgLTMzLDI0ICszMywyNCBAQCBuYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblN1
YnR5cGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5j
dGlvbkRldGFpbHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25HZXRJbnRlcm5hbFByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24oSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdp
dGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtTZXRTaXplKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRvckVudHJpZXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVy
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRl
V2l0aFNjb3BlRXh0ZW5zaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0KLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlQXR0cmlidXRlRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvblN1YnR5cGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uRGV0YWlscyk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRl
cm5hbENvbnN0cnVjdG9yTmFtZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9y
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFw
U2l6ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtT
ZXRTaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcyk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRl
cmF0b3JFbnRyaWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0
aW9uUXVlcnlIb2xkZXJzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lv
bik7CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3Vs
dEFsaWFzKTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
OjpzX2luZm8gPSB7ICJJbmplY3RlZFNjcmlwdEhvc3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlKSB9OwogCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAg
SlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJzYXZlZFJlc3VsdEFsaWFzIiwg
anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsaWFzLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVFdmFsdWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtOTIsNyArOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUoSlNHbAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsaWFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTA1LDcgKzEwNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5zYXZlZFJlc3VsdEFsaWFzKGds
b2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50
ZXJuYWxDb25zdHJ1Y3Rvck5hbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExOCw3ICsxMTgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FzdGVkVGhpcy0+aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVj
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTMxLDcgKzEzMSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklz
SFRNTEFsbENvbGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5pc0hU
TUxBbGxDb2xsZWN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVq
ZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
NDQsNyArMTQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5
cGVFcnJvcihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Qcm94eVRh
cmdldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTcs
NyArMTU3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhc3RlZFRoaXMtPnByb3h5VGFyZ2V0VmFsdWUodm0sIGNhbGxGcmFtZSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE3MCw3ICsxNzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZShKUwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+d2Vha01hcFNpemUoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODMsNyArMTgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVu
dHJpZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPndlYWtNYXBFbnRy
aWVzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtTZXRTaXpl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25XZWFrU2V0U2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDcgKzE5Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbldlYWtTZXRTaXplKEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRU
aGlzLT53ZWFrU2V0U2l6ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25XZWFrU2V0RW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIwOSw3ICsyMDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRT
Y3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+d2Vha1NldEVudHJpZXMoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRvckVudHJpZXMs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRv
ckVudHJpZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+aXRlcmF0b3JF
bnRyaWVzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SW5z
dGFuY2VzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25RdWVyeUluc3RhbmNlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM1LDcgKzIz
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvblF1ZXJ5SW5zdGFuY2VzCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT5xdWVyeUluc3RhbmNlcyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVycywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJ
bmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVycyhKCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5xdWVyeUhvbGRlcnMoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjEs
NyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2MKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhc3RlZFRoaXMtPmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblN1YnR5cGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblN1YnR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBlKEpTR2xvYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c3VidHlwZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9u
RGV0YWlscywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bkZ1bmN0aW9uRGV0YWlsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5m
dW5jdGlvbkRldGFpbHMoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9u
R2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAppbmRleCAyODg3OGRj
NDFhYWY5NWQwOWMxOTZkNzAwODc2NzI3ZGU1YzI4ZTY1Li5hYjVhOGFjZDAzMmZiODIxNTkzNGM3
ZTQwYTAzMzJmODZhMGI4YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3Bw
CkBAIC0zNCwxOSArMzQsMTkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBGdW5jdGlvbnMuCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5
cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2Nv
cGVEZXNjcmlwdGlvbnMpOwogCiAvLyBBdHRyaWJ1dGVzLgotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2Fs
bEZyYW1lQXR0cmlidXRlQ29sdW1uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVGdW5jdGlvbk5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVNjb3BlQ2hhaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNP
YmplY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVR5cGUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlw
dENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZUNvbHVtbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0ph
dmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVGdW5jdGlvbk5hbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFp
bik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJh
bWVBdHRyaWJ1dGVUaGlzT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVR5cGUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCk7CiAKIGNv
bnN0IENsYXNzSW5mbyBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IkphdmFTY3JpcHRDYWxsRnJhbWUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZSkgfTsKIApA
QCAtNjksNyArNjksNyBAQCB2b2lkIEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIEpTQ19OQVRJVkVf
R0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiaXNUYWlsRGVsZXRlZCIsIGpzSmF2YVNjcmlwdENh
bGxGcmFtZUlzVGFpbERlbGV0ZWQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29w
ZUV4dGVuc2lvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90
b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC04Miw3ICs4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZh
U2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdGlv
bnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVu
Y3Rpb25TY29wZURlc2NyaXB0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTUsNyArOTUs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVBy
b3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FzdGVkVGhpcy0+c2NvcGVEZXNjcmlwdGlvbnMoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2Fs
bGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNh
bGxlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA4LDcgKzEwOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKEpT
R2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5jYWxs
ZXIoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlEKEpTR2xvYmFsT2JqZQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c291cmNlSUQoZ2xvYmFsT2JqZWN0KSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlTGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVMaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMzQsNyArMTM0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+
bGluZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDb2x1bW4oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ29sdW1uLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNDcsNyArMTQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFT
Y3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDb2x1bW4oSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmNvbHVtbihnbG9iYWxPYmplY3QpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1
dGVGdW5jdGlvbk5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1l
QXR0cmlidXRlRnVuY3Rpb25OYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjAsNyArMTYw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVB
dHRyaWJ1dGVGdW5jdGlvbk5hbWUoSlNHbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNhc3RlZFRoaXMtPmZ1bmN0aW9uTmFtZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNo
YWluKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNj
b3BlQ2hhaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3Bl
Q2hhaW4oSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+
c2NvcGVDaGFpbihnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE4Niw3ICsxODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNPYmplY3QoSlNHbG9iYWxP
YgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+dGhpc09iamVjdChnbG9i
YWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlw
dENhbGxGcmFtZUF0dHJpYnV0ZVR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OSw3ICsx
OTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZVR5cGUoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT50eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBmZWNhYjllYzBiZGQ0MGQ5N2YzOTlm
ZWIyM2UxODgxZGQzMjI1NDAxLi5kMGE0OGYzMzhlZjlkYTM0NWFiNjhjNTJkYWExYTYwZGY3OGQ2
MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjQ5LDExNCArMjQ5LDExNCBAQCBjbGFzcyBX
b3JrZXJzIHsKIH07CiAKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25DcmVhdGVHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0lu
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KTsKICNpZiBVU0UoQklHSU5U
MzIpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUJp
Z0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUJpZ0ludDMyKTsKICNlbmRpZgotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Vc2VCaWdJbnQzMihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Jc0JpZ0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzSGVhcEJpZ0ludChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblByaW50U3RkT3V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50U3RkRXJyKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRlYnVnKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlc2NyaWJlKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkRlc2NyaWJlQXJyYXkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2xlZXBTZWNvbmRzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRnVsbEdDKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25IZWFwU2l6ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVNZW1vcnlGb290cHJpbnQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJl
c3NPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25WZXJzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Mb2FkU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRGaWxlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNoZWNrU3ludGF4KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRsaW5lKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblByZWNpc2VUaW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uTm9ERkcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9GVEwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uTm9PU1JFeGl0RnV6emluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25PcHRpbWl6ZU5leHRJ
bnZvY2F0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk51bWJlck9mREZHQ29tcGlsZXMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ2FsbGVySXNPTUdDb21waWxlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NPcHRpb25z
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZhaWxOZXh0TmV3Q29k
ZUJsb2NrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgTk9fUkVUVVJOX1dJ
VEhfVkFMVUUgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblF1aXQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRmFsc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVW5kZWZpbmVkMShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25VbmRlZmluZWQyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzSW50MzIoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uSXNQdXJlTmFOKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVmZmVjdGZ1bDQyKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbklkZW50aXR5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DYWxsTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQ3VzdG9tUHJv
cGVydGllcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFRpbWVvdXQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmFs
aXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmFsaXphdGlvblJl
Z2lzdHJ5RGVhZENvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzMzJCaXRQbGF0Zm9ybShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QbGF0Zm9ybVN1
cHBvcnRzU2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFw
c2hvdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5n
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRW5zdXJlQXJyYXlTdG9yYWdlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVzZUJpZ0ludDMyKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNCaWdJbnQzMik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSGVhcEJpZ0ludCk7CisKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRPdXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZEVycik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlYnVnKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZXNjcmliZUFycmF5KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2xlZXBTZWNvbmRzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSlNDU3RhY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25HQ0FuZFN3ZWVwKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRnVsbEdDKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRWRlbkdDKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uSGVhcFNpemUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25DcmVhdGVNZW1vcnlGb290cHJpbnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25SZXNldE1lbW9yeVBlYWspOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25BZGRyZXNzT2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25WZXJzaW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uUnVuKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUnVu
U3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTG9hZCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWRTdHJpbmcpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZWFkRmlsZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNoZWNrU3ludGF4KTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVhZGxpbmUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmVjaXNlVGltZSk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ob0RGRyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vRlRMKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9PU1JFeGl0RnV6emluZyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk9wdGltaXplTmV4dEludm9jYXRpb24pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVz
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbGVySXNPTUdD
b21waWxlZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkpTQ09w
dGlvbnMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZW9wdGlt
aXphdGlvblJldHJ5Q291bnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRmFpbE5leHROZXdDb2RlQmxvY2spOworc3RhdGljIE5PX1JFVFVSTl9XSVRI
X1ZBTFVFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25RdWl0KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmFsc2UpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25VbmRlZmluZWQxKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVW5kZWZpbmVkMik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbklzSW50MzIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Jc1B1cmVOYU4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25FZmZlY3RmdWw0Mik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbklkZW50aXR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBUeXBlc0ZvckFsbFZhcmlhYmxlcyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRyYWluTWljcm90YXNrcyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFRpbWVvdXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZWxlYXNlV2Vha1JlZnMpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3Ry
eUxpdmVDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZp
bmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVhcFNu
YXBzaG90KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJh
dGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UpOwogI2lmIEVOQUJM
RShTQU1QTElOR19QUk9GSUxFUikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNhbXBsaW5n
UHJvZmlsZXJTdGFja1RyYWNlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TdGFydFNhbXBsaW5nUHJvZmlsZXIp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TYW1wbGluZ1Byb2Zp
bGVyU3RhY2tUcmFjZXMpOwogI2VuZGlmCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uTWF4QXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFN0
YXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFBhc3NlZChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25NYXhB
cmd1bWVudHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3lu
Y1Rlc3RTdGFydCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFz
eW5jVGVzdFBhc3NlZCk7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldlYkFzc2VtYmx5TWVtb3J5TW9kZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9yeU1vZGUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
U0FNUExJTkdfRkxBR1MpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblNldFNhbXBsaW5nRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2xlYXJTYW1wbGluZ0ZsYWdz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpOwogI2VuZGlmCiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0UmFuZG9tU2VlZChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25TZXRSYW5kb21TZWVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9wZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFy
Q3JlYXRlUmVhbG0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVj
ZWl2ZUJyb2FkY2FzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlcG9ydChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50
QnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50R2V0UmVwb3J0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkRvbGxhckFnZW50TGVhdmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2Vu
dE1vbm90b25pY05vdyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYWl0Rm9yUmVwb3J0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkhlYXBDYXBhY2l0eShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRGlzYWJsZVJpY2hTb3VyY2VJbmZvKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1h
bGxvY0luQUxvb3AoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVG90YWxDb21waWxlVGltZShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvblNldFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkFzRG91YmxlTnVtYmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFJhbmRvbVNlZWQpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRSYW5kb21TZWVkKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNSb3BlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbGVyU291cmNlT3JpZ2luKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQ3JlYXRlUmVhbG0pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJFdmFsU2NyaXB0KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFy
dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50
UmVjZWl2ZUJyb2FkY2FzdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkRvbGxhckFnZW50UmVwb3J0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRG9sbGFyQWdlbnRTbGVlcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkRvbGxhckFnZW50QnJvYWRjYXN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudExlYXZpbmcpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudE1vbm90b25pY05v
dyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbldhaXRGb3JSZXBv
cnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IZWFwQ2FwYWNp
dHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GbGFzaEhlYXBB
Y2Nlc3MpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EaXNhYmxl
UmljaFNvdXJjZUluZm8pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25NYWxsb2NJbkFMb29wKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uVG90YWxDb21waWxlVGltZSk7CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2spOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc0RvdWJsZU51bWJlcik7CiAKIHN0cnVjdCBTY3Jp
cHQgewogICAgIGVudW0gY2xhc3MgU3RyaWN0TW9kZSB7CkBAIC0xMjYyLDEwICsxMjYyLDE3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcmludEludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBy
aW50U3RkT3V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7IHJldHVybiBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRv
dXQpOyB9Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnRTdGRFcnIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsgcmV0
dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0ZGVycik7IH0KK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkT3V0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBw
cmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRvdXQpOworfQorCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZEVyciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gcHJp
bnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3RkZXJyKTsKK30KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlYnVnKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRGVidWcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEyODEsNyArMTI4OCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWJ1ZyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRl
c2NyaWJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCkBAIC0xMjg5LDcgKzEyOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRGVzY3JpYmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHRvU3RyaW5nKGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25EZXNjcmliZUFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmVBcnJh
eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMTMwMCw3ICsxMzA3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlc2NyaWJlQXJyYXkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgdG9TdHJpbmcoIjxCdXR0ZXJmbHk6ICIsIFJhd1BvaW50ZXIob2Jq
ZWN0LT5idXR0ZXJmbHkoKSksICI7IHB1YmxpYyBsZW5ndGg6ICIsIG9iamVjdC0+Z2V0QXJyYXlM
ZW5ndGgoKSwgIjsgdmVjdG9yIGxlbmd0aDogIiwgb2JqZWN0LT5nZXRWZWN0b3JMZW5ndGgoKSwg
Ij4iKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2xlZXBT
ZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2xlZXBTZWNvbmRzLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMzMxLDcgKzEzMzgsNyBAQCBjbGFzcyBGdW5jdGlvbkpTQ1N0YWNr
RnVuY3RvciB7CiAgICAgU3RyaW5nQnVpbGRlciYgbV90cmFjZTsKIH07CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NTdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkpTQ1N0YWNrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBT
dHJpbmdCdWlsZGVyIHRyYWNlOwpAQCAtMTM0Myw3ICsxMzUwLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uR0NBbmRTd2VlcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xv
Y2tIb2xkZXIgbG9jayh2bSk7CkBAIC0xMzUxLDcgKzEzNTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC5zaXpl
QWZ0ZXJMYXN0RnVsbENvbGxlY3Rpb24oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRnVsbEdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GdWxsR0MsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwpAQCAtMTM1OSw3ICsx
MzY2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZ1bGxHQyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHZtLmhlYXAuc2l6ZUFmdGVyTGFzdEZ1bGxDb2xsZWN0aW9uKCkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRWRlbkdDLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTTG9ja0hvbGRl
ciBsb2NrKHZtKTsKQEAgLTEzNjcsNyArMTM3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2bS5oZWFwLnNpemVBZnRlckxh
c3RFZGVuQ29sbGVjdGlvbigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25IZWFwU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGVhcFNpemUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwpAQCAtMTQyNiwxNCArMTQz
MywxNCBAQCBjbGFzcyBKU0NNZW1vcnlGb290cHJpbnQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVP
YmplY3QgewogCiBjb25zdCBDbGFzc0luZm8gSlNDTWVtb3J5Rm9vdHByaW50OjpzX2luZm8gPSB7
ICJNZW1vcnlGb290cHJpbnQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTQ01lbW9yeUZvb3RwcmludCkgfTsKIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZU1lbW9yeUZvb3RwcmludChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3JlYXRlTWVtb3J5Rm9vdHByaW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQ01l
bW9yeUZvb3RwcmludDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlc2V0TWVtb3J5UGVhayhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZXNldE1l
bW9yeVBlYWssIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIE1lbW9yeUZv
b3RwcmludDo6cmVzZXRQZWFrKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKQEAgLTE0NDIsNyArMTQ0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25SZXNldE1lbW9yeVBlYWsoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAv
LyBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmFsbHkgdmVyeSBoZWxwZnVsIGluIDY0LWJpdCBj
b2RlIGFzIHRoZSB0YWcgYW5kIHBheWxvYWQKIC8vIHNoYXJlIGEgcmVnaXN0ZXIuIEJ1dCBpbiAz
Mi1iaXQgSklUZWQgY29kZSB0aGUgdGFnIG1heSBub3QgYmUgY2hlY2tlZCBpZiBhbgogLy8gb3B0
aW1pemF0aW9uIHJlbW92ZXMgdHlwZSBjaGVja2luZyByZXF1aXJlbWVudHMsIHN1Y2ggYXMgaW4g
PT09LgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJlc3NPZihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQWRkcmVzc09mLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAg
ICAgaWYgKCF2YWx1ZS5pc0NlbGwoKSkKQEAgLTE0NTMsMTQgKzE0NjAsMTQgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJlc3NPZihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbEYKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25WZXJzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblZlcnNpb24sIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIC8vIFdlIG5lZWQgdGhpcyBmdW5jdGlvbiBm
b3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBNb3ppbGxhIEpTIHRlc3RzIGJ1dCBmb3Igbm93CiAg
ICAgLy8gd2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55IHZlcnNpb24tc3BlY2lmaWMgaGFuZGxpbmcK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uUnVuLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDk1LDcgKzE1MDIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
c3RvcFdhdGNoLmdldEVsYXBzZWRNUygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SdW5T
dHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1MjQsNyArMTUzMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWFsbSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uTG9hZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU1Myw3ICsxNTYw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2Fk
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTG9hZFN0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTU2OCw3ICsxNTc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkxvYWRTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkRmlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblJlYWRGaWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTk5LDcgKzE2MDYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVhZEZpbGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrU3ludGF4
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tTeW50YXgsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE2MjMsNyArMTYzMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DaGVja1N5bnRheChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiB9CiAK
ICNpZiBFTkFCTEUoU0FNUExJTkdfRkxBR1MpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFn
cywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAg
ICAgICAgIHVuc2lnbmVkIGZsYWcgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudChpKS50b051bWJlcihnbG9iYWxPYmplY3QpKTsKQEAgLTE2MzMsNyAr
MTY0MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRTYW1wbGlu
Z0ZsYWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DbGVhclNhbXBsaW5nRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNsZWFyU2FtcGxpbmdGbGFncywg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAg
ICAgIHVuc2lnbmVkIGZsYWcgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudChpKS50b051bWJlcihnbG9iYWxPYmplY3QpKTsKQEAgLTE2NDQsMTIgKzE2
NTEsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNsZWFyU2FtcGxp
bmdGbGFncyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmEKIH0KICNlbmRpZgogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0UmFuZG9tU2VlZChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR2V0UmFuZG9tU2VlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2xvYmFsT2JqZWN0
LT53ZWFrUmFuZG9tKCkuc2VlZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25TZXRSYW5kb21TZWVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY2MCw3ICsxNjY3LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFJhbmRvbVNlZWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNSb3Bl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Jc1JvcGUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKICAgICBpZiAoIWFyZ3VtZW50LmlzU3RyaW5nKCkpCkBAIC0xNjY5LDcgKzE2NzYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNSb3BlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29s
ZWFuKCFpbXBsKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25D
YWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DYWxsZXJTb3Vy
Y2VPcmlnaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFNvdXJjZU9y
aWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSk7CkBA
IC0xNjc4LDcgKzE2ODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q2FsbGVyU291cmNlT3JpZ2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVhZGxpbmUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvblJlYWRsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgVmVjdG9yPGNoYXIsIDI1Nj4gbGluZTsKICAgICBpbnQgYzsKQEAgLTE2
OTIsMjIgKzE2OTksMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJl
YWRsaW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0oKSwgbGluZS5kYXRhKCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByZWNpc2VUaW1lKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblByZWNpc2VUaW1lLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25O
ZXZlcklubGluZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2V0TmV2ZXJJ
bmxpbmUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbk5vREZHKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9E
RkcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzZXROZXZlck9wdGltaXplKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Ob0ZUTChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9GVEwsIChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkp
IHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gZ2V0RXhlY3V0YWJs
ZUZvckZ1bmN0aW9uKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwpAQCAtMTcxNywyMiArMTcyNCwy
MiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9GVEwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Ob09TUkV4aXRGdXp6aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9PU1JFeGl0
RnV6emluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldENhbm5vdFVzZU9TUkV4aXRG
dXp6aW5nKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKG9wdGltaXplTmV4dEludm9jYXRpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk51bWJlck9mREZH
Q29tcGlsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobnVtYmVyT2ZERkdDb21waWxlcyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ2FsbGVySXNPTUdDb21waWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNh
bGxlcklzT01HQ29tcGlsZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4NjgsMTQgKzE4NzUs
MTQgQEAgV29ya2VycyYgV29ya2Vyczo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gKnJlc3VsdDsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckNyZWF0ZVJl
YWxtKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBHbG9iYWxPYmplY3QqIHJlc3VsdCA9IEdsb2JhbE9iamVjdDo6Y3JlYXRl
KHZtLCBHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpLCBWZWN0b3I8
U3RyaW5nPigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdC0+Z2V0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiJCIpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJFdmFsU2NyaXB0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTg5Nyw3ICsxOTA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRv
bGxhckV2YWxTY3JpcHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9s
bGFyQWdlbnRTdGFydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk1NSw3ICsxOTYyLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9s
bGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9s
bGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTgzLDcg
KzE5OTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdl
bnRSZWNlaXZlQnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCBjYWxsYmFjaywgY2Fs
bERhdGEsIGpzTnVsbCgpLCBhcmdzKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25Eb2xsYXJBZ2VudFJlcG9ydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5Niw3ICsyMDAz
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVw
b3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRG9sbGFyQWdlbnRTbGVlcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFn
ZW50U2xlZXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMDksNyArMjAxNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFn
ZW50QnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9h
ZGNhc3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMzMsNyArMjA0MCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50
R2V0UmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKIApAQCAtMjA0NCwxNyArMjA1MSwxNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHN0cmlu
ZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdl
bnRMZWF2aW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50TGVhdmluZywgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50TW9u
b3RvbmljTm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50TW9ub3RvbmljTm93LCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKE1v
bm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhaXRGb3JSZXBvcnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbldhaXRGb3JSZXBvcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAKQEAgLTIwNjksMTMgKzIwNzYsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbldhaXRGb3JSZXBvcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzdHJpbmcpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhlYXBDYXBhY2l0eShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uSGVhcENhcGFjaXR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC5jYXBhY2l0eSgpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIwOTMsMTMgKzIxMDAsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkZsYXNoSGVhcEFjY2VzcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGlzYWJsZVJpY2hTb3VyY2VJbmZvKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRpc2FibGVS
aWNoU291cmNlSW5mbywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgc3Vw
cG9ydHNSaWNoU291cmNlSW5mbyA9IGZhbHNlOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25NYWxsb2NJbkFMb29wKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbk1hbGxvY0luQUxvb3AsIChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopKQogewogICAgIFZlY3Rvcjx2b2lkKj4gcHRyczsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgNTAwMDsgKytpKQpAQCAtMjEwOSw3ICsyMTE2LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1hbGxvY0luQUxvb3AoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1l
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblRvdGFsQ29tcGlsZVRpbWUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQog
ewogI2lmIEVOQUJMRShKSVQpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihK
SVQ6OnRvdGFsQ29tcGlsZVRpbWUoKS5taWxsaXNlY29uZHMoKSkpOwpAQCAtMjEyNyw3ICsyMTM0
LDcgQEAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19mdW5kYW1lbnRhbDxWYWx1ZVR5
cGU+Ojp2YWx1ZT46OnR5cGUgYWRkT3B0aW9uKFYKICAgICBvcHRpb25zT2JqZWN0LT5wdXREaXJl
Y3Qodm0sIGlkZW50aWZpZXIsIEpTVmFsdWUodmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ09wdGlvbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkpTQ09w
dGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNPYmplY3QqIG9wdGlvbnNPYmpl
Y3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QpOwpAQCAtMjEzOCw3ICsyMTQ1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ09wdGlvbnMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KG9wdGlvbnNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uUmVvcHRpbWl6YXRpb25SZXRyeUNvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZW9wdGltaXphdGlv
blJldHJ5Q291bnQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMjE1MCw3ICsyMTU3LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3Vu
dChKU0dsb2JhbE9iamVjdCosIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGJsb2NrLT5yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcigpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uVHJhbnNmZXJBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjE2OCwxNCArMjE3NSwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uVHJhbnNmZXJBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GYWlsTmV4dE5ld0NvZGVCbG9jayhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRmFpbE5leHROZXdDb2RlQmxvY2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
dm0uc2V0RmFpbE5leHROZXdDb2RlQmxvY2soKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uUXVpdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUXVpdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICB2bS5jb2RlQ2FjaGUoKS0+d3JpdGUodm0pOwpAQCAtMjE4OCwxMSArMjE5NSwyMiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUXVpdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25GYWxzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopIHsgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsgfQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRmFsc2UsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQor
eworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7Cit9CisKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVuZGVmaW5lZDEsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Cit9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25VbmRlZmlu
ZWQxKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikgeyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOyB9Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
VW5kZWZpbmVkMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopIHsgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsgfQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbklzSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVuZGVmaW5lZDIsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSW50MzIsIChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
aWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50KGkpLmlzSW50MzIoKSkKQEAgLTIyMDEsNyArMjIxOSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc0ludDMyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4odHJ1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSXNQdXJlTmFOKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc1B1cmVOYU4sIChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
IGNhbGxGcmFtZS0+YXJndW1lbnQoaSk7CkBAIC0yMjE2LDI1ICsyMjM0LDI4IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc1B1cmVOYU4oSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqIGNhbGxGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1
ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSWRlbnRpdHko
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOyB9CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25JZGVudGl0eSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT5hcmd1bWVudCgw
KSk7Cit9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZmZlY3RmdWw0
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25FZmZlY3RmdWw0MiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcig0MikpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25NYWtlTWFzcXVlcmFkZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVGdW5jdGlvblRoYXRNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkKHZtLCBnbG9iYWxPYmplY3QsIDAsICJJc0hUTUxEREEiX3MsIGZ1
bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DYWxsTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVsbCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0N1
c3RvbVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXNDdXN0b21Qcm9w
ZXJ0aWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAg
IGlmICh2YWx1ZS5pc09iamVjdCgpKQpAQCAtMjI0MiwyMSArMjI2MywyMSBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNl
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wVHlwZXNG
b3JBbGxWYXJpYWJsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBUeXBlc0ZvckFsbFZhcmlhYmxl
cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICB2bS5kdW1wVHlwZVByb2ZpbGVyRGF0YSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EcmFpbk1pY3JvdGFza3MoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkRyYWluTWljcm90YXNrcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICB2
bS5kcmFpbk1pY3JvdGFza3MoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0VGlt
ZW91dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFRpbWVvdXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIyNzksMTQgKzIzMDAsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblNldFRpbWVvdXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25SZWxlYXNlV2Vha1JlZnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgdm0u
ZmluYWxpemVTeW5jaHJvbm91c0pTRXhlY3V0aW9uKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMjk5LDcgKzIzMjAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50KEpTR2xvYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmluYWxpemF0aW9uUmVnaXN0cnkt
PmxpdmVDb3VudChsb2NrZXIpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjMxMiw3ICsyMzMzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudChKU0dsb2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGZpbmFsaXphdGlvblJlZ2lzdHJ5
LT5kZWFkQ291bnQobG9ja2VyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzMzJCaXRQbGF0Zm9ybSwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNDOjpKU1ZhbHVlOjpKU0ZhbHNlKSk7CkBAIC0yMzIx
LDEzICsyMzQyLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JczMy
Qml0UGxhdGZvcm0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAjZW5kaWYKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoR2xvYmFsT2JqZWN0OjpjcmVhdGUodm0sIEds
b2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIFZlY3RvcjxTdHJpbmc+
KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUhl
YXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzQ2LDcgKzIzNjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZQogfQogCiAjaWYgVVNFKEJJR0lOVDMyKQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZUJpZ0ludDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
Q3JlYXRlQmlnSW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNzQsNyArMjM5NSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCaWdJbnQzMihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiB9CiAjZW5kaWYKIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblVzZUJpZ0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVzZUJpZ0ludDMyLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpOwpAQCAtMjM4Myw3ICsyNDA0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVzZUJpZ0ludDMyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikKICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uSXNCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNCaWdJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogI2lmIFVTRShCSUdJTlQz
MikKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApLmlzQmlnSW50MzIoKSkpOwpAQCAtMjM5MywxMiArMjQxNCwxMiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbAogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Jc0hlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSGVhcEJpZ0ludCwgKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuaXNIZWFwQmlnSW50KCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrTW9kdWxl
U3ludGF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0MTksNyArMjQ0MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdG9wV2F0Y2guZ2V0
RWxhcHNlZE1TKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNT
YW1wbGluZ1Byb2ZpbGVyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNpZiBF
TkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKEpTQzo6SlNWYWx1ZTo6SlNUcnVlKSk7CkBAIC0yNDI4LDcgKzI0NDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJv
ZmlsZXIoSlNHbG9iYWxPYgogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJh
dGVIZWFwU25hcHNob3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVy
IGxvY2sodm0pOwpAQCAtMjQ0Myw3ICsyNDY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CkBAIC0yNDYxLDEzICsyNDgyLDEzIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hv
dEZvckdDRGVidWdnaW5nKEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0
cmluZyh2bSwganNvblN0cmluZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZXNldFN1cGVyU2FtcGxlclN0
YXRlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXNldFN1cGVyU2Ft
cGxlclN0YXRlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuc3VyZUFycmF5U3Rv
cmFnZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKQEAgLTI0NzgsNyArMjQ5OSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3Jh
Z2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiB9CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJP
RklMRVIpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU3RhcnRTYW1wbGlu
Z1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TdGFydFNhbXBsaW5nUHJvZmlsZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU2FtcGxpbmdQcm9maWxlciYgc2FtcGxpbmdQcm9maWxl
ciA9IHZtLmVuc3VyZVNhbXBsaW5nUHJvZmlsZXIoV1RGOjpTdG9wd2F0Y2g6OmNyZWF0ZSgpKTsK
QEAgLTI0ODcsNyArMjUwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TdGFydFNhbXBsaW5nUHJvZmlsZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblNhbXBsaW5nUHJvZmlsZXJTdGFja1RyYWNlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0YWNrVHJhY2VzLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MDIs
MTIgKzI1MjMsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNhbXBs
aW5nUHJvZmlsZXJTdGFja1RyYWNlcyhKU0dsb2JhbE9iamVjdCoKIH0KICNlbmRpZiAvLyBFTkFC
TEUoU0FNUExJTkdfUFJPRklMRVIpCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25NYXhBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWF4QXJndW1lbnRzLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKEpTQzo6
bWF4QXJndW1lbnRzKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Bc3luY1Rlc3RTdGFydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFzeW5jVGVzdFN0
YXJ0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTIwLDcgKzI1NDEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdAogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFBhc3NlZChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25B
c3luY1Rlc3RQYXNzZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIGFz
eW5jVGVzdFBhc3NlcysrOwogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKQEAgLTI1
MjgsNyArMjU0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc3lu
Y1Rlc3RQYXNzZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
V2ViQXNzZW1ibHlNZW1vcnlNb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2ViQXNz
ZW1ibHlNZW1vcnlNb2RlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTQ4LDcgKzI1NjksNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldlYkFzc2VtYmx5
TWVtb3J5TW9kZShKU0dsb2JhbE9iamVjdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVq
ZWN0aW9uQ2FsbGJhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRVbmhhbmRsZWRS
ZWplY3Rpb25DYWxsYmFjaywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
SlNPYmplY3QqIG9iamVjdCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuZ2V0T2JqZWN0KCk7CkBA
IC0yNTYxLDcgKzI1ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2soSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25Bc0RvdWJsZU51bWJlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkFzRG91YmxlTnVtYmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGE0ODlhMjZjYjc2ZTI5MDVhNDE5N2VlNmI0YjBkMzUwYzI3ODc1NTIuLjdkODVh
NjAwOTBkZWZiNWEwYjBlNWU1N2IwZTkwNzMzNDE3MTQwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC0zOSw4ICszOSw4IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEFnZ3Jl
Z2F0ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBZ2dyZWdhdGVFcnJvckNv
bnN0cnVjdG9yKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
QWdncmVnYXRlRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QWdncmVnYXRlRXJy
b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QWdncmVnYXRlRXJyb3JDb25z
dHJ1Y3Rvcik7CiAKIEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3I6OkFnZ3JlZ2F0ZUVycm9yQ29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSwgY2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIGNvbnN0cnVjdEFnZ3JlZ2F0
ZUVycm9yQ29uc3RydWN0b3IpCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQWdncmVnYXRlRXJyb3JD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBZ2dyZWdhdGVFcnJvclByb3RvdHlw
ZSoKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFnZ3JlZ2F0ZUVy
cm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFnZ3JlZ2F0ZUVycm9yQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTVmFsdWUg
ZXJyb3JzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEFnZ3JlZ2F0ZUVy
cm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JTdHJ1Y3R1cmUsIGVycm9ycywgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCAyNGIxN2M3ZjI3NmVlY2RiNWU2NzVhNWE4YjZl
MjZjZjk4OWJhZDY3Li4wODg2ZjkzZjY1Y2Y1YzYxMWM1M2I0ZDhiNTJkNjQ1YzNkNTMxZWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcApAQCAtNDMsOCArNDMsOCBAQCBjb25zdCBDbGFzc0luZm8gQXJyYXlDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbgogQGVuZAogKi8K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXJy
YXlDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rvcik7CiAKIEFycmF5Q29uc3RydWN0b3I6OkFycmF5Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rp
b24odm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhBcnJh
eUNvbnN0cnVjdG9yKQpAQCAtODYsMTMgKzg2LDEzIEBAIHN0YXRpYyBpbmxpbmUgSlNBcnJheSog
Y29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJy
YXlBbGxvY2F0aW9uUHJvZmlsZSo+KG51bGxwdHIpLCBhcmdzLCBuZXdUYXJnZXQpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhnbG9iYWxPYmplY3QsIGFyZ3MsIGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFycmF5
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZ2xvYmFsT2JqZWN0LCBh
cmdzLCBKU1ZhbHVlKCkpKTsKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIGlzQXJyYXlTbG93KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3h5T2JqZWN0KiBhcmd1bWVudCkKIAogLy8g
RVM2IDcuMi4yCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pc2FycmF5
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5Q29uc3RydWN0b3JQcml2YXRlRnVu
Y0lzQXJyYXlTbG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5Q29uc3RydWN0b3JQcml2YXRl
RnVuY0lzQXJyYXlTbG93LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBqc0R5bmFt
aWNDYXN0PFByb3h5T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNBcnJheVNs
b3dJbmxpbmUoZ2xvYmFsT2JqZWN0LCBqc0Nhc3Q8UHJveHlPYmplY3QqPihjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuaAppbmRleCA1MzBlNjM0NTJkOGJlOTk2NGE0NGE0ZjlkMTFj
YWY2YzgxZGM1YWVmLi5kYTgyNWE5NWM4ZTNiZDU1ZDc0MGZlOTliM2IzMjhmZDg2MjhkOWI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5o
CkBAIC01Nyw3ICs1Nyw3IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEFy
cmF5Q29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24pOwogCiBKU0FycmF5KiBjb25zdHJ1Y3RB
cnJheVdpdGhTaXplUXVpcmsoSlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxl
KiwgSlNWYWx1ZSBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKTsKIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0Fy
cmF5U2xvdyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0FycmF5U2xvdyk7CiBib29sIGlz
QXJyYXlTbG93KEpTR2xvYmFsT2JqZWN0KiwgUHJveHlPYmplY3QqIGFyZ3VtZW50KTsKIAogLy8g
RVM2IDcuMi4yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKaW5kZXggOTEwYTk5ZjkyN2U4MGVjM2U5YjI0ZDg3NGZkZDc2ZjE2NGY4YjgxNC4u
MDE3MmQyYWE1YTVlODkwOTY5NTA2OTc2MTIwZjhmN2QzYWI1OTlkYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtNDAsMTkgKzQw
LDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNKb2luKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFy
cmF5UHJvdG9GdW5jS2V5cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNQb3AoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1NoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNTcGxpY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSW5kZXhP
ZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJp
bmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0pvaW4pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0tleXMpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0VudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihhcnJheVByb3RvRnVuY1BvcCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFy
cmF5UHJvdG9GdW5jUHVzaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9G
dW5jUmV2ZXJzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU2hp
ZnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NsaWNlKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNTcGxpY2UpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1VuU2hpZnQpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihhcnJheVByb3RvRnVuY0luZGV4T2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFycmF5UHJvdG90eXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IApAQCAtMjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHN0ZDo6cGFpcjxTcGVj
aWVzQ29uc3RydWN0UmVzdWx0LCBKU09iamVjdCo+IHNwZWNpZXNDb25zdHJ1CiAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKFNwZWNpZXNDb25zdHJ1Y3RSZXN1bHQ6OkNyZWF0ZWRPYmplY3QsIG5l
d09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNTcGVjaWVzQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU3BlY2ll
c0NyZWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTkwLDcgKzU5MCw3IEBAIGlubGluZSBi
b29sIGNhblVzZURlZmF1bHRBcnJheUpvaW5Gb3JUb1N0cmluZyhWTSYgdm0sIEpTT2JqZWN0KiB0
aGlzT2JqZWN0KQogICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmlzT3JpZ2luYWxBcnJheVN0cnVj
dHVyZShzdHJ1Y3R1cmUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb1N0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjczLDcgKzY3Myw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoam9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NzY2LDcgKzc2Niw3IEBAIHN0YXRpYyBKU1ZhbHVlIHNsb3dKb2luKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1N0CiAgICAgcmV0dXJuIHI7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNKb2luKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jSm9pbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtODM3LDIyICs4MzcsMjIgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNyZWF0ZUFycmF5SXRl
cmF0b3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qt
PmFycmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgdGhpc09iamVjdCwganNOdW1iZXIoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGtpbmQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5UHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
VmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihhcnJheVByb3RvRnVuY0VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUFycmF5SXRlcmF0b3JP
YmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jS2V5cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0tleXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUFy
cmF5SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6
OktleXMpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5j
UG9wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jUG9wLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC04OTEsNyArODkxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1BvcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJv
dG9GdW5jUHVzaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTI2LDcgKzkyNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihu
ZXdMZW5ndGgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RnVuY1JldmVyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNSZXZlcnNlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDI5LDcgKzEwMjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NoaWZ0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MDU1LDcgKzEwNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9G
dW5jU2hpZnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU2xp
Y2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJv
dG90eXBlLnNsaWNlCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTExNyw3
ICsxMTE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Ns
aWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNTcGxpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNTcGxpY2Us
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgLy8gMTUuNC40LjEyCiAKQEAgLTEyMjQsNyArMTIyNCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVW5TaGlmdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTM1OSw3ICsxMzU5LDcgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGZhc3RJbmRleE9mKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNBcnJheSoKICAgICB9CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTM5OSw3ICsxMzk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihh
cnJheVByb3RvRnVuY0xhc3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTQ3LDcg
KzE1NDcsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgY29weUVsZW1lbnRzKFQqIGJ1ZmZlciwgdW5z
aWduZWQgb2Zmc2V0LCBUKiBzb3VyY2UsIHVuc2lnbmVkCiAgICAgICAgIGNsZWFyRWxlbWVudDxU
PihidWZmZXJbaSArIG9mZnNldF0pOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNDb25jYXRNZW1jcHkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
YXJyYXlQcm90b1ByaXZhdGVGdW5jQ29uY2F0TWVtY3B5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJhbWUt
PmFyZ3VtZW50Q291bnQoKSA9PSAyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0xNjM0LDcgKzE2MzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweShKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXJyYXlQcm90b1ByaXZhdGVGdW5jQXBwZW5kTWVtY3B5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKSA9PSAzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggNTNlZjY5YTU0ODJkZWVlMmU5NTUxZjhhYTgz
MzZjYmE3ZmZkMzcxNy4uZDZkMDgxNDYyNDliN2FjMzdmZGY4NGYxMjI4YWZkOGUyODllM2YxOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBA
IC00OSwxMCArNDksMTAgQEAgY2xhc3MgQXJyYXlQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNB
cnJheSB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoQXJyYXlQcm90
b3R5cGUsIEFycmF5UHJvdG90eXBlOjpCYXNlKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1NwZWNpZXNDcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmlu
ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNDb25jYXRN
ZW1jcHkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b1ByaXZhdGVGdW5jQXBwZW5kTWVtY3B5KEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
U3BlY2llc0NyZWF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
VG9TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1ZhbHVl
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9Qcml2YXRlRnVuY0NvbmNh
dE1lbWNweSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9Qcml2YXRlRnVu
Y0FwcGVuZE1lbWNweSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMzFhOGYyM2ZkNjk5ZTdmNTRkMjNlZThhMjE3NWM5ZGIyNzM3ZDVlMy4uZjdmYWM1OGJj
NDk4YmUwY2QyY2E0NGQ1ZTNmYTJiZDA2MTFjZjYwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBA
IC0zNiwxMyArMzYsMTYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxF
KEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkFzeW5jRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jRnVuY3Rpb25Db25z
dHJ1Y3RvcikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFz
eW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdz
KGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlv
bihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2Rl
OjpBc3luYykpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmMsIGNh
bGxGcmFtZS0+bmV3VGFyZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDA0ZDgzODk5NmJhM2E0MzBhZjEzZDIyYzVmMTRiY2NkZjE4M2EzYWYuLjA3MDI0
MDkwNGYyOWMxODdhZTM2NjZlNzA5NWVmMWViOTAwNGFjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMTMgKzM2LDE2IEBAIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Ip
OwogCiBjb25zdCBDbGFzc0luZm8gQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxB
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBhcmdzLCBG
dW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jR2VuZXJhdG9yKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3luY0dlbmVyYXRvciwg
Y2FsbEZyYW1lLT5uZXdUYXJnZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BdG9taWNzT2JqZWN0LmNwcAppbmRleCA0YTc1NzVmYjU5ODMzNWM2OGUxMTAwZjAzNzI4
MTY4OGM4NDY1ZjhiLi5kZjYzY2E0Y2U4ZDQ1ZjRmZDhmYTA1NmViZDRkM2NjZDFjNGY4ODQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcApA
QCAtNTAsOCArNTAsOCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUo
QXRvbWljc09iamVjdCk7CiAgICAgbWFjcm8od2FrZSwgV2FrZSwgMykgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oeG9yLCBYb3IsIDMp
CiAKLSNkZWZpbmUgREVDTEFSRV9GVU5DX1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1lLCBjb3Vu
dCkgICAgICAgICAgICAgICAgIFwKLSAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0
b21pY3NGdW5jICMjIHVwcGVyTmFtZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworI2Rl
ZmluZSBERUNMQVJFX0ZVTkNfUFJPVE8obG93ZXJOYW1lLCB1cHBlck5hbWUsIGNvdW50KSAgXAor
ICAgIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmMgIyMgdXBwZXJOYW1lKTsK
IEZPUl9FQUNIX0FUT01JQ1NfRlVOQyhERUNMQVJFX0ZVTkNfUFJPVE8pCiAjdW5kZWYgREVDTEFS
RV9GVU5DX1BST1RPCiAKQEAgLTMxMiw1MiArMzEyLDUyIEBAIEVuY29kZWRKU1ZhbHVlIGlzTG9j
a0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmcpCiAKIH0gLy8g
YW5vbnltb3VzIG5hbWVzcGFjZQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21p
Y3NGdW5jQWRkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jQWRkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQWRkRnVu
YygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY0FuZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0FuZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFuZEZ1bmMoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNDb21wYXJlRXhjaGFuZ2Uo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNDb21wYXJlRXhjaGFuZ2UsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBDb21w
YXJlRXhjaGFuZ2VGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0
b21pY3NGdW5jRXhjaGFuZ2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNFeGNoYW5n
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIEV4Y2hhbmdlRnVuYygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhdG9taWNzRnVuY0lzTG9ja0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNJ
c0xvY2tGcmVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBpc0xvY2tGcmVlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LT5hcmd1bWVudCgwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWlj
c0Z1bmNMb2FkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jTG9hZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIExvYWRG
dW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jT3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNPciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIE9yRnVuYygpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY1N0b3JlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGF0b21pY3NGdW5jU3RvcmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldp
dGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdG9yZUZ1bmMoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNTdWIoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXRvbWljc0Z1bmNTdWIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdWJGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jV2FpdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNz
RnVuY1dhaXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQyNyw3ICs0MjcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jV2FpdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0s
IHJlc3VsdFN0cmluZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21p
Y3NGdW5jV2FrZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1dha2UsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTQ1OSw3ICs0NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGF0b21pY3NGdW5jV2FrZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoUGFya2luZ0xvdDo6dW5wYXJrQ291
bnQocHRyLCBjb3VudCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9t
aWNzRnVuY1hvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1hvciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFhvckZ1
bmMoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJ
bnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYmVkZmM5NzRiOTY0NWNmYWY1ODViMWNhZDI4ZTRlNDE1NmY4
MGIzNC4uYWRlN2QxMThhYTJhYTFjOGQ5ODQzYjBkMTJlOGRiYTBmNDEyY2YyMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcApA
QCAtMzQsOCArMzQsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50Q29uc3RydWN0b3JGdW5jQXNVaW50TihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YmlnSW50Q29uc3RydWN0b3JGdW5jQXNJbnROKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1bmNB
c1VpbnROKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludENvbnN0cnVj
dG9yRnVuY0FzSW50Tik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkBAIC01NCw3ICs1NCw3IEBA
IGNvbnN0IENsYXNzSW5mbyBCaWdJbnRDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCAmYmlnSW50CiBAZW5kCiAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsQmlnSW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxCaWdJbnRD
b25zdHJ1Y3Rvcik7CiAKIEJpZ0ludENvbnN0cnVjdG9yOjpCaWdJbnRDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBjYWxsQmlnSW50Q29uc3RydWN0b3IsIG51bGxwdHIpCkBAIC0xMDIsNyArMTAyLDcg
QEAgSlNWYWx1ZSB0b0JpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IGFyZ3VtZW50KQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQmlnSW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbEJpZ0ludENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MjksNyArMTI5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEJp
Z0ludENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0JpZ0ludChnbG9iYWxPYmplY3QsIHByaW1p
dGl2ZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRDb25zdHJ1
Y3RvckZ1bmNBc1VpbnROKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludENvbnN0cnVjdG9yRnVu
Y0FzVWludE4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0OSw3ICsxNDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludENvbnN0cnVjdG9yRnVuY0FzVWludE4oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKEpTQmlnSW50Ojphc1VpbnROKGdsb2JhbE9iamVjdCwgbnVtYmVyT2ZCaXRzLCBiaWdJ
bnQuYXNIZWFwQmlnSW50KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YmlnSW50Q29uc3RydWN0b3JGdW5jQXNJbnROKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludENv
bnN0cnVjdG9yRnVuY0FzSW50TiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5jcHAKaW5kZXggMWQ4ZmMwMDI0
YTE5NzgxZTNiYmY3ZGQzMmIyYjE0ZmMwMGIxMDljNi4uOWRjMGZlMmI2MDQ3ZmIyZTk4NTkwNWYy
ZGU2MzEzYzI3ZDJkMDg4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQmlnSW50UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9CaWdJbnRQcm90b3R5cGUuY3BwCkBAIC0zOCw5ICszOCw5IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1bmNU
b1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJpZ0ludFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVuY1RvU3RyaW5nKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVu
Y1ZhbHVlT2YpOwogCiB9CiAKQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElO
RSBKU0JpZ0ludCogdG9UaGlzQmlnSW50VmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGJpZ0ludFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFBy
b3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjcsNyArMTI3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKIH0KIAogLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gc2hv
dWxkIGludHJvZHVjZSB0aGUgcmlnaHQgc2VwYXJhdG9ycyBmb3IgdGhvdXNhbmRzIGFuZCBzaW1p
bGFyIHRoaW5ncy4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYmlnSW50UHJvdG9GdW5jVG9Mb2Nh
bGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0KGdsb2JhbE9iamVjdCwgdmFsdWUpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAppbmRleCAyNjQ4MDllNGYzYWEwNjU0OTUxYjgzZWE1NTM5MDdmMGU2NDQ1MGZj
Li4wMGY4NWIzMTdmZDEwNTY1ZDRlODY2NDFmOTczYjQ1ZTY0YzMxMzJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKQEAg
LTMwLDE0ICszMCwxNyBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUo
Qm9vbGVhbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEJvb2xlYW5Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEJvb2xlYW5Db25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEJvb2xlYW5Db25zdHJ1Y3Rvcik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9y
KTsKKwogLy8gRUNNQSAxNS42LjEKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxCb29sZWFuQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEJvb2xlYW5D
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpKSk7CiB9CiAKIC8vIEVDTUEg
MTUuNi4yCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRo
Qm9vbGVhbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhCb29s
ZWFuQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5kZXggMDI1MjY1NzRmM2Iw
YzE5ZGUyNzI1OWUzYTBkMjZkM2JlZWJjZTNmMS4uYmI0YTQ1OWM2NWIyNTA0MDE4NmYyM2I4OWJl
MGUzZDJlYjc1YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTI2LDggKzI2LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNU
b1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvb2xlYW5Q
cm90b0Z1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib29s
ZWFuUHJvdG9GdW5jVmFsdWVPZik7CiAKIH0KIApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEJvb2xl
YW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib29sZWFuUHJvdG9GdW5jVG9TdHJp
bmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg0LDcgKzg0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy50cnVl
U3RyaW5nKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90
b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9m
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVPYmplY3QuY3BwCmluZGV4IGM1M2U0ZTI3NjhmZGZiMjFiMDg1MzJmNDdlNzAwZjI3
ZGEzNTBjZWIuLmNiZTliM2Q4OGM2YjhkNjVhMGVhODY1ZDMzM2ZlMjQ0NzA1ZjcwMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCkBAIC00
NywzMiArNDcsMzIgQEAgc3RhdGljIFN0cmluZyB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSoKIAogU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKENvbnNvbGVPYmplY3QpOwogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGVidWcoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNFcnJvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0xvZyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0luZm8oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNXYXJuKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNE
aXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNEaXJYTUwoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNUYWJsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jQXNzZXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ291bnQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudFJlc2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
UHJvZmlsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
VGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVMb2coSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUaW1lRW5kKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91
cENvbGxhcHNlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jUmVjb3JkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkRW5k
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3Rv
RnVuY0RlYnVnKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jTG9nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNJbmZvKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNXYXJuKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNDbGVhcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jRGlyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNEaXJYTUwpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVBy
b3RvRnVuY1RhYmxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQ
cm90b0Z1bmNUcmFjZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xl
UHJvdG9GdW5jQXNzZXJ0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNv
bGVQcm90b0Z1bmNDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25z
b2xlUHJvdG9GdW5jQ291bnRSZXNldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZSk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZUxvZyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZUVuZCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXBD
b2xsYXBzZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQ
cm90b0Z1bmNSZWNvcmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29s
ZVByb3RvRnVuY1JlY29yZEVuZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdCk7CiAKIGNvbnN0IENsYXNzSW5mbyBDb25zb2xlT2Jq
ZWN0OjpzX2luZm8gPSB7ICJjb25zb2xlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShDb25zb2xlT2JqZWN0KSB9OwogCkBAIC0xMzcsMzIgKzEz
NywzMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY29uc29sZUxvZ1dpdGhMZXZlbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNEZWJ1ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jRGVidWcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNvbnNvbGVMb2dXaXRoTGV2ZWwoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIE1lc3NhZ2VMZXZlbDo6RGVidWcpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjb25zb2xlTG9nV2l0aExl
dmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNzYWdlTGV2ZWw6OkVycm9yKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0xvZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jTG9nLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjb25z
b2xlTG9nV2l0aExldmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNzYWdlTGV2ZWw6Okxv
Zyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNJbmZvKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNJbmZvLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBjb25zb2xlTG9nV2l0aExldmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNz
YWdlTGV2ZWw6OkluZm8pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jV2FybihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9G
dW5jV2FybiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxvZ1dpdGhMZXZlbChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29s
ZVByb3RvRnVuY0NsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xl
Q2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0xNzIsNyArMTcyLDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jRGlyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNEaXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29u
c29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAg
aWYgKCFjbGllbnQpCkBAIC0xODIsNyArMTgyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyWE1MKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNEaXJYTUwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNsaWVu
dCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGll
bnQpCkBAIC0xOTIsNyArMTkyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0RpclhNTChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY1RhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9
IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpAQCAtMjAy
LDcgKzIwMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNv
bGVQcm90b0Z1bmNUcmFjZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmpl
Y3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTIxMiw3ICsyMTIsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVHJh
Y2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNBc3NlcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y0Fzc2VydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0NvdW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNDb3VudCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwog
ICAgIGF1dG8qIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwpAQCAtMjQ0
LDcgKzI0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNDb3VudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICBhdXRvKiBjbGllbnQgPSBnbG9iYWxP
YmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ291bnRSZXNldChKU0dsb2Jh
bE9iamVjdCogZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQ
cm9maWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNzksNyArMjc5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUoSlNHbG9iYWxPYmplY3QqIGds
b2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVu
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEpTR2xvYmFsT2JqZWN0KiBn
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNo
b3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdChK
U0dsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNU
aW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUaW1lLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0
byogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CkBAIC0zMzUsNyArMzM1
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y1RpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jVGltZUxvZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jVGltZUxvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9i
YWxPYmplY3QtPnZtKCkpOwogICAgIGF1dG8qIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29s
ZUNsaWVudCgpOwpAQCAtMzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVFbmQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICBhdXRvKiBjbGll
bnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVu
ZChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNv
bGVQcm90b0Z1bmNUaW1lU3RhbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y1RpbWVTdGFtcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNv
bnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1w
KEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNHcm91cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50
KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0zODMsNyArMzgzLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3Jv
dXBDb2xsYXBzZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0dyb3VwQ29s
bGFwc2VkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29s
ZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpAQCAtMzkzLDcgKzM5Myw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNl
ZChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cEVu
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGll
bnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQoSlNHbG9iYWxP
YmplY3QqIGdsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNS
ZWNvcmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1JlY29yZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBD
b25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAg
ICBpZiAoIWNsaWVudCkKQEAgLTQxMyw3ICs0MTMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRFbmQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1JlY29yZEVuZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25z
b2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBp
ZiAoIWNsaWVudCkKQEAgLTQyMyw3ICs0MjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkRW5kKEpTR2xvYmFsT2JqZWN0KiBnbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNTY3JlZW5zaG90KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNTY3JlZW5zaG90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlm
ICghY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggNWZkMGVhN2Q3NzU0MGE4YTEzZmY0NDgzZWVjZDRiMjQwMzU1MWQ4
My4uNjg3ZmU3OTdlZGEwNzE5ZDY1MDA4ZjFiOWFiYWUyNmM1ODMwN2UxOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC0zMCw5
ICszMCw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQYXJzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlVVRDKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVOb3coSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVBhcnNlKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVVUQyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVOb3cpOwogCiB9CiAKQEAgLTUyLDggKzUyLDggQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmYK
IAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKERhdGVDb25zdHJ1Y3Rv
cik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsRGF0ZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9y
KTsKIAogRGF0ZUNvbnN0cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbERh
dGUsIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IpCkBAIC0xMzUsMTQgKzEzNSwxNCBAQCBK
U09iamVjdCogY29uc3RydWN0RGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIG5ld1RhcmdldCwgY29uc3QgQQogICAgIHJldHVybiBEYXRlSW5zdGFuY2U6OmNyZWF0ZSh2
bSwgZGF0ZVN0cnVjdHVyZSwgdmFsdWUpOwogfQogICAgIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhj
YWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RGF0ZShnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCksIGFyZ3MpKTsKIH0KIAogLy8gRUNNQSAx
NS45LjIKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbERhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgR3JlZ29yaWFuRGF0
ZVRpbWUgdHM7CkBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgZm9ybWF0RGF0
ZVRpbWUodHMsIERhdGVUaW1lRm9ybWF0RGF0ZUFuZFRpbWUsIGZhbHNlKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQYXJzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihk
YXRlUGFyc2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NCwxMiArMTY0LDEyIEBAIEpTVmFs
dWUgZGF0ZU5vd0ltcGwoKQogICAgIHJldHVybiBqc051bWJlcihqc0N1cnJlbnRUaW1lKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVOb3coSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVOb3csIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoanNDdXJyZW50VGltZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlVVRDLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGRvdWJsZSBtcyA9
IG1pbGxpc2Vjb25kc0Zyb21Db21wb25lbnRzKGdsb2JhbE9iamVjdCwgQXJnTGlzdChjYWxsRnJh
bWUpLCBXVEY6OlVUQ1RpbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
dGltZUNsaXAobXMpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwCmluZGV4IDk1NTYzZDA5ODQ2MmNjNTg3YWU1NDhhMGFhYTVjM2NlODIzNmJl
OWIuLjExMjJhOWYyYmVlYzRkNDE2NjQwN2U4MmJhMWE3NWVkMDIzMTBiNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0zOCw0NyAr
MzgsNDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldERhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERheShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRNaWxsaVNlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldE1vbnRoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRUaW1lem9uZU9mZnNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VVRDSG91cnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0VVRDTWludXRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFllYXIoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1NldERhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRIb3VycyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRNb250aChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0
U2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRGF0
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0hv
dXJzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1Nl
dFVUQ01pbnV0ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNT
ZXRVVENTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0Rh
dGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNU
b1VUQ1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9JU09TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1Rv
SlNPTihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRlUHJvdG9GdW5jR2V0RGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNHZXREYXkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jR2V0RnVsbFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5j
R2V0SG91cnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TWls
bGlTZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1p
bnV0ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TW9udGgp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0RheSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENNb250aCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihkYXRlUHJvdG9GdW5jU2V0RGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNTZXRIb3Vycyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90
b0Z1bmNTZXRNaWxsaVNlY29uZHMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jU2V0TWludXRlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1
bmNTZXRNb250aCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRT
ZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFRpbWUp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDRGF0ZSk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENGdWxsWWVhcik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENIb3Vycyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTWludXRlcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENNb250aCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENTZWNvbmRzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFllYXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9EYXRlU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvVGltZVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGVQcm90b0Z1bmNUb1VUQ1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNUb0pTT04pOwogCiB9CiAKQEAgLTI4NywxOSArMjg3LDE5IEBAIHZvaWQg
RGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogCiAvLyBGdW5jdGlvbnMKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVu
Y1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIGNvbnN0IGJvb2wgYXNVVENWYXJpYW50ID0gZmFsc2U7CiAgICAgcmV0
dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIERhdGVUaW1l
Rm9ybWF0RGF0ZUFuZFRpbWUsIGFzVVRDVmFyaWFudCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvVVRDU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNUb1VUQ1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBjb25zdCBib29sIGFzVVRDVmFyaWFudCA9
IHRydWU7CiAgICAgcmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIERhdGVUaW1lRm9ybWF0RGF0ZUFuZFRpbWUsIGFzVVRDVmFyaWFudCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzM2LDE5ICszMzYsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jVG9JU09TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgU3RyaW5nKGJ1ZmZl
ciwgY2hhcmFjdGVyc1dyaXR0ZW4pKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jVG9EYXRlU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIGNvbnN0IGJvb2wgYXNVVENWYXJpYW50ID0gZmFsc2U7
CiAgICAgcmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IERhdGVUaW1lRm9ybWF0RGF0ZSwgYXNVVENWYXJpYW50KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgY29uc3QgYm9vbCBhc1VUQ1Zhcmlh
bnQgPSBmYWxzZTsKICAgICByZXR1cm4gZm9ybWF0ZURhdGVJbnN0YW5jZShnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgRGF0ZVRpbWVGb3JtYXRUaW1lLCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2wsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTM3MSw3ICszNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChKU0dsb2JhbE9iamVjdCogZ2xv
YgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmpl
Y3QtPm9yZGluYXJ5VG9QcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCB0eXBlKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRUaW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
ODMsNyArMzgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIodGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zOTgsNyArMzk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MTMsNyArNDEzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRh
dGVUaW1lLT55ZWFyKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0TW9udGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1v
bnRoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MjgsNyArNDI4LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9udGgoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT5tb250aCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1
bmNHZXRVVENNb250aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDQzLDcgKzQ0Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNHZXREYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NTgsNyArNDU4LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDczLDcg
KzQ3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q0RhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldERheSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDg4
LDcgKzQ4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dERheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RheShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDRGF5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC01MDMsNyArNTAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5KCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0SG91cnMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEhvdXJzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01MTgsNyArNTE4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC01MzMsNyArNTMzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1l
LT5ob3VyKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0TWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TWludXRl
cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTQ4LDcgKzU0OCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5E
YXRlVGltZS0+bWludXRlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jR2V0VVRDTWludXRlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTYzLDcgKzU2Myw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTc4LDcg
KzU3OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNl
Y29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNTkzLDcgKzU5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWls
bGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29u
ZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYxMiw3ICs2MTIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nh
c3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MzEsNyAr
NjMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
TWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1zKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTY0Niw3ICs2NDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVUaW1lLT51dGNP
ZmZzZXRJbk1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1NldFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFRp
bWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0Nyw3NyArNzQ3LDc3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBzZXROZXdWYWx1ZUZyb21EYXRlQXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TWls
bGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29u
ZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCAxLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1
ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMSwgV1RGOjpVVENUaW1lKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0U2Vjb25k
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0U2Vjb25kcywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDIsIFdU
Rjo6TG9jYWxUaW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jU2V0VVRDU2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0
VVRDU2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIDIsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZGF0ZVByb3RvRnVuY1NldE1pbnV0ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVB
cmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAzLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAzLCBXVEY6
OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRIb3VycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0SG91cnMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCA0LCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1NldFVUQ0hvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1
bmNTZXRVVENIb3VycywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIDQsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZGF0ZVByb3RvRnVuY1NldERhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbURhdGVBcmdz
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAxLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1Zh
bHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAxLCBXVEY6OlVUQ1RpbWUp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRNb250
aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0TW9udGgsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IHNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAyLCBXVEY6
OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY1NldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENN
b250aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIDIsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNTZXRGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3Mo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDMsIFdURjo6TG9jYWxUaW1lKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ0Z1bGxZZWFyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
ZXROZXdWYWx1ZUZyb21EYXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMywgV1RGOjpV
VENUaW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
U2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0WWVhciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtODYyLDcgKzg2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRZZWFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04
NzksNyArODc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSAtIDE5MDApKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9KU09OKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb0pTT04sIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAppbmRleCBl
ZWFhZDM3Y2I0YTViNmM1NjE3Yjk3NjE3MjlhMDA2MjU5NzM5ZTdlLi41NzhjZDI4NTIzOGNkNmUy
MmE0NzQ3NDQwNmRhYjU4ZTQ4MDc0NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5oCkBAIC01Nyw2ICs1Nyw2IEBAIGNsYXNzIERhdGVQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRUaW1lKTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGJjMGE2MjI2MjYxY2U0ZGRhN2M5NzcwNWFiMDA0ZDBk
NjE5ZTNjZWUuLjBmMmY1YTMxODQwMmZiYjdjN2Q4ODAyYjZkNzg0MmVmZTQwNmM4NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC0zMCw4ICszMCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShFcnJvckNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9yQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShFcnJvckNvbnN0cnVjdG9yKSB9OwogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0RXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJyb3JDb25zdHJ1Y3Rvcik7
CiAKIEVycm9yQ29uc3RydWN0b3I6OkVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEVy
cm9yQ29uc3RydWN0b3IsIGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpCkBAIC00OCw3ICs0OCw3
IEBAIHZvaWQgRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBFcnJvclBy
b3RvdHlwZSogZXJyb3JQcm90b3R5cGUpCiAKIC8vIEVDTUEgMTUuOS4zCiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0RXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC02Myw3ICs2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBm
YWxzZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBK
U1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggZTFh
YjU1YmE0Y2Y0ZGEwYjRjN2E0YjU2MDRhYWQ1MDgxYjg0OTFhNS4uYjhjNjJkMzc1OTk1NTRlZDU3
NzVkM2Y2OTk0YmI5YTE2OWFjMjEzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShFcnJvclByb3RvdHlw
ZUJhc2UpOwogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEVycm9yUHJv
dG90eXBlKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZXJyb3JQcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZXJyb3JQcm90b0Z1bmNUb1N0cmluZyk7CiAKIH0KIApAQCAt
NjcsNyArNjcsNyBAQCBFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5j
dGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEtMjYyIDUuMSwgMTUu
MTEuNC40Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJvdG9GdW5jVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZXJyb3JQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmlu
YWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcAppbmRleCBkN2M0MzQy
OTBjNGQwNDg1MDY1ZDJiMjA5ZGQ3OGU2N2Q0YmMxOGU1Li5iYWJlNGRlMTljYTMzZjlkYTU4Mjgy
OWE5OTEwYzdkNWZiMGEzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcApA
QCAtNDUsMjIgKzQ1LDIyIEBAIHZvaWQgRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBGaW5hbGl6YXRpb25SZWdpc3RyCiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90
eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxGaW5hbGl6YXRpb25S
ZWdpc3RyeSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RGaW5h
bGl6YXRpb25SZWdpc3RyeSk7CiAKIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3I6OkZp
bmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEZpbmFsaXphdGlvblJlZ2lzdHJ5LCBj
b25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3RyeSkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZpbmFsaXphdGlvblJlZ2lzdHJ5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bEZpbmFsaXphdGlvblJlZ2lzdHJ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIkZpbmFsaXphdGlvblJlZ2lzdHJ5IikpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3Ry
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3RyeSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGUuY3BwCmluZGV4IDYxMWY5
ZjhmNjkzMDE3ZGRmMzlmOGZiNDc0NTg0OTNkYzk5MGI4ODAuLmY4YjFmN2VmNDQ5YTA1NjMwZGUy
NTU2ZTM1Y2QzMDRiNmFjYTU2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ZpbmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeVByb3RvdHlwZS5jcHAKQEAg
LTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBGaW5hbGl6
YXRpb25SZWdpc3RyeVByb3RvdHlwZTo6c19pbmZvID0geyAiRmluYWxpemF0aW9uUmVnaXN0cnki
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVVucmVnaXN0ZXIoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3Rv
RnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJlZ2lzdGVyKTsKIAog
dm9pZCBGaW5hbGl6YXRpb25SZWdpc3RyeVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtNjUsNyArNjUsNyBAQCBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBKU0ZpbmFsaXphdGlvblJlZ2lzdHJ5KiBnZXRGaW5hbGl6YXRpb25S
ZWdpc3RyeShWTSYgdm0sIEpTRwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlSZWdpc3Rl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODksNyArODksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVVucmVnaXN0
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJl
Z2lzdGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGNiM2E4ZTNmZGI2Mjdj
ZTNlYmUzYTVjMDg1MzAxM2U5ZmQ1YTYzYzkuLjAzOTg1YzU5NTY3MzQ0NTIwY2VlZGFiNDZlYWJi
NDYyMmQzNDQ3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNywxNCArMzcsMTcgQEAgU1RBVElDX0FTU0VS
VF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25z
dCBDbGFzc0luZm8gRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0
aW9uQ29uc3RydWN0b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IpOworCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJn
TGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1
Y3Rpb25Nb2RlOjpGdW5jdGlvbiwgY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSkpOwogfQogCiAvLyBF
Q01BIDE1LjMuMSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvbkNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFy
Z0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3Ry
dWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCBh
NmYwZDVhMzhhYjRlMDg1NmM2NmMwMjVkMTE0YTIwY2Y0YjYyZDk3Li4zMzI4ZGY2Y2MzOTdhMDVj
MzAxYTU5YjZiOWNjZTgyMjQwOWZjM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC0zMiwxMCArMzIsMTEgQEAgU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9uUHJvdG90eXBlKTsK
IAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
RnVuY3Rpb25Qcm90b3R5cGUpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJvdG9GdW5jVG9T
dHJpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEZ1bmN0aW9uUHJv
dG90eXBlKTsKIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9wZXJ0aWVzLW9m
LXRoZS1mdW5jdGlvbi1wcm90b3R5cGUtb2JqZWN0Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvblByb3RvdHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KQEAgLTcxLDcgKzcyLDcgQEAgdm9pZCBGdW5jdGlvblByb3Rv
dHlwZTo6aW5pdFJlc3RyaWN0ZWRQcm9wZXJ0aWVzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE8KICAgICBwdXREaXJlY3ROb25JbmRleEFjY2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cywgZXJyb3JHZXR0ZXJTZXR0ZXIsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGRhNGEzYWQ5YTRhNmNj
NTY5ZGM0MWM0ZThkYjZkMDM1NWQ3MGVmMjQuLjdmYTNiMjExNjIzNjg3YzFhOTliMzU1MThkMmI0
ZDA0MjdkNDc3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiwxMyArMzYs
MTYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEdlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiR2VuZXJhdG9yRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CisK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBhcmdzLCBGdW5j
dGlvbkNvbnN0cnVjdGlvbk1vZGU6OkdlbmVyYXRvcikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVu
Y3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpHZW5lcmF0b3IsIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwCmluZGV4IGE4NWYzM2JiNmQyOTQyZjhi
MTY3MzExYjc5MjMwNTgyY2EwMTQ5N2IuLmQwMmMyYzY4ZWQ3YjAzZWNmZDg1MzJmNDY2ZjNjMzMw
MTRkNjJlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcApAQCAtMzEsNyArMzEs
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBp
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0TG9nKTsKIAogfQogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0OjpkaXNhYmxlKFZNJiB2bSkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdExvZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3RMb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAppbmRleCA0NDRkNTIz
MzhhYWZkYjVkMDRjYWQ1NzM0OTVkMThlZjg3M2Q5NWM2Li5iYWJiYTUxYzQ2MDdkYWQyY2FkNjc2
ZmM5Nzc5NTVjMWE1M2E1MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCkBAIC0zNyw3ICszNyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElC
TEUoSW50bENvbGxhdG9yQ29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2Yo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKEludGxDb2xsYXRvckNvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZik7CiAK
IH0KIApAQCAtNDUsOCArNDUsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzTwogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxD
b2xsYXRvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSW50bENv
bGxhdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxD
b2xsYXRvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmY29sbGF0b3JD
b25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGxDb2xsYXRv
ckNvbnN0cnVjdG9yKSB9OwogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgSW50bENvbGxhdG9yQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bENvbGxhdG9yUHJvdG90eXBlKiBj
b2xsCiAgICAgY29sbGF0b3JQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0SW50bENvbGxhdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDMs
NyArMTAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNvbGxhdG9yKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbEludGxDb2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSW50bENvbGxhdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIC8vIDEwLjEuMiBJbnRsLkNvbGxhdG9yIChbbG9jYWxlcyBbLCBvcHRpb25zXV0pIChF
Q01BLTQwMiAyLjApCiAgICAgLy8gMS4gSWYgTmV3VGFyZ2V0IGlzIHVuZGVmaW5lZCwgbGV0IG5l
d1RhcmdldCBiZSB0aGUgYWN0aXZlIGZ1bmN0aW9uIG9iamVjdCwgZWxzZSBsZXQgbmV3VGFyZ2V0
IGJlIE5ld1RhcmdldC4KQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsSW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3IpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvckNvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExv
Y2FsZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNT
dXBwb3J0ZWRMb2NhbGVzT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwCmluZGV4
IDZhNzk4M2Q4ZWIxMDRmZTY1MGRmN2ViZDcyOTY3NDA5Y2Y4MGM0M2MuLjA0Y2NkYzA2ZWUzMzQy
ZjU4ODZlYTM5OWFkNjRhMWM4M2M0YzRlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcApAQCAtMzMsOCArMzMs
OSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENv
bGxhdG9yUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bENvbGxhdG9yUHJv
dG90eXBlR2V0dGVyQ29tcGFyZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJ
bnRsQ29sbGF0b3JQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxDb2xsYXRvckZ1bmNDb21wYXJlKTsKIAogfQogCkBAIC03
NSw3ICs3Niw3IEBAIHZvaWQgSW50bENvbGxhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvckZ1bmNDb21w
YXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxDb2xsYXRvckZ1bmNDb21wYXJlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMDQsNyArMTA1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bENvbGxhdG9yRnVuY0NvbXBhcmUoSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjb2xsYXRvci0+
Y29tcGFyZVN0cmluZ3MoZ2xvYmFsT2JqZWN0LCB4Vmlld1dpdGhTdHJpbmcudmlldywgeVZpZXdX
aXRoU3RyaW5nLnZpZXcpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRs
Q29sbGF0b3JQcm90b3R5cGVHZXR0ZXJDb21wYXJlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MzMsNyArMTM0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JQ
cm90b3R5cGVHZXR0ZXJDb21wYXJlKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYm91bmRDb21wYXJlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsQ29sbGF0b3JQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKEludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCA2Mzg4MjExYTI3
ZGM0YjJiYTk2Y2FlM2Q5OGYxMDYwNDM3ZWJkOTI3Li5kOTViZjFiM2JhNWQ4OTFkNTMxZjM3Y2M4
NDZjZGU3ZGQwZGY2NGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1
bmNTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
RnVuY1N1cHBvcnRlZExvY2FsZXNPZik7CiAKIH0KIApAQCAtNjQsOCArNjQsOCBAQCBTdHJ1Y3R1
cmUqIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxEYXRlVGlt
ZUZvcm1hdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbEludGxEYXRlVGltZUZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpOwogCiBJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSwgY2FsbEludGxEYXRlVGltZUZvcm1hdCwgY29uc3RydWN0SW50bERhdGVUaW1lRm9y
bWF0KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxEYXRlVGltZUZvcm1hdFBybwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGRh
dGVUaW1lRm9ybWF0UHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxE
YXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVG
b3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShkYXRlVGltZUZvcm1hdCk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRp
bWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxEYXRlVGltZUZvcm1hdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICAvLyAxMi4xLjIgSW50bC5EYXRlVGltZUZvcm1hdCAoW2xvY2FsZXMgWywgb3B0aW9uc11dKSAo
RUNNQS00MDIgMi4wKQogICAgIC8vIDEuIElmIE5ld1RhcmdldCBpcyB1bmRlZmluZWQsIGxldCBu
ZXdUYXJnZXQgYmUgdGhlIGFjdGl2ZSBmdW5jdGlvbiBvYmplY3QsIGVsc2UgbGV0IG5ld1Rhcmdl
dCBiZSBOZXdUYXJnZXQuCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEludGxEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNP
ZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggM2Q3
MDk3N2Q5YTE4ZTNiNzRkM2UwMTJmZjRhZDI0ZmEyNzBiMWMzYi4uMzMzYmZkZDU1ZGEyYmRlNWNj
ZmVkOGUwNDhhODMzOTA3Yjg1MTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC0z
NiwxMCArMzYsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRS
YW5nZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdEZ1bmNG
b3JtYXREYXRlVGltZSk7CiAKIH0KIApAQCAtODIsNyArODMsNyBAQCB2b2lkIEludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJ
TkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRGdW5jRm9ybWF0RGF0ZVRpbWUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oSW50bERhdGVUaW1lRm9ybWF0RnVuY0Zvcm1hdERhdGVUaW1lLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xMDQsNyArMTA1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0RnVuY0Zvcm1hdERhdGVUaW1lKEpTR2xv
YmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShmb3JtYXQt
PmZvcm1hdChnbG9iYWxPYmplY3QsIHZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNCw3ICsxMzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChKU0dsb2Jh
bE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYm91bmRGb3JtYXQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNG
b3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdFByb3Rv
dHlwZUZ1bmNGb3JtYXRUb1BhcnRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjEsNyArMTYy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2IKIH0KIAogLy8gaHR0cDovL3RjMzkuZXMvcHJv
cG9zYWwtaW50bC1EYXRlVGltZUZvcm1hdC1mb3JtYXRSYW5nZS8jc2VjLWludGwuZGF0ZXRpbWVm
b3JtYXQucHJvdG90eXBlLmZvcm1hdFJhbmdlCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE4Nyw3ICsxODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZShKU0dsb2Jh
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGRhdGVUaW1l
Rm9ybWF0LT5mb3JtYXRSYW5nZShnbG9iYWxPYmplY3QsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNwbGF5TmFt
ZXNDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlz
cGxheU5hbWVzQ29uc3RydWN0b3IuY3BwCmluZGV4IDVlMzVmZTY3ZmM2OTNhNzJhNmI4ODI2ZjJk
YWRiMDBhOWZjNmU5MmUuLjFiOTQ3YmFjZGU3YzI0OTRkOGQwODMyNjNkYTE1NTkwOTRjMWM1YWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNwbGF5TmFt
ZXNDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxEaXNw
bGF5TmFtZXNDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3RvclN1cHBvcnRlZExvY2FsZXNPZihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
SW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mKTsKIAogfQogCkBA
IC02Miw4ICs2Miw4IEBAIFN0cnVjdHVyZSogSW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludGxEaXNwbGF5TmFtZXMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bERpc3BsYXlOYW1l
cyk7CiAKIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvcjo6SW50bERpc3BsYXlOYW1lc0NvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUsIGNhbGxJbnRsRGlzcGxheU5hbWVzLCBjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKQpA
QCAtNzgsNyArNzgsNyBAQCB2b2lkIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBJbnRsRGlzcGxheU5hbWVzUHJvdG90eQogfQogCiAvLyBodHRwczov
L3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuRGlzcGxheU5hbWVzCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdEludGxEaXNwbGF5TmFtZXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTk4LDcgKzk4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2wKIH0KIAogLy8gaHR0cHM6
Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkRpc3BsYXlOYW1lcwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxs
SW50bERpc3BsYXlOYW1lcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0
b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IkRpc3BsYXlOYW1lcyIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
RGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oSW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEaXNwbGF5TmFtZXNQcm90b3R5cGUuY3BwCmluZGV4IGRhOGVjODBmNDI1MzVm
ZmQ2MGM5Mzk5Nzk0N2EyMDJkYTNmYjMxNzMuLjk1ZTZkZDk3NmU0NzVlOGMyZmQzZTNlM2JjMjlk
OWI4YjUyZTRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEaXNwbGF5TmFtZXNQcm90b3R5cGUuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxheU5hbWVz
UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERpc3BsYXlOYW1lc1Byb3Rv
dHlwZUZ1bmNPZik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsRGlzcGxh
eU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CiAKIH0KIApAQCAtNzQsNyArNzQs
NyBAQCB2b2lkIEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZGlzcGxheW5hbWVzLyNz
ZWMtSW50bC5EaXNwbGF5TmFtZXMucHJvdG90eXBlLm9mCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZUZ1bmNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtODcsNyArODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEaXNwbGF5
TmFtZXNQcm90b3R5cGVGdW5jT2YoSlNHbG9iYWxPYmplY3QqIGdsbwogfQogCiAvLyBodHRwczov
L3RjMzkuZXMvcHJvcG9zYWwtaW50bC1kaXNwbGF5bmFtZXMvI3NlYy1JbnRsLkRpc3BsYXlOYW1l
cy5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bExvY2FsZUNvbnN0cnVjdG9yLmNwcAppbmRleCAxOWY2MTIxMTRkZmFmZjlkNGYx
YmRiMmFkNjUzYzk4MDBlNTRhZWU3Li4xOGM0Y2JhNzM5YTc5NGFmNTMzNDE4Y2Q0NzhhYjU2NWM2
OWRlOThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9j
YWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxMb2NhbGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ4LDggKzQ4LDggQEAgU3RydWN0dXJlKiBJbnRs
TG9jYWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWwKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SW50bExvY2FsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bExvY2FsZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludGxM
b2NhbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bExv
Y2FsZSk7CiAKIEludGxMb2NhbGVDb25zdHJ1Y3Rvcjo6SW50bExvY2FsZUNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxJbnRsTG9jYWxlLCBjb25zdHJ1Y3RJbnRsTG9jYWxlKQpAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IEludGxMb2NhbGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBJbnRsTG9jYWxl
UHJvdG90eXBlKiBsb2NhbGVQcgogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2Vj
LUludGwuTG9jYWxlCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RJbnRsTG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxMb2NhbGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bExvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZQotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxMb2NhbGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsSW50bExvY2FsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCmluZGV4IDgwZTA3MDUwM2RlYzky
MWI2NDJhNzdlNDJhNzk1MDcyMTg4MjZmYmQuLjFlMWVlYjg2MzM1ZmI2MDk2NWJhOWMxMDNkNzg2
NDk3MjU3YTBiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxMb2NhbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCkBAIC0zMSwxOSArMzEsMTkgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQ
cm90b3R5cGVGdW5jTWF4aW1pemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWlu
aW1pemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlckNhbGVuZGFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVy
Q2FzZUZpcnN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlck51bWJlcmluZ1N5c3RlbShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRl
ckxhbmd1YWdlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJv
dG90eXBlRnVuY01heGltaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKElu
dGxMb2NhbGVQcm90b3R5cGVGdW5jTWluaW1pemUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQmFzZU5hbWUpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRl
ckNhbGVuZGFyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJO
dW1lcmljKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90
b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1YWdlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlclJl
Z2lvbik7CiAKIH0KIApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEludGxMb2NhbGVQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUubWF4aW1pemUKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNYXhpbWl6ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01heGltaXplLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xMTIsNyArMTEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9j
YWxlUHJvdG90eXBlRnVuY01heGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0
cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUubWluaW1pemUK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5p
bWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01pbmltaXpl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjgsNyArMTI4LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01pbmltaXplKEpTR2xvYmFsT2Jq
ZWN0KiBnbG8KIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2Fs
ZS5wcm90b3R5cGUudG9TdHJpbmcKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExv
Y2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxl
UHJvdG90eXBlRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDIsNyArMTQy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVu
Y1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2Vj
bWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUuYmFzZU5hbWUKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckJhc2VOYW1lKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTU2LDcgKzE1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckJhc2VOYW1lKEpTR2xvYmFsT2JqZWN0KiBnCiB9
CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBl
LmNhbGVuZGFyCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5
cGVHZXR0ZXJDYWxlbmRhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyQ2FsZW5kYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxl
bmRhcihKU0dsb2JhbE9iamVjdCogZwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8j
c2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5jYXNlRmlyc3QKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZpcnN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xODQsNyArMTg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZpcnN0KEpTR2xvYmFsT2JqZWN0KgogfQogCiAv
LyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5jb2xs
YXRpb24KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlckNvbGxhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyQ29sbGF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTgsNyArMTk4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0
aW9uKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2Vj
LUludGwuTG9jYWxlLnByb3RvdHlwZS5ob3VyQ3ljbGUKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBo
dHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5udW1lcmlj
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJO
dW1lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1l
cmljLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjUsNyArMjI1LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyhKU0dsb2Jh
bE9iamVjdCogZ2wKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxv
Y2FsZS5wcm90b3R5cGUubnVtYmVyaW5nU3lzdGVtCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjM5LDcgKzIzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbShKU0dsb2JhbE9i
CiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90
eXBlLmxhbmd1YWdlCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90
b3R5cGVHZXR0ZXJMYW5ndWFnZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90
eXBlR2V0dGVyTGFuZ3VhZ2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1Myw3ICsyNTMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJM
YW5ndWFnZShKU0dsb2JhbE9iamVjdCogZwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQw
Mi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5zY3JpcHQKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNjcsNyArMjY3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9j
YWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0KEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0
cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUucmVnaW9uCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlclJlZ2lvbiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYmM4YTU1
NzM4NmFiZjI1YWU5ZDEwZjU0YTU3OTA2MjYzYjU0YzAyMi4uODk1YmI0N2FhNWI1OTBjMzEwYzUx
NTdhNGUwN2M0YTVmZThkYjFjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1
cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1
cHBvcnRlZExvY2FsZXNPZik7CiAKIH0KIApAQCAtNjQsOCArNjQsOCBAQCBTdHJ1Y3R1cmUqIElu
dGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEludGxOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNhbGxJbnRsTnVtYmVyRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpOwogCiBJbnRsTnVtYmVyRm9ybWF0Q29uc3Ry
dWN0b3I6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bE51
bWJlckZvcm1hdCwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdCkKQEAgLTc4LDcgKzc4LDcgQEAg
dm9pZCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SW50bE51bWJlckZvcm1hdFByb3RvdHkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBudW1iZXJGb3JtYXRQcm90b3R5cGUsIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SW50bE51bWJlckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2wKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNh
bGxJbnRsTnVtYmVyRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDExLjEuMiBJbnRsLk51bWJlckZvcm1hdCAoW2xv
Y2FsZXMgWywgb3B0aW9uc11dKSAoRUNNQS00MDIgMi4wKQogICAgIC8vIDEuIElmIE5ld1Rhcmdl
dCBpcyB1bmRlZmluZWQsIGxldCBuZXdUYXJnZXQgYmUgdGhlIGFjdGl2ZSBmdW5jdGlvbiBvYmpl
Y3QsIGVsc2UgbGV0IG5ld1RhcmdldCBiZSBOZXdUYXJnZXQuCkBAIC0xMjEsNyArMTIxLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxOdW1iZXJGb3JtYXQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2Fs
ZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3JGdW5j
U3VwcG9ydGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUu
Y3BwCmluZGV4IGQ5OTljNzQzNTJlYzlkMGQzOTc1MTI1OTg5Y2UzYjlhYjc5ZTA5ZTguLjJlZTk4
MjkzNGI0MzA0Zjg5OTg5ZmE5ZTIzYWUwNmMwOWNkMGU2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUu
Y3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZv
cm1hdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1h
dFRvUGFydHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZv
cm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdEZ1bmNGb3JtYXQpOwogCiB9CiAKQEAgLTc5LDcg
KzgwLDcgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtbnVtYmVyLWZvcm1h
dC1mdW5jdGlvbnMKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1i
ZXJGb3JtYXRGdW5jRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRG
dW5jRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDcsNyArMTA4LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdEZ1bmNGb3JtYXQo
SlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1h
dC0+Zm9ybWF0KGdsb2JhbE9iamVjdCwgdmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEzNiw3ICsxMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYm91bmRGb3JtYXQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0
VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVu
Y0Zvcm1hdFRvUGFydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NSw3ICsxNTYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5j
Rm9ybWF0VG9QYXJ0cyhKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0VG9QYXJ0cyhnbG9iYWxPYmplY3QsIHZh
bHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3Jt
YXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4
IGZhNTMzYzMxNDBlODdjMjg1ODcwY2IzNDVkMGM1YzY4MTY1YTZlOTQuLjk5N2Q5MTdiMmU1M2Y1
YWQ5ZTFhNjk1NDBiODIyMjc5M2ZhNWFhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC03MCw3ICs3MCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW50bE9iamVjdCk7CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0Q2Fu
b25pY2FsTG9jYWxlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzKTsK
IAogc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2Jq
ZWN0KiBvYmplY3QpCiB7CkBAIC0xNDAwLDcgKzE0MDAsNyBAQCBib29sIGlzV2VsbEZvcm1lZEN1
cnJlbmN5Q29kZShTdHJpbmdWaWV3IGN1cnJlbmN5KQogICAgIHJldHVybiBjdXJyZW5jeS5sZW5n
dGgoKSA9PSAzICYmIGN1cnJlbmN5LmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNBU0NJSUFscGhh
PigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0
Q2Fub25pY2FsTG9jYWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnRsT2JqZWN0RnVuY0dldENh
bm9uaWNhbExvY2FsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKGxvY2FsZXMp
CiAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hNDAyLyNzZWMtaW50bC5nZXRjYW5v
bmljYWxsb2NhbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTlkMDg4MmNmYmFkZjBi
ZTViNDlhMjU4OTU4YmNmZGQ3MjNiNzUyMC4uYWYzOWE5NjYzYWYwNzljNWQyNzhjMjdmNDQ2OGM1
NjVkMWUzNjRlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxF
KEludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihJbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVz
T2YpOwogCiB9CiAKQEAgLTY0LDggKzY0LDggQEAgU3RydWN0dXJlKiBJbnRsUGx1cmFsUnVsZXND
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGcKICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bFBsdXJhbFJ1
bGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsUGx1
cmFsUnVsZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50
bFBsdXJhbFJ1bGVzKTsKIAogSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3I6OkludGxQbHVyYWxS
dWxlc0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxJbnRsUGx1cmFsUnVsZXMsIGNvbnN0cnVj
dEludGxQbHVyYWxSdWxlcykKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBJbnRsUGx1cmFsUnVsZXND
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBJbnRsUGx1cmFsUnVsZXNQcm90b3R5
cGUKICAgICBwbHVyYWxSdWxlc1Byb3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocGx1cmFsUnVsZXMpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsSW50bFBsdXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxQbHVy
YWxSdWxlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RC
ZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBsdXJhbFJ1
bGVzIikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxl
c0NvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJ
bnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuY3BwCmluZGV4IGJjZmE5NDljZWM5NzE2ZWI4MzU5
MjEyZDBjMmQ4NWUyN2U3OGJlYmMuLjUzMjk2MTA3ZjQxNDQ0OGYzNmU3NDEyNmYwYzAwODA1ZTZm
OWVmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVy
YWxSdWxlc1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmNwcApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFBsdXJh
bFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90
eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVu
Y1NlbGVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsUGx1cmFsUnVs
ZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKIAogfQogCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAg
ICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jU2VsZWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC05Miw3ICs5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdChKU0dsb2JhbE9iamVj
dCoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShwbHVyYWxS
dWxlcy0+c2VsZWN0KGdsb2JhbE9iamVjdCwgdmFsdWUpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9u
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jUmVzb2x2
ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0
cnVjdG9yLmNwcAppbmRleCBhYzQ1NTQxZDdhY2U4YzJmZmU3NWRmMzllYzllMzNmMmU2OWU3ZTg2
Li5kMTIyZGNkYTI5MGZmZjE3NzM2ZGQwNWI5MjljMzQ2M2FkNjZjOGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9j
YWxlc09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9y
dGVkTG9jYWxlc09mKTsKIAogfQogCkBAIC02Myw4ICs2Myw4IEBAIFN0cnVjdHVyZSogSW50bFJl
bGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbElu
dGxSZWxhdGl2ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpOwogCiBJ
bnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXRD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlLCBjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCwgY29uc3RydWN0SW50bFJlbGF0
aXZlVGltZUZvcm1hdCkKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bFJlbGF0aXZlVGltZUYK
IH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlJlbGF0aXZlVGltZUZv
cm1hdAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bFJl
bGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05OSw3ICs5OSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
SW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxSZWxhdGl2
ZVRpbWVGb3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxh
dGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2Nh
bGVzT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVj
dG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAwM2JkNWRmY2VjNThlMWZiMzM1NjZjMjhhZTMy
NjQ2YTg1NWVjZTVmLi4yMDc4YWQyY2YzOWZiZGY5OWFjYjgwMTY0ZTIyM2E3ODMxN2QzZDY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1l
Rm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxh
dGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFJl
bGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxS
ZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0
VG9QYXJ0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CiAKIH0KIApAQCAtNzYsNyAr
NzYsNyBAQCB2b2lkIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlJl
bGF0aXZlVGltZUZvcm1hdC5wcm90b3R5cGUuZm9ybWF0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC05NSw3ICs5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXQoSlNHbG9i
YWxPCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxhdGl2ZVRp
bWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdFRvUGFydHMKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9y
bWF0VG9QYXJ0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE0LDcgKzExNCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1
bmNGb3JtYXRUb1BhcnRzKEpTCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
aW50bC5yZWxhdGl2ZXRpbWVmb3JtYXQucHJvdG90eXBlLnJlc29sdmVkb3B0aW9ucwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVu
Y1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVyYXRv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVu
dEl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCA2NTAwOWM5MmY1MzU5OWNjN2Q4MWQwYWNkN2Q1
MzA2YTdmZDYxY2NkLi44MjE3OGVjZGFmMTZhZWU0YWJlMmUwODUzODc1NzM0MDE5YzVkYTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudEl0ZXJh
dG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
U2VnbWVudEl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21l
bnRJdGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudEl0ZXJhdG9yUHJv
dG90eXBlRnVuY05leHQpOwogCiB9CiAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBJbnRsU2VnbWVu
dEl0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLSVzZWdtZW50aXRlcmF0b3Jw
cm90b3R5cGUlLm5leHQKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRJ
dGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxTZWdtZW50
SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggMWUxYjllZTkyNjczZjEyZmI0ZjY3NWMxZThhNjRkZWZkMGVmYjlmYy4u
ZWIxYmJiNDhmMWFjZGMzYTIxYjdjZTlhODVlMWM1OTcyMzllMGVhOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0
b3IuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yKTsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRlckNvbnN0cnVj
dG9yU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudGVyQ29uc3RydWN0b3JTdXBw
b3J0ZWRMb2NhbGVzT2YpOwogCiB9CiAKQEAgLTYyLDggKzYyLDggQEAgU3RydWN0dXJlKiBJbnRs
U2VnbWVudGVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG8KICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SW50bFNlZ21lbnRlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bFNlZ21lbnRlcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2Fs
bEludGxTZWdtZW50ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50bFNlZ21lbnRlcik7CiAKIEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvcjo6SW50bFNlZ21l
bnRlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUsIGNhbGxJbnRsU2VnbWVudGVyLCBjb25zdHJ1Y3RJbnRsU2VnbWVudGVy
KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBJbnRsU2VnbWVudGVyUHJvdG90eXBlKiBzZQogfQogCiAvLyBodHRw
czovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuU2VnbWVudGVyCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsU2VnbWVudGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEludGxTZWdtZW50ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk4
LDcgKzk4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SW50bFNlZ21lbnRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmEKIH0KIAogLy8gaHR0cHM6Ly90YzM5
LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlNlZ21lbnRlcgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEludGxTZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSW50bFNlZ21lbnRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEludGxTZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxl
ZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNlZ21lbnRlciIpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyQ29uc3RydWN0
b3JTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlckNv
bnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJQcm90b3R5
cGUuY3BwCmluZGV4IDliYmMzNDJiODAyOWJiYWNhNTMxYzY5ZjRkNjg5ZTQ5MzhlZWNiYTIuLjFj
ZjRkMGQyODc5ZTJlMWFiOTUzYTRjOTUyYTUxNmFkZDdlZjMyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJQcm90b3R5cGUuY3Bw
CkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxTZWdtZW50ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJ
bnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOwog
CiB9CiAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBJbnRsU2VnbWVudGVyUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRs
LXNlZ21lbnRlci8jc2VjLWludGwuc2VnbWVudGVyLnByb3RvdHlwZS5zZWdtZW50Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50ZXJQcm90b3R5cGVGdW5jU2VnbWVudChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3LDcgKzg3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQoSlNHbG9iYWxPYmplY3Qq
IGcKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtc2VnbWVudGVyLyNzZWMt
SW50bC5TZWdtZW50ZXIucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0
aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bFNlZ21lbnRzUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHAKaW5kZXggNTM5NjUwYzQ4MGMx
M2NlMjJhZGQ3ODhjYTA5NTdhNTU1ZDRkYmNhZS4uNGM5M2VkNWYwMmQyZGIzNTFkYmQxODMxMjk2
ZGIxNmZhOTZmNGJkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFNlZ21lbnRzUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsU2VnbWVudHNQcm90b3R5cGUuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2Vn
bWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRzUHJvdG90
eXBlRnVuY0l0ZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmlu
Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudHNQcm90b3R5
cGVGdW5jSXRlcmF0b3IpOwogCiB9CiAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBJbnRsU2VnbWVu
dHNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtc2VnbWVudGVy
LyNzZWMtJXNlZ21lbnRzcHJvdG90eXBlJS5jb250YWluaW5nCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmNDb250YWluaW5nKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKEludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmNDb250YWluaW5nLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC04Niw3ICs4Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bFNlZ21lbnRzUHJvdG90eXBlRnVuY0NvbnRhaW5pbmcoSlNHbG9iYWxPYmplY3QqCiB9CiAK
IC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLSVzZWdtZW50
c3Byb3RvdHlwZSUtQEBpdGVyYXRvcgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
U2VnbWVudHNQcm90b3R5cGVGdW5jSXRlcmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFNl
Z21lbnRzUHJvdG90eXBlRnVuY0l0ZXJhdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLmNwcAppbmRleCA5YzBhNjhhMDFlNDJjMWJmMThkNTI4MjQyMDczYjkwMmQ1YzFhNjQw
Li45MDhkMzFjNmViOGEyMjU2YzdhN2U3NzlhZDU4ZTNjNTI0OTEwM2FiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1
Y3Rvci5jcHAKQEAgLTMzLDEwICszMywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlCdWZmZXJGdW5jSXNWaWV3KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsQXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFycmF5QnVmZmVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJGdW5jSXNW
aWV3KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxBcnJheUJ1ZmZlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBcnJheUJ1ZmZlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1
ZmZlcik7CiAKIHRlbXBsYXRlPD4KIGNvbnN0IENsYXNzSW5mbyBKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsKQEAgLTExNywxOSArMTE3LDE5IEBAIGNvbnN0IENsYXNzSW5mbyog
SlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46OmluZm8oKQogICAg
IHJldHVybiAmSlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46OnNf
aW5mbzsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5
QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFycmF5QnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25U
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkFycmF5QnVmZmVyIikpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNHZW5l
cmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0
Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNoYXJlZEFycmF5QnVmZmVyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFNoYXJlZEFycmF5QnVmZmVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBKU0dlbmVyaWNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yPEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OlNoYXJlZD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQpAQCAt
MTM3LDcgKzEzNyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFNoYXJlZEFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKIC8vIEVDTUEgMjQuMS4zLjEKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlCdWZmZXJGdW5jSXNWaWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyRnVuY0lz
VmlldywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihqc0R5bmFtaWNDYXN0
PEpTQXJyYXlCdWZmZXJWaWV3Kj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcAppbmRleCA4NTk0NDQyY2RlYjJjZGEzZDI3OTAz
ZmFjMmYzZjY3ZmFjNzVkNjA5Li4zZDM2MTg3Y2I4Y2I3NjE4NTQ1NDE2MDY3NzU5ZTRjMjY5M2Rk
YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5QnVmZmVyUHJvdG90eXBlLmNwcApAQCAtMzEsNyArMzEsMTEgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyUHJv
dG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3Rv
RnVuY1NsaWNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVy
UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOworCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjIsNyArNjYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbAogfQog
CiAvLyBodHRwOi8vdGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdF9zaGFyZWRtZW0vc2htZW0uaHRt
bCNzZWMtZ2V0LWFycmF5YnVmZmVyLnByb3RvdHlwZS5ieXRlbGVuZ3RoCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5n
dGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVu
Z3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MCw3ICs4NCw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0
aChKU0dsb2JhCiB9CiAKIC8vIGh0dHA6Ly90YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0X3NoYXJl
ZG1lbS9zaG1lbS5odG1sI1N0cnVjdHVyZWREYXRhLlNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlw
ZS5nZXRfYnl0ZUxlbmd0aAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2hh
cmVkQXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHNoYXJlZEFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
b3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRG
dW5jdGlvbi5jcHAKaW5kZXggYjZlZGRlNmNhMWM1NGQ2NDBlN2I0YTFlNGEwZDZkZDFjZWM2YjQz
MS4uNDk1YmNhMDU5NzAzZTI0ZThkZTMxNjlkNjM3YzMwNmYwZTUwNmNjMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNCb3VuZEZ1bmN0
aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNCb3VuZEZ1bmN0aW9uKSB9OwogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ2FsbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNCb3VuZEZ1bmN0
aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGNhbGxGcmFtZS0+
anNDYWxsZWUoKSk7CiAKQEAgLTYwLDcgKzYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCB0YXJnZXRGdW5j
dGlvbiwgY2FsbERhdGEsIGJvdW5kRnVuY3Rpb24tPmJvdW5kVGhpcygpLCBhcmdzKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNhbGwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3
LDcgKzg3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ2Fs
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgdGFyZ2V0RnVuY3Rp
b24sIGNhbGxEYXRhLCBib3VuZEZ1bmN0aW9uLT5ib3VuZFRoaXMoKSwgYXJncykpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0
cnVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0cnVj
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBKU0JvdW5kRnVuY3Rpb24qIGJvdW5kRnVuY3Rpb24gPSBqc0Nhc3Q8SlNCb3VuZEZ1
bmN0aW9uKj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKIApAQCAtMTEzLDcgKzExMyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1
Y3QoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3QoZ2xvYmFsT2JqZWN0LCB0YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0RGF0YSwgYXJncywgbmV3
VGFyZ2V0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlv
bkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ29uc3RydWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDQsMTIgKzE0NCwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNv
bnN0cnVjdChnbG9iYWxPYmplY3QsIHRhcmdldEZ1bmN0aW9uLCBjb25zdHJ1Y3REYXRhLCBhcmdz
LCBuZXdUYXJnZXQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3Vu
ZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGlzQm91bmRGdW5jdGlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoc3RhdGljX2Nhc3Q8Ym9vbD4oanNEeW5hbWljQ2Fz
dDxKU0JvdW5kRnVuY3Rpb24qPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhh
c0luc3RhbmNlQm91bmRGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihoYXNJbnN0YW5jZUJv
dW5kRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgSlNCb3VuZEZ1bmN0aW9uKiBib3VuZE9iamVjdCA9IGpzQ2FzdDxK
U0JvdW5kRnVuY3Rpb24qPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBK
U1ZhbHVlIHZhbHVlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXggZGQ2YjBl
NGQwMzBmM2VlODYwMjM1YmNkNmQ3MzU4YWNjNmY4YmIzZS4uNzY2OWRkMzBlN2Q5NTdhNDE5OTY2
MmZjYTM1MmFlZjFjZjViMTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlv
bkNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25z
dHJ1Y3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc0JvdW5kRnVuY3Rpb24oSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFz
SW5zdGFuY2VCb3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ2FsbCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5kRnVuY3Rpb25DYWxsKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ29uc3RydWN0KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oaXNCb3VuZEZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
aGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKTsKIAogY2xhc3MgSlNCb3VuZEZ1bmN0aW9uIGZpbmFs
IDogcHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgpAQCAtOTMsOSArOTMsOSBAQCBjbGFzcyBK
U0JvdW5kRnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiAgICAgZG91YmxlIG1f
bGVuZ3RoOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9u
Q2FsbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9u
Q2FsbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ2Fs
bCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0cnVj
dCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNwcAppbmRl
eCBhZTM1YmE0MDM5NThiZGRkMDE2OWVjOTk2NTgwMjM3ZmQ4OTY0ODdlLi41YTg1MWRlNzViZjIz
OGQxYjRjYzJiOGQyMTg5MTQ2YzdmYzA2ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNw
cApAQCAtMzMsNyArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpT
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkNhbGwpOworCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFW
aWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZp
ZXdQcm90b3R5cGUuY3BwCmluZGV4IDRiYjI4ZmQ5OWYyZjk2MzA5YjFkM2FiNmFhNzIxNjNhZDll
NGVhM2IuLjIxZTI2NzBjMmYwODEzZTFjMTA1NDlhMDM1YTZkYjA1Nzc2NTNiMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUu
Y3BwCkBAIC01OSwyNSArNTksMjUgQEAgbmFtZXNwYWNlIEpTQyB7CiBAZW5kCiAqLwogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50OChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRh
Vmlld1Byb3RvRnVuY0dldEludDE2KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MzIoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
YVZpZXdQcm90b0Z1bmNHZXRVaW50OChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQxNihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50
OChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50
MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50OChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldFVp
bnQxNihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldFVpbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1Nl
dEZsb2F0MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9H
ZXR0ZXJCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGgoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVPZmZzZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQ4KTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQxNik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MzIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQ4KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MTYpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQzMik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQ2NCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50MTYpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDE2KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvRnVuY1NldEZsb2F0MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvRnVuY1NldEZsb2F0NjQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0
YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvR2V0dGVyQnl0ZU9mZnNldCk7CiAKIH0KIApAQCAtMjE1LDcgKzIxNSw3IEBA
IEVuY29kZWRKU1ZhbHVlIHNldERhdGEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCiAKIElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibWlzc2lu
Zy1wcm90b3R5cGVzIikKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1By
b3RvR2V0dGVyQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJC
dWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHZpZXctPnBvc3NpYmx5U2hhcmVkSlNCdWZmZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3Ro
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNDEsNyArMjQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZpZXctPmxlbmd0aCgpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ5
dGVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0dldHRlckJ5dGVPZmZz
ZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1NSw4MiArMjU1LDgyIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVPZmZzZXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2aWV3LT5i
eXRlT2Zmc2V0KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmll
d1Byb3RvRnVuY0dldEludDgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNH
ZXRJbnQ4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBnZXREYXRhPEludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90
b0Z1bmNHZXRJbnQxNihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldElu
dDE2LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBnZXREYXRhPEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9G
dW5jR2V0SW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQz
MiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gZ2V0RGF0YTxJbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVu
Y0dldFVpbnQ4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDgs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIGdldERhdGE8VWludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNH
ZXRVaW50MTYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MTYs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIGdldERhdGE8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
R2V0VWludDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDMy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBnZXREYXRhPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVu
Y0dldEZsb2F0MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9h
dDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBnZXREYXRhPEZsb2F0MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90
b0Z1bmNHZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0
RmxvYXQ2NCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gZ2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3
UHJvdG9GdW5jU2V0SW50OChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1Nl
dEludDgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIHNldERhdGE8SW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3Rv
RnVuY1NldEludDE2KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50
MTYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldERhdGE8SW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1
bmNTZXRJbnQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDMy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBzZXREYXRhPEludDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
U2V0VWludDgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50OCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gc2V0RGF0YTxVaW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1Nl
dFVpbnQxNihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldFVpbnQxNiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gc2V0RGF0YTxVaW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNT
ZXRVaW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIHNldERhdGE8VWludDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
U2V0RmxvYXQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldEZsb2F0
MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldERhdGE8RmxvYXQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3Rv
RnVuY1NldEZsb2F0NjQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBzZXREYXRhPEZsb2F0NjRBZGFwdG9yPihnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCmluZGV4IGE3ZWI1ODU1MDRhYzg0MWY3YWIxODFkNjQ3NmE4ZDZjOGI4MThmMWMuLjJh
MDA4ODU1OTYwNmY4MTQzZWJmYmRhYzRjODM1YjE3OGY1NDc5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC00NSw3ICs0NSw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIb3N0RnVu
Y3Rpb25Bc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTQsNyArMzE0LDcgQEAgc3Rh
dGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNGdW5jdGlvbiogZnVuY3QKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gYXJndW1lbnRzR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0Z1bmN0
aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVDYWxsZXJG
dW5jdGlvbihWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU0Z1bmN0aW9uKgogICAgIHJl
dHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpj
YWxsZXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBjYWxsZXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBjMDQ2ODJjMDhi
MjBmZTAzOTdmN2JjYWM2ZjU1M2VmN2MzZWIwM2UyLi4yNTg5NTVmMGUzYjJiN2JiZTRhMzM1Yzgz
MGJkZGU5Mjk0NmQ2NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFNpZ25hdHVyZTsKIH0KIAogCi1KU19FWFBP
UlRfUFJJVkFURSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVj
dG9yKTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGdldENhbGN1bGF0ZWREaXNwbGF5TmFt
ZShWTSYsIEpTT2JqZWN0Kik7CiAKQEAgLTIxNyw5ICsyMTcsNiBAQCBjbGFzcyBKU0Z1bmN0aW9u
IDogcHVibGljIEpTQ2FsbGVlIHsKIAogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRy
YWN0b3I7CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxlckdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotCiAgICAgdWludHB0cl90IG1fZXhlY3V0YWJsZU9yUmFyZURhdGE7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKaW5kZXggNGRjNGFlYTY4
MTYzYTkzMWFiNThkNjEwNjg2YWNmMDg5MTA1OTIyYy4uMGQ4YjgxZjQ5NWJiNGVkZDdiMzc3MzZh
M2Y1MWRkZTYxZDY3MWQwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApA
QCAtMjksNiArMjksMjggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0pTX0VYUE9SVF9QUklWQVRF
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludDhBcnJheSk7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnQxNkFycmF5KTsKK0pTX0VYUE9S
VF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludDMyQXJyYXkpOworSlNf
RVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVWludDhBcnJheSk7
CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxVaW50OENs
YW1wZWRBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxVaW50MTZBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxVaW50MzJBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxGbG9hdDMyQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjYWxsRmxvYXQ2NEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRF
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbERhdGFWaWV3KTsKKworSlNfRVhQT1JUX1BS
SVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnQ4QXJyYXkpOworSlNf
RVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnQxNkFy
cmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50MzJBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFVpbnQ4QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVaW50OENsYW1wZWRBcnJheSk7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFVpbnQxNkFycmF5KTsKK0pT
X0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0VWludDMy
QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RGbG9hdDMyQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RGbG9hdDY0QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3REYXRhVmlldyk7CisKIHRlbXBsYXRlPHR5cGVu
YW1lIFZpZXdDbGFzcz4KIGNsYXNzIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Ig
ZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CkBAIC00NCw2ICs2Niw2
NCBAQCBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIGZpbmFsIDogcHVi
bGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAKKyAgICBz
dGF0aWMgY29uc3RleHByIFJhd05hdGl2ZUZ1bmN0aW9uIGNhbGxDb25zdHJ1Y3RvcigpCisgICAg
eworICAgICAgICBzd2l0Y2ggKFZpZXdDbGFzczo6VHlwZWRBcnJheVN0b3JhZ2VUeXBlKSB7Cisg
ICAgICAgIGNhc2UgVHlwZUludDg6CisgICAgICAgICAgICByZXR1cm4gY2FsbEludDhBcnJheTsK
KyAgICAgICAgY2FzZSBUeXBlSW50MTY6CisgICAgICAgICAgICByZXR1cm4gY2FsbEludDE2QXJy
YXk7CisgICAgICAgIGNhc2UgVHlwZUludDMyOgorICAgICAgICAgICAgcmV0dXJuIGNhbGxJbnQz
MkFycmF5OworICAgICAgICBjYXNlIFR5cGVVaW50ODoKKyAgICAgICAgICAgIHJldHVybiBjYWxs
VWludDhBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDhDbGFtcGVkOgorICAgICAgICAgICAg
cmV0dXJuIGNhbGxVaW50OENsYW1wZWRBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDE2Ogor
ICAgICAgICAgICAgcmV0dXJuIGNhbGxVaW50MTZBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWlu
dDMyOgorICAgICAgICAgICAgcmV0dXJuIGNhbGxVaW50MzJBcnJheTsKKyAgICAgICAgY2FzZSBU
eXBlRmxvYXQzMjoKKyAgICAgICAgICAgIHJldHVybiBjYWxsRmxvYXQzMkFycmF5OworICAgICAg
ICBjYXNlIFR5cGVGbG9hdDY0OgorICAgICAgICAgICAgcmV0dXJuIGNhbGxGbG9hdDY0QXJyYXk7
CisgICAgICAgIGNhc2UgVHlwZURhdGFWaWV3OgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVj
dERhdGFWaWV3OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQ1JBU0hfVU5ERVJfQ09O
U1RFWFBSX0NPTlRFWFQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9
CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciBSYXdOYXRpdmVGdW5jdGlvbiBjb25zdHJ1
Y3RDb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzd2l0Y2ggKFZpZXdDbGFzczo6VHlwZWRB
cnJheVN0b3JhZ2VUeXBlKSB7CisgICAgICAgIGNhc2UgVHlwZUludDg6CisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RydWN0SW50OEFycmF5OworICAgICAgICBjYXNlIFR5cGVJbnQxNjoKKyAgICAg
ICAgICAgIHJldHVybiBjb25zdHJ1Y3RJbnQxNkFycmF5OworICAgICAgICBjYXNlIFR5cGVJbnQz
MjoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RJbnQzMkFycmF5OworICAgICAgICBjYXNl
IFR5cGVVaW50ODoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RVaW50OEFycmF5OworICAg
ICAgICBjYXNlIFR5cGVVaW50OENsYW1wZWQ6CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0
VWludDhDbGFtcGVkQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQxNjoKKyAgICAgICAgICAg
IHJldHVybiBjb25zdHJ1Y3RVaW50MTZBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDMyOgor
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdFVpbnQzMkFycmF5OworICAgICAgICBjYXNlIFR5
cGVGbG9hdDMyOgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEZsb2F0MzJBcnJheTsKKyAg
ICAgICAgY2FzZSBUeXBlRmxvYXQ2NDoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RGbG9h
dDY0QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZURhdGFWaWV3OgorICAgICAgICAgICAgcmV0dXJu
IGNvbnN0cnVjdERhdGFWaWV3OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQ1JBU0hf
VU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICB9CisgICAgfQorCiBwcml2YXRlOgogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogcHJvdG90eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEZ1bmN0aW9uRXhlY3V0YWJsZSogcHJpdmF0ZUFsbG9jYXRvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCAxZTk1MTZhZWI2YmM1NTdm
MzhhOGQ5YzliMjMwNDllYWJiN2NkYmE1Li4yZGZhN2ViNDA1ZWZkMjU5MTgyMjc3YTE0ODMxNmQz
YWJhNjRlZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxp
bmVzLmgKQEAgLTM3LDE1ICszNyw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlLCBjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3PFZpZXdDbGFzcz4sIGNvbnN0cnVjdEdl
bmVyaWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
LCBjYWxsQ29uc3RydWN0b3IoKSwgY29uc3RydWN0Q29uc3RydWN0b3IoKSkKIHsKIH0KIApAQCAt
MjA2LDcgKzIwMCw3IEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJy
YXlWaWV3V2l0aEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDcsNyArMjQx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXcoSlNHbG9iYWxPYmplY3QqIGdsb2IKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmll
d0NsYXNzPgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNU
eXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
QUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1w
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMu
aAppbmRleCBhMDNkZjMxYWMyNDI4NzA3ODlhMWViN2ZlNGI2ZGUxOGFiNzg2OWNmLi5jYzZlZGEx
MTY5ZWUxMjg2NzUxNzM2ZGQ1ZTk5NWVmZTk0NDc0ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBpbmxpbmUg
dW5zaWduZWQgYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1Nl
dChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1NldCwgKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIApAQCAtMTQ3LDcgKzE0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KFZNJiB2bSwgSlNHbG9iYWxPCiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4sIChW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTE3
OSw3ICsxNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4oVk0mIHZtLCBKUwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5jbHVkZXMsIChWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVu
Y0luY2x1ZGVzKFZNJiB2bSwgSlNHbAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0luZGV4T2YoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmRleE9mLCAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mKFZNJiB2bSwg
SlNHbG8KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbiwg
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAt
MzAwLDcgKzMwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jSm9pbihWTSYgdm0sIEpTR2xvYmFsCiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAtMzUwLDcgKzM1
MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jTGFzdEluZGV4T2YoVk0mIHZtLCBKCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKFZNJiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyLCAoVk0mLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMjIuMi4z
LjMKICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oY2FsbEZy
YW1lLT50aGlzVmFsdWUoKSk7CkBAIC0zNTksNyArMzU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZmZXIoVk0m
LCBKU0cKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aCwg
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8g
MjIuMi4zLjE3CiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+
KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwpAQCAtMzY4LDcgKzM2OCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVu
Z3RoKFZNJiwgSlNHCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5j
Qnl0ZUxlbmd0aChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJG
dW5jQnl0ZUxlbmd0aCwgKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgLy8gMjIuMi4zLjIKICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8Vmlld0NsYXNzKj4oY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CkBAIC0zNzcsNyArMzc3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCeXRlTGVuZ3RoKFZNJiwKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0LCAoVk0mLCBKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAyMi4yLjMuMwogICAgIFZpZXdDbGFzcyogdGhp
c09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKQEAg
LTM4Niw3ICszODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoVk0mLAogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlLCAoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAvLyAgICBW
TSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTQwMyw3ICs0MDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoVk0mIHZtLCBKU0ds
bwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCwg
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogLy8gICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MTksNyArNDE5LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1Nv
cnQoVk0mIHZtLCBKU0dsb2IKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNT
bGljZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvRnVuY1NsaWNlLCAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCkBAIC01MDgsNyArNTA4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZShWTSYgdm0sIEpTR2xvYmEKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKFZNJnZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1
YmFycmF5Q3JlYXRlLCAoVk0mdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCA3ZTUyNWQ5MWRhMjE1OGU0NDQyMTU0YTUzYjAzNWFmZWI0NjRiZjdhLi5i
ZDU0YmIxNTk1NTQyMGMzOTI5MmM3NmFhMWI3MWY5M2I1YzU4YTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0yNDIsNiArMjQy
LDIwIEBAIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ0hFQ0tfRkVBVFVSRV9GTEFHX1RZ
UEUpCiBGT1JfRUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShDSEVDS19GRUFUVVJF
X0ZMQUdfVFlQRSkKIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKENIRUNLX0ZFQVRVUkVfRkxB
R19UWVBFKQogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYWtlQm91bmRGdW5j
dGlvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihoYXNPd25MZW5ndGhQcm9w
ZXJ0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjcmVhdGVQcml2YXRlU3lt
Ym9sKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVN1cGVyU2FtcGxl
cik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkaXNhYmxlU3VwZXJTYW1wbGVy
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGVucXVldWVKb2IpOworI2lmIEFT
U0VSVF9FTkFCTEVECitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhc3NlcnRDYWxs
KTsKKyNlbmRpZgorI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVNhbXBsaW5nUHJvZmlsZXIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIpOworI2VuZGlmCisK
IHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZVByb3h5UHJvcGVydHkoVk0mIHZtLCBKU09iamVjdCogb2Jq
ZWN0KQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwgPSBqc0Nhc3Q8SlNHbG9iYWxPYmpl
Y3QqPihvYmplY3QpOwpAQCAtMjcyLDcgKzI4Niw3IEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUNv
bnNvbGVQcm9wZXJ0eShWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIENvbnNv
bGVPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsLCBDb25zb2xlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIGdsb2JhbCwgY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsKSkpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlQm91bmRGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihtYWtlQm91bmRGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
Mjg2LDcgKzMwMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VC
b3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgdGFyZ2V0LCBib3VuZFRoaXMsIGJvdW5kQXJncy5pc0NlbGwoKSA/IGpz
Q2FzdDxKU0ltbXV0YWJsZUJ1dHRlcmZseSo+KGJvdW5kQXJncykgOiBudWxscHRyLCBsZW5ndGgs
IG5hbWVTdHJpbmcpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGhhc093bkxlbmd0aFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGhhc093bkxlbmd0aFBy
b3BlcnR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDYsMTQgKzMyMCwxNCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNPd25MZW5ndGhQcm9wZXJ0eShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsTwogCiAvLyBGSVhNRTogdXNlIGEgYnl0ZWNvZGUgb3IgaW50cmluc2lj
IGZvciBjcmVhdGluZyBhIHByaXZhdGUgc3ltYm9sLgogLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjc4Mgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY3JlYXRlUHJpdmF0ZVN5bWJvbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNyZWF0ZVByaXZhdGVTeW1ib2ws
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShTeW1i
b2w6OmNyZWF0ZSh2bSwgUHJpdmF0ZVN5bWJvbEltcGw6OmNyZWF0ZU51bGxTeW1ib2woKS5nZXQo
KSkpOwogfQogCiAjaWYgQVNTRVJUX0VOQUJMRUQKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFzc2VydENhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXNzZXJ0Q2FsbCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzQm9vbGVhbigpKTsKICAg
ICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5hc0Jvb2xlYW4oKSkKQEAgLTM0MSw3ICszNTUs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhc3NlcnRDYWxsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECiAK
ICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBlbmFibGVTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZW5hYmxlU2FtcGxp
bmdQcm9maWxlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIFNhbXBsaW5nUHJvZmlsZXIqIHByb2ZpbGVyID0gZ2xvYmFsT2JqZWN0LT52bSgpLnNh
bXBsaW5nUHJvZmlsZXIoKTsKICAgICBpZiAoIXByb2ZpbGVyKQpAQCAtMzUwLDcgKzM2NCw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVuYWJsZVNhbXBsaW5nUHJvZmls
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGlz
YWJsZVNhbXBsaW5nUHJvZmlsZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkaXNhYmxlU2FtcGxpbmdQcm9maWxlciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFNhbXBs
aW5nUHJvZmlsZXIqIHByb2ZpbGVyID0gZ2xvYmFsT2JqZWN0LT52bSgpLnNhbXBsaW5nUHJvZmls
ZXIoKTsKICAgICBpZiAoIXByb2ZpbGVyKQpAQCAtMzY1LDEzICszNzksMTMgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIoSlNHbG9i
YWxPYmplY3QqIGdsb2IKIH0KICNlbmRpZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBlbmFibGVTdXBlclNhbXBsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVN1cGVyU2FtcGxlciwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgZW5hYmxlU3VwZXJTYW1wbGVyKCk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGlzYWJsZVN1cGVyU2FtcGxlcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGlzYWJsZVN1cGVyU2FtcGxl
ciwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgZGlzYWJsZVN1cGVyU2Ft
cGxlcigpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC00
NTIsNyArNDY2LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxPYmpl
Y3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBAZW5kCiAqLwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlbnF1ZXVlSm9iKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGVucXVldWVKb2IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKaW5kZXggZjlkYzY0NDg4Mjk3OTk3NDU4NjExYWMxZjAyMjgwNGVlMDBhZTRhNS4u
NjZjNjJmZmQ5MjZmZWRkNTM1NWNhYThhMmRlYmMwMTM5NWQyMDRiYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcApAQCAtNDU5LDcgKzQ1OSw3IEBAIHN0YXRpYyBkb3VibGUgcGFyc2VGbG9hdChTdHJpbmdW
aWV3IHMpCiAgICAgcmV0dXJuIGpzU3RyRGVjaW1hbExpdGVyYWwoZGF0YSwgZW5kKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXZhbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jRXZhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDk3LDcgKzQ5
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0V2YWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodm0uaW50ZXJwcmV0ZXItPmV4ZWN1dGUoZXZhbCwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPmdsb2JhbFRoaXMoKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxT
Y29wZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQ
YXJzZUludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUGFyc2VJbnQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSByYWRpeFZh
bHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQYXJzZUludChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYQogICAgIH0pOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNQYXJzZUZsb2F0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQ
YXJzZUZsb2F0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MzcsNyArNTM3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VGbG9hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocGFy
c2VGbG9hdCh2aWV3V2l0aFN0cmluZy52aWV3KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNEZWNvZGVVUkkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFs
RnVuY0RlY29kZVVSSSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBzdGF0aWMgQml0bWFwPDI1Nj4gZG9Ob3RVbmVzY2FwZVdoZW5E
ZWNvZGluZ1VSSSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCiAgICAgICAgICIjJCYrLC86Oz0/QCIK
QEAgLTU0NiwxMyArNTQ2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY0RlY29kZVVSSShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShkZWNvZGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLCBkb05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJLCB0cnVlKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHN0YXRpYyBC
aXRtYXA8MjU2PiBlbXB0eUJpdG1hcDsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGRlY29k
ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGVtcHR5Qml0bWFwLCB0cnVl
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVS
SShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHN0YXRpYyBC
aXRtYXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSSA9IG1ha2VDaGFyYWN0ZXJCaXRt
YXAoCiAgICAgICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKQEAgLTU2NCw3ICs1NjQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUkkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
ZW5jb2RlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgZG9Ob3RFc2NhcGVX
aGVuRW5jb2RpbmdVUkkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9i
YWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNF
bmNvZGVVUklDb21wb25lbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgc3RhdGljIEJpdG1hcDwyNTY+IGRvTm90RXNjYXBlV2hl
bkVuY29kaW5nVVJJQ29tcG9uZW50ID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAgIkFC
Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgpAQCAtNTc2LDcgKzU3Niw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVSSUNvbXBvbmVudChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlbmNvZGUoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNv
bXBvbmVudCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNF
c2NhcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VzY2FwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBzdGF0aWMg
Qml0bWFwPDI1Nj4gZG9Ob3RFc2NhcGUgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAogICAgICAgICAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCkBAIC02MjEsNyArNjIxLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGwKICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY1VuZXNjYXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNVbmVz
Y2FwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvU3RyaW5nVmlldyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIFsmXSAoU3RyaW5nVmlldyB2aWV3KSB7CiAgICAg
ICAgIC8vIFdlIHVzZSBpbnQgZm9yIGsgYW5kIGxlbmd0aCBpbnRlbnRpb25hbGx5IHNpbmNlIHdl
IHdvdWxkIGxpa2UgdG8gZXZhbHVhdGUKQEAgLTY3NywzMyArNjc3LDMzIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1VuZXNjYXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhCiAgICAgfSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5cGVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Ro
cm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVu
Y1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiJ2FyZ3VtZW50cycs
ICdjYWxsZWUnLCBhbmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHRoaXMgY29udGV4
dC4iKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jTWFrZVR5
cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShFcnJvclR5cGU6OlR5cGVFcnJvcik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1l
LT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0
cmljdCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZS5nZXRQcm90b3R5
cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xv
YmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b1Nl
dHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzMwLDcgKzczMCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jU2V0UHJvdG90eXBl
RGlyZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNTZXRQcm90b3R5cGVEaXJlY3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0NSw3ICs3NDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRQcm90b3R5cGVEaXJlY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbAogICAgIHJldHVybiB7IH07CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY0hvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihnbG9iYWxGdW5jSG9zdFByb21pc2VSZWplY3Rpb25UcmFja2VyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC03ODAsMTggKzc4MCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIoSlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0J1aWx0aW5Mb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgZGF0YUxvZyhjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCksICJcbiIpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY0J1aWx0aW5EZXNjcmliZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jQnVpbHRpbkRlc2NyaWJlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmco
Z2xvYmFsT2JqZWN0LT52bSgpLCB0b1N0cmluZyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0ltcG9ydE1vZHVsZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKQEAgLTgyMyw3ICs4MjMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtODM5LDcgKzgzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZW51bWVyYWJsZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNPd25LZXlzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNPd25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC04NDgsNyArODQ4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5j
T3duS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBEb250RW51
bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlLCBXVEY6Om51bGxvcHQpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0RhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmgKaW5kZXggYTM2N2MyYmMyN2YxNjVlYTE5MjA2YThjNGM3OGM4MTJiZmEwNTYx
NS4uOTgyM2M2YmMwNDJhNmY5MzllZjJkMTgxMzIwMWJjNzI4ZDM2Mjg4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5oCkBAIC0zNywyOCArMzcsMjggQEAgY2xhc3MgSlNPYmplY3Q7CiAKIGV4dGVybiBjb25zdCBB
U0NJSUxpdGVyYWwgT2JqZWN0UHJvdG9DYWxsZWRPbk51bGxPclVuZGVmaW5lZEVycm9yOwogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFdmFsKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQ
YXJzZUludChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VGbG9hdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2RlVVJJKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNEZWNvZGVVUklDb21wb25lbnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVSSShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY1VuZXNjYXBlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNDYWxsZWVBbmRDYWxsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY01ha2VUeXBl
RXJyb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRlcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnbG9iYWxGdW5jU2V0UHJvdG90eXBlRGlyZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJl
amVjdGlvblRyYWNrZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0
aW5EZXNjcmliZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm9wZXJ0
eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jT3duS2V5cyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGF0ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY0V2YWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jUGFyc2VJbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUGFyc2VG
bG9hdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNEZWNvZGVVUkkpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VuY29kZVVSSSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRXNjYXBlKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZ2xvYmFsRnVuY1VuZXNjYXBlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Z2xvYmFsRnVuY1Rocm93VHlwZUVycm9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xv
YmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY01ha2VUeXBlRXJyb3IpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUHJvdG9TZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihnbG9iYWxGdW5jU2V0UHJvdG90eXBlRGlyZWN0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0hvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNCdWlsdGluTG9nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY0J1aWx0aW5EZXNjcmliZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihnbG9iYWxGdW5jT3duS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1
bmNEYXRlVGltZUZvcm1hdCk7CiAKIGRvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKaW5k
ZXggNmNmZDQwMDE2OGUyNmViZTIzYmQ2YTI4NDBmOGFlNWYxMGEwMjdlZC4uYjA5ZmQ0NGU2YWY3
MjMxYzY3ZWZhZTFjOTFhMTZkNzE1MzgwMzExOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcApAQCAtNDQsMTQgKzQ0LDE0IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1
bGVMb2FkZXJQYXJzZU1vZHVsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVxdWVzdGVkTW9kdWxl
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlck1v
ZHVsZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2ZVN5bmMoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRl
ckZldGNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VPYmplY3QoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1vZHVsZUxvYWRlclBhcnNlTW9kdWxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1vZHVsZUxvYWRlclJlcXVlc3RlZE1vZHVsZXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyRXZhbHVhdGUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyTW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9u
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlclJlc29sdmUp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyUmVzb2x2ZVN5
bmMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyRmV0Y2gp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyR2V0TW9kdWxl
TmFtZXNwYWNlT2JqZWN0KTsKIAogfQogCkBAIC0zNjIsNyArMzYyLDcgQEAgSlNNb2R1bGVOYW1l
c3BhY2VPYmplY3QqIEpTTW9kdWxlTG9hZGVyOjpnZXRNb2R1bGVOYW1lc3BhY2VPYmplY3QoSlNH
bG9iYWxPYmplY3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9u
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlclBhcnNlTW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1v
ZHVsZUxvYWRlclBhcnNlTW9kdWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
IApAQCAtNDA2LDcgKzQwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxl
TG9hZGVyUGFyc2VNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShwcm9taXNlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtb2R1bGVMb2FkZXJSZXF1ZXN0ZWRNb2R1bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1v
ZHVsZUxvYWRlclJlcXVlc3RlZE1vZHVsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQyNCw3
ICs0MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclJlcXVl
c3RlZE1vZHVsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bW9kdWxlTG9hZGVyTW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC00NDIsNyArNDQyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
b2R1bGVMb2FkZXJNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oSlNHbG9iYWwKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhvb2sgRnVuY3Rpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxv
YWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyUmVzb2x2ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgLy8gSG9vayBwb2ludCwgTG9hZGVy
LnJlc29sdmUuCkBAIC00NTUsNyArNDU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZS0+YXJndW1lbnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIGNhbGxGcmFtZS0+
YXJndW1lbnQoMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJSZXNvbHZlU3luYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJSZXNvbHZl
U3luYywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2ZVN5bmMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpZGVudGlmaWVyVG9KU1Zh
bHVlKHZtLCByZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1
bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJGZXRjaCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgLy8gSG9vayBwb2ludCwgTG9hZGVy
LmZldGNoCkBAIC00ODIsNyArNDgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
b2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDIpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVy
R2V0TW9kdWxlTmFtZXNwYWNlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRl
ckdldE1vZHVsZU5hbWVzcGFjZU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDk3LDcg
KzQ5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyR2V0TW9k
dWxlTmFtZXNwYWNlT2JqZWN0KEpTR2xvYmFsT2JqZWN0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0gQWRkaXRpb25hbCBIb29rIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyBUbyBpbnN0cnVt
ZW50IGFuZCByZXRyaWV2ZSB0aGUgZXJyb3JzIHJhaXNlZCBmcm9tIHRoZSBtb2R1bGUgZXhlY3V0
aW9uLAogICAgIC8vIHdlIGluc2VydGVkIHRoZSBob29rIHBvaW50IGhlcmUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwCmlu
ZGV4IDc0ZGM2NGI2YzAzZjIyNWU1YTJhMmNhMDg1NGI3YzdhN2JhYTBmZDguLjQ1ZmYzODIwZmE3
ZDIzNTQxOWJiMmQ4Nzk4M2IyOGZlMzhlMWRiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw4
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNOYXRpdmVTdGRGdW5jdGlv
bjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTTmF0aXZlU3RkRnVuY3Rpb24pIH07CiAKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJ1blN0ZEZ1bmN0aW9uKTsKKwogSlNOYXRpdmVTdGRG
dW5jdGlvbjo6SlNOYXRpdmVTdGRGdW5jdGlvbihWTSYgdm0sIE5hdGl2ZUV4ZWN1dGFibGUqIGV4
ZWN1dGFibGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBOYXRpdmVTdGRGdW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIDogQmFzZSh2bSwgZXhlY3V0
YWJsZSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2Z1bmN0aW9uKFdURk1vdmUo
ZnVuY3Rpb24pKQpAQCAtNTIsNyArNTQsNyBAQCB2b2lkIEpTTmF0aXZlU3RkRnVuY3Rpb246OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgdQogICAg
IEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHJ1blN0ZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJ1blN0
ZEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIEpTTmF0aXZlU3RkRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpT
TmF0aXZlU3RkRnVuY3Rpb24qPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIEFTU0VSVChm
dW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CmluZGV4IDUzOTM3ZGU3YWMyYzk4YjE2MjYzMGY1ODhiNzcwYTA1NzJkOTQyODYuLjMzOTI5YjJk
NGZmODgzZWYwZjQwZGUwYTA2NTA3ZjQ1MDgyNGZkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC00Miw4ICs0Miw4IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNPTk9iamVj
dCk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1BhcnNlKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTT05Qcm90b0Z1bmNTdHJpbmdpZnkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSlNPTlByb3RvRnVuY1BhcnNlKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oSlNPTlByb3RvRnVuY1N0cmluZ2lmeSk7CiAKIH0KIApAQCAtNzkyLDcg
Kzc5Miw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmls
dGVyZWQpCiB9CiAKIC8vIEVDTUEtMjYyIHY1IDE1LjEyLjIKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNPTlByb3RvRnVuY1BhcnNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEpTT05Qcm90
b0Z1bmNQYXJzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODM0LDcgKzgzNCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1BhcnNlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhCiB9CiAKIC8vIEVDTUEtMjYyIHY1IDE1LjEyLjMKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1N0cmluZ2lmeShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihKU09OUHJvdG9GdW5jU3RyaW5naWZ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggOGU1MWUwMzgyYTRj
ZTJiYzc5ZTVlZjA2NWFjZDQzNzdkMzgwOTI4NS4uOTViN2U5YWQ5ZjJlMjU0OTk4ZmM5NTQzZWY1
ZjdkZmE0Y2I5NjMxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcApAQCAtMjM3Miw3ICsyMzcyLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmYXVsdEhhc0luc3Rh
bmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUsIEoKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJp
dmF0ZUZ1bmNJbnN0YW5jZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgcHJvdG8gPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggNTk5N2MwNzZjNzAxZjdiNmFiNmUyNjVmYTU4NmIwODc2MzM2YTBjOC4uNjU3YmZjZDFhNmIy
MzQwZWM0ZDFiOThkYWIwZGEyZmExN2MwYzFkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBjbGFzcyBKU0ZpbmFsT2JqZWN0
IGZpbmFsIDogcHVibGljIEpTT2JqZWN0IHsKICAgICB9CiB9OwogCi1KU19FWFBPUlRfUFJJVkFU
RSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VP
ZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOwogCiBpbmxp
bmUgSlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZseShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3IuY3BwCmluZGV4IGFlZTZmMTllNDRhMmNjMmRlYjk4OTUwNDQ2NWQ3NWUy
MjE2NTkwM2YuLmZhMzMzODJlZmM4M2MwNWYxOTVkNTRiZTZmNDUwODQzYzEwYWY1MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9yLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRB
cnJheVZpZXcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KTsKIAogSlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY29uc3RydWN0VHlw
ZWRBcnJheVZpZXcsIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KQpAQCAtNTcsOSArNTcsNyBAQCBT
dHJ1Y3R1cmUqIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKAog
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiB9CiAKLQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RU
eXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKaW5kZXggMzE2OTIxMTQ1M2YyN2JjZDBhYTBlN2RkMTEx
ZjUyZGIzNjExMDI1MC4uMmU2NTgxNTRmMzRlMTgwZDcyNzg4NjAyNjE2MjVhMTllZmMwNmU2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKQEAgLTM0LDYgKzM0LDIzIEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1By
b3RvRnVuY1ZhbHVlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5UHJvdG9WaWV3RnVuY0VudHJpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNLZXlzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1
ZGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jTGFzdEluZGV4T2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVu
Y0xlbmd0aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVu
Y1NsaWNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOworCiAjZGVmaW5lIENBTExfR0VORVJJQ19UWVBF
REFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihmdW5jdGlvbk5hbWUpIGRvIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgc3dpdGNoICh0aGlzVmFsdWUuZ2V0T2JqZWN0KCktPmNsYXNz
SW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgeyAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgY2FzZSBUeXBlVWludDhDbGFtcGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC02MiwyMCArNzks
MjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiB9IHdoaWxlIChmYWxzZSkKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5VmlldywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih2YWx1ZS5pc0NlbGwoKSAmJiBpc1R5cGVkVmlldyh2
YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJbmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlT
dG9yYWdlVHlwZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2Fs
bEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9i
amVjdCwgYXJndW1lbnQuaXNDZWxsKCkgJiYgaXNUeXBlZFZpZXcoYXJndW1lbnQuYXNDZWxsKCkt
PmNsYXNzSW5mbyhnbG9iYWxPYmplY3QtPnZtKCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihqc0Nhc3Q8SlNBcnJheUJ1ZmZl
clZpZXcqPihhcmd1bWVudCktPmlzTmV1dGVyZWQoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtOTEsNyArMTA4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBl
ZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmxlbmd0aCgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dl
dE9yaWdpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQ
cml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApLmdldE9iamVjdCgpLT5jbGFzc0luZm8odm0pLT50eXBlZEFycmF5U3RvcmFn
ZVR5cGU7CkBAIC0xMTUsMjIgKzEzMiwyMiBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY3JlYXRl
VHlwZWRBcnJheUl0ZXJhdG9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+YXJyYXlJdGVyYXRvclN0cnVjdHVyZSgpLCB0aGlzT2JqZWN0LCBqc051bWJlcihz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oa2luZCkpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jVmFsdWVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjcmVh
dGVUeXBlZEFycmF5SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJh
dGlvbktpbmQ6OlZhbHVlcyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHR5cGVkQXJyYXlQcm90b1ZpZXdGdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0
eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJy
YXlJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6
RW50cmllcyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1Byb3RvRnVuY0tleXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJyYXlJdGVyYXRvck9iamVj
dChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6S2V5cyk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEzOSw3ICsxNTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YQogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmlj
VHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTUwLDcgKzE2Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgQ0FMTF9HRU5F
UklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvRnVuY1NldCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2
MSw3ICsxNzgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4oSlNHbG9iYWxPYgogICAgIENBTExfR0VORVJJQ19U
WVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNDb3B5V2l0aGluKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzIs
NyArMTg5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmNsdWRlcyhKU0dsb2JhbE9iamUKICAgICBDQUxMX0dFTkVSSUNfVFlQ
RURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
SW5jbHVkZXMpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4
Myw3ICsyMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsTwogICAgIENBTExfR0VORVJJQ19U
WVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNMYXN0SW5kZXhPZik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NCw3
ICsyMTEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5
Vmlld1Byb3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplYwogICAgIENBTExfR0VORVJJQ19UWVBF
REFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJ
bmRleE9mKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNKb2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jSm9pbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjA1LDcgKzIyMiw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
Sm9pbihKU0dsb2JhbE9iamVjdCoKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0
ZXJGdW5jQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0
ZXJGdW5jQnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTYsNyArMjMzLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRl
ckZ1bmNCdWZmZXIoSlNHbG9iYWwKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNyw3ICsyNDQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1By
b3RvR2V0dGVyRnVuY0xlbmd0aChKU0dsb2JhbAogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZ
X1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNM
ZW5ndGgpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzgsNyArMjU1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKEpTR2wKICAgICBDQUxMX0dF
TkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0OSw3ICsyNjYsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZz
ZXQoSlNHbAogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNS
ZXZlcnNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJz
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYwLDcgKzI3Nyw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShKU0ds
b2JhbE9iamVjCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9O
KGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlD
cmVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3MSw3ICsyODgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0
ZShKU0dsb2JhbE9iagogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5D
VElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90
b0Z1bmNTbGljZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1Ns
aWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODIsNyArMjk5LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZShKU0ds
b2JhbE9iamVjdCoKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJ
T04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY1Rv
U3RyaW5nVGFnKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJG
dW5jVG9TdHJpbmdUYWcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgK
aW5kZXggOTIxYTVkMDlmYjNiMzdlOGZiMTE2YzNhM2E0MWZjNzVkOWQxMGNkZS4uOGU3ZGFjMTQx
YmNhYjg0NjIwYTk0OGM1ZjkzNzE5MGEyZWJkMDc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaApAQCAt
NTEsMTEgKzUxLDExIEBAIGNsYXNzIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJp
dmF0ZUZ1bmNJc05ldXRlcmVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5
cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y0dldE9yaWdpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFy
cmF5Q3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzTmV1dGVy
ZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
U29ydCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1
bmNMZW5ndGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZh
dGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZSk7CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VHlwZWRBcnJheXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFy
cmF5cy5jcHAKaW5kZXggZDFiNWZmMTJhYTVmN2U1YmRmN2UwMmMzN2QxYmVkYzhiNjc2MTE5OC4u
ZmJkOTM2MWQ3YzNiN2RiMzlmMWM5YzRkNDU1YTE3MzE5M2VhODczZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAKQEAgLTI5LDE2ICsyOSwy
NiBAQAogI2luY2x1ZGUgIkdlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCIKICNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVz
LmgiCisjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNkZWZpbmUgTUFLRV9DT05TVFJVQ1RPUlMoQ2xhc3Mp
IFwKKyAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbCMjQ2xhc3MsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpIHsgXAorICAgICAgICBy
ZXR1cm4gY2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGw8SlMjI0NsYXNzPihnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSk7IFwKKyAgICB9IFwKKyAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0IyNDbGFzcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkgeyBcCisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXdJbXBsPEpTIyNDbGFzcz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOyBcCisgICAg
fQorCiAjdW5kZWYgTUFLRV9TX0lORk8KICNkZWZpbmUgTUFLRV9TX0lORk8odHlwZSkgXAogICAg
IHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTIyN0eXBlIyNBcnJheTo6c19pbmZvID0geyBc
CiAgICAgICAgICN0eXBlICJBcnJheSIsICZKUyMjdHlwZSMjQXJyYXk6OkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgXAogICAgICAgICBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTIyN0eXBl
IyNBcnJheSkgXAogICAgIH07IFwKLSAgICBjb25zdCBDbGFzc0luZm8qIGdldCMjdHlwZSMjQXJy
YXlDbGFzc0luZm8oKSB7IHJldHVybiAmSlMjI3R5cGUjI0FycmF5OjpzX2luZm87IH0KKyAgICBj
b25zdCBDbGFzc0luZm8qIGdldCMjdHlwZSMjQXJyYXlDbGFzc0luZm8oKSB7IHJldHVybiAmSlMj
I3R5cGUjI0FycmF5OjpzX2luZm87IH0gXAorICAgIE1BS0VfQ09OU1RSVUNUT1JTKHR5cGUjI0Fy
cmF5KQogCiBNQUtFX1NfSU5GTyhJbnQ4KTsKIE1BS0VfU19JTkZPKEludDE2KTsKQEAgLTUwLDEx
ICs2MCw3IEBAIE1BS0VfU19JTkZPKFVpbnQzMik7CiBNQUtFX1NfSU5GTyhGbG9hdDMyKTsKIE1B
S0VfU19JTkZPKEZsb2F0NjQpOwogCi1KU1VpbnQ4QXJyYXkqIGNyZWF0ZVVpbnQ4VHlwZWRBcnJh
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVm
UHRyPEFycmF5QnVmZmVyPiYmIGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKQotewotICAgIHJldHVybiBKU1VpbnQ4QXJyYXk6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgV1RGTW92ZShidWZmZXIpLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQotCitN
QUtFX0NPTlNUUlVDVE9SUyhEYXRhVmlldyk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MTA5ZDU4ZDhmOTgyYmExZDY0YTVlNGJiOTBiZTAxNGYzOWNjY2ZkNi4uMmMzNzMyNTgwY2JlY2Ux
MzViMmNlNTBjOTMyZGViYTE4MGJjZjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcApAQCAtNDIsMjIgKzQyLDIyIEBAIHZvaWQgTWFw
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTWFwUHJvdG90eXBlKiBtYXBQcm90
b3R5cGUsIEdldHRlclNlCiAgICAgcHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9s
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RNYXAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxNYXApOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0TWFw
KTsKIAogTWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxNYXAsIGNvbnN0cnVjdE1h
cCkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1hcChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxNYXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiTWFwIikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RNYXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0TWFwLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1hcCk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRIZWFkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlRfVU5VU0VE
KGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU01hcCo+KGdsb2JhbE9iamVjdC0+dm0oKSwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIEpTTWFwKiBtYXAgPSBqc0Nhc3Q8SlNNYXAq
PihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGVhZCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNr
ZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0TmV4dCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGdsb2JhbE9iamVj
dC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIGF1dG8qIGJ1Y2tldCA9IGpz
Q2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkp
OwpAQCAtMTM1LDcgKzEzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJp
dmF0ZUZ1bmNNYXBCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnZtKCkuc2VudGluZWxNYXBCdWNrZXQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNr
ZXRLZXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRLZXksIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGpzRHluYW1pY0Nhc3Q8SlNNYXA6OkJ1Y2tl
dFR5cGUqPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKICAg
ICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNNYXA6OkJ1Y2tldFR5cGUqPihjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0S2V5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYnVja2V0LT5rZXkoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRWYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldFZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBqc0R5bmFtaWNDYXN0PEpTTWFwOjpCdWNrZXRU
eXBlKj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAg
YXV0byogYnVja2V0ID0ganNDYXN0PEpTTWFwOjpCdWNrZXRUeXBlKj4oY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuaAppbmRleCBkYjlkNDdkYjNlMTc1NGEyOGEwYThiMmVlZWQzMWViYmFmMmJm
YTkxLi43YTM1YWU3ODQ1YjhlMTc2YjQzYmNmM2E2M2I0Mjg5MzQ1OGU0ZWQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKQEAgLTU3LDkgKzU3
LDkgQEAgY2xhc3MgTWFwQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoTWFwQ29uc3RydWN0
b3IsIEludGVybmFsRnVuY3Rpb24pOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
cFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRLZXkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRW
YWx1ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEtleSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0VmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmluZGV4
IGU3NDQxOWYzNmZjMjRjZjY3MTliZTQ5YjU0MzM0NjhhNDc5N2ZkOGUuLjRmYWU2YTkzNGQ3YjMz
NjcxMjE3NzY5MjM4MTk0MjY0N2E2YWQ4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcApAQCAtNDMsMTYgKzQzLDE2IEBAIGNvbnN0IENsYXNz
SW5mbyBNYXBQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk1hcCIsICZCYXNlOjpzX2luZm8sICZtYXBQ
cm90b3R5cGVUYWJsCiBAZW5kCiAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXBQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jRGVsZXRlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXBQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0hhcyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWFwUHJvdG9GdW5jU2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNWYWx1ZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
cFByb3RvRnVuY0tleXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWFwUHJvdG9GdW5jU2l6ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jQ2xlYXIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jRGVsZXRlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVuY0dldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNIYXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obWFwUHJvdG9GdW5jU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hcFByb3RvRnVuY1ZhbHVlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYXBQcm90b0Z1bmNLZXlzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1h
cFByb3RvRnVuY0VudHJpZXMpOworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiht
YXBQcm90b0Z1bmNTaXplKTsKICAgICAKIHZvaWQgTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC05Nyw3ICs5Nyw3
IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIEpTTWFwKiBnZXRNYXAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB0aGlzVmFsCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04obWFwUHJvdG9GdW5jQ2xlYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1hcChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtMTA2
LDcgKzEwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jQ2xl
YXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXBQcm90b0Z1bmNEZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jRGVs
ZXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTExNCw3ICsxMTQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0RlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG1hcC0+
cmVtb3ZlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04obWFwUHJvdG9GdW5jR2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTEyMiw3ICsx
MjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0dldChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUobWFwLT5nZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jSGFzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hcFByb3RvRnVuY0hhcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU01hcCogbWFwID0gZ2V0TWFwKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFtYXApCkBAIC0xMzAs
NyArMTMwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNIYXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihtYXAtPmhhcyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5j
U2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1h
cChnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSk7CkBAIC0xNTAsMjIgKzE1MCwyMiBAQCBpbmxpbmUg
SlNWYWx1ZSBjcmVhdGVNYXBJdGVyYXRvck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqCiAgICAgcmV0dXJuIEpTTWFwSXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LT5tYXBJdGVyYXRvclN0cnVjdHVyZSgpLCBtYXAsIGtpbmQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXBQcm90b0Z1bmNWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
cmVhdGVNYXBJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9u
S2luZDo6VmFsdWVzKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJv
dG9GdW5jS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNLZXlzLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlTWFwSXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OktleXMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
cFByb3RvRnVuY0VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVNYXBJ
dGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6RW50
cmllcykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1Np
emUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jU2l6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU01hcCogbWFw
ID0gZ2V0TWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYg
KCFtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmlu
ZGV4IGRmZjc4OTk3ZjdjYzg0Y2IxYTY0YmQ4ZTM1YjNkMGQyMTgyMjk0OWUuLjY4OTE5MjMwNTA2
ZDA1YzBjZWNmYzcwZjZlMWVmYzczMWI4YTEzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC0zMSwzOCArMzEsMzggQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShNYXRoT2JqZWN0
KTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQUNvcyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jQUNvc2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FTaW4oSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FT
aW5oKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuaChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jQVRhbjIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NicnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NlaWwoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWF0aFByb3RvRnVuY0NsejMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDb3MoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0Nv
c2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbWF0aFByb3RvRnVuY0V4cChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jRXhwbTEoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3Rv
RnVuY0Zyb3VuZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jSHlwb3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jTG9nMXAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzEwKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNM
b2cyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1bmNNYXgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY01pbihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jUG93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNSYW5kb20oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1JvdW5kKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNTaWduKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1Npbmgo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY1NxcnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RhbihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5j
VGFuaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXRoUHJvdG9GdW5jSU11bChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQUNvcyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBQ29zaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNBU2luKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0FTaW5oKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVu
Y0FUYW4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbmgpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbjIpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ2JydCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNDZWlsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0NsejMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVu
Y0Nvcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNDb3NoKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0V4cCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNFeHBtMSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hdGhQcm90b0Z1bmNGcm91bmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRo
UHJvdG9GdW5jSHlwb3QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
TG9nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzFwKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzEwKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXRoUHJvdG9GdW5jTWF4KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFBy
b3RvRnVuY01pbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNQb3cp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUmFuZG9tKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1JvdW5kKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1NpZ24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYXRoUHJvdG9GdW5jU2luKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3Rv
RnVuY1NpbmgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jU3FydCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNUYW4pOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jVGFuaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNJTXVsKTsKIAogY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6
OnNfaW5mbyA9IHsgIk1hdGgiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKE1hdGhPYmplY3QpIH07CiAKQEAgLTEyNSwyNyArMTI1LDI3IEBAIHZv
aWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25z
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnVuY0FicyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9G
dW5jQWJzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmFicyhjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FDb3MoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY0FDb3MsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJs
ZU51bWJlcihNYXRoOjphY29zKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFs
T2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jQVNpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVNpbiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmFzaW4oY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
dGhQcm90b0Z1bmNBVGFuLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1i
ZXIoTWF0aDo6YXRhbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FU
YW4yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBVGFuMiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTU2LDEyICsxNTYsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jQVRhbjIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKGF0YW4yKGFyZzAsIGFyZzEp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NlaWwo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0NlaWwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihjZWlsKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jQ2x6MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0NsejMyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzAsMjIgKzE3MCwyMiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDbHozMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShjbHoodmFsdWUpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NvcyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ29zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6Y29zKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9O
dW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jRXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNFeHAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjpleHAoY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNGbG9vcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jRmxvb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihmbG9vcihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0h5
cG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNIeXBvdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjE1LDEyICsyMTUsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jSHlwb3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHNxcnQoc3VtKSAqIG1heCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNMb2coSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRv
TnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY01heChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTWF4
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTWF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNNaW4oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY01pbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjU0LDcgKzI1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVu
Y01pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXRoUHJvdG9GdW5jUG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1
bmNQb3csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgLy8gRUNNQSAxNS44LjIuMS4xMwogCkBAIC0yNjksMTcgKzI2OSwxNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNQb3coSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZShvcGVyYXRpb25NYXRoUG93KGFyZywgYXJnMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jUmFuZG9tKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1Jh
bmRvbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoZ2xvYmFsT2JqZWN0LT53ZWFr
UmFuZG9tTnVtYmVyKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jUm91bmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1JvdW5kLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoanNSb3VuZChjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpZ24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY1NpZ24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgZG91YmxlIGFyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCku
dG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoc3RkOjppc25hbihhcmcpKQpAQCAtMjg5
LDIyICsyODksMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5j
U2lnbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0ZDo6c2lnbmJpdChhcmcpID8gLTEgOiAxKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jU2luLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNE
b3VibGVOdW1iZXIoTWF0aDo6c2luKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xv
YmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jU3FydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jU3FydCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHNxcnQoY2FsbEZyYW1lLT5hcmd1
bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFBy
b3RvRnVuY1RhbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1h
dGg6OnRhbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0lNdWwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0lNdWwsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTMxNSw2NyArMzE1LDY3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFBy
b3RvRnVuY0lNdWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihsZWZ0ICogcmlnaHQpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQUNvc2goSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY0FDb3NoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3Vi
bGVOdW1iZXIoTWF0aDo6YWNvc2goY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9i
YWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNBU2luaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVNpbmgsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjphc2luaChjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FUYW5oKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG1hdGhQcm90b0Z1bmNBVGFuaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91
YmxlTnVtYmVyKE1hdGg6OmF0YW5oKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xv
YmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jQ2JydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ2JydCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmNicnQoY2FsbEZyYW1l
LT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDb3NoKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG1hdGhQcm90b0Z1bmNDb3NoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVO
dW1iZXIoTWF0aDo6Y29zaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9i
amVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVu
Y0V4cG0xKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNFeHBtMSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmV4cG0xKGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jRnJvdW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG1hdGhQcm90b0Z1bmNGcm91bmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJs
ZU51bWJlcihzdGF0aWNfY2FzdDxmbG9hdD4oY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJl
cihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNMb2cxcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTG9nMXAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjpsb2cxcChj
YWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzEwKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cxMCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZzEwKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1i
ZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jTG9nMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTG9nMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZzIoY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaW5oKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNTaW5oLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNE
b3VibGVOdW1iZXIoTWF0aDo6c2luaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGds
b2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFBy
b3RvRnVuY1RhbmgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1RhbmgsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjp0YW5oKGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jVHJ1bmMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY1RydW5jLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXJQcmVzZXJ2ZU5hTihnbG9iYWxPYmpl
Y3QpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5k
ZXggY2Q0ZTY0N2QxZDk1MzM5ZWZjOTc2NjUzZmQwMmFkYTRiY2E3MzE3My4uNjcyYmMxMzYwYWJj
NTliYjY0N2Y3NDIxYjcyNjA3MTE2MTM2NmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuaApAQCAtNTQsOCArNTQsOCBAQCBjbGFzcyBNYXRoT2JqZWN0IGZp
bmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jQWJzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNGbG9vcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5j
VHJ1bmMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04obWF0aFByb3RvRnVuY0Ficyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQ
cm90b0Z1bmNGbG9vcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNU
cnVuYyk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAxNjc1NDY5
YmM3MWJiZDIzYWNjNDk4OThmZjYwNzQ2Y2JiMjJkMGJkLi43Y2MxMWI1ZjVlMTI5NzIyMDE2Yjg2
NzFmMTM3YzZiYjE3MjEzODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzEsNiArMzEsMTkgQEAg
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3JCYXNlKTsKIAogY29uc3QgQ2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3RydWN0b3JCYXNl
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvckJhc2UpIH07CiAKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXZhbEVycm9yKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSYW5nZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFJhbmdlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbFJlZmVyZW5jZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNhbGxTeW50YXhFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RTeW50YXhFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjYWxsVHlwZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFR5cGVFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihjYWxsVVJJRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0VVJJRXJyb3IpOworCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgogaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0
SW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
IHsKQEAgLTU2LDU2ICs2OSw1NiBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvcjxlcnJvclR5cGU+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJy
b3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXZhbEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3I8RXJyb3JUeXBlOjpFdmFsRXJyb3I+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXZhbEVycm9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6RXZhbEVycm9yPjo6Y29u
c3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSYW5nZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxSYW5nZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9y
VHlwZTo6UmFuZ2VFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFJhbmdlRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0UmFuZ2VFcnJvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlJhbmdlRXJyb3I+Ojpjb25zdHJ1Y3RJbXBs
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFJlZmVyZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxS
ZWZlcmVuY2VFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5
cGU6OlJlZmVyZW5jZUVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0UmVmZXJlbmNl
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0UmVmZXJlbmNlRXJyb3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvcj46
OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbFN5bnRheEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
PEVycm9yVHlwZTo6U3ludGF4RXJyb3I+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTeW50
YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTeW50YXhFcnJvciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlN5bnRheEVycm9yPjo6Y29u
c3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y2FsbFR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5
cGU6OlR5cGVFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpUeXBlRXJyb3I+Ojpjb25zdHJ1Y3RJbXBsKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxVUklFcnJvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlVSSUVycm9yPjo6Y2Fs
bEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29u
c3RydWN0VVJJRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JU
eXBlOjpVUklFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgKaW5k
ZXggYjE2NTg0NThlOGQ5ZmM1ODEwZDViOTA1ZWExYTk5ZTU2MzBlNWUzNy4uZWM5YjJkNTgzMGYw
Y2M0Y2IzMjU2YzI3NTk5MGRkZGZmMWUxMDFlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBjbGFzcyBDYWxsRnJhbWU7CiAKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpTQ19I
T1NUX0NBTEwgKlJhd05hdGl2ZUZ1bmN0aW9uKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTICpSYXdO
YXRpdmVGdW5jdGlvbikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIAogY2xhc3MgTmF0
aXZlRnVuY3Rpb24gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjM4OTU1NTg1ODYwMjhmODIzMDhk
NTYzNWFhMjZkZWQ3MDVmMWY1NC4uYWFlMjBhNWJjNzU5YjA1MmNmMTkzOTc4OGI2YzAwYzJhZGIy
MmNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRl
ckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0
dGVyRnVuY3Rpb24uY3BwCkBAIC0zMyw3ICszMywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIGNvbnN0
IENsYXNzSW5mbyBOdWxsR2V0dGVyRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShOdWxsR2V0
dGVyRnVuY3Rpb24pIH07CiAKIG5hbWVzcGFjZSBOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbCB7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZpbmVk
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKKworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY2FsbFJldHVyblVuZGVmaW5lZCk7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsUmV0dXJuVW5kZWZpbmVkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5k
ZXggNDk5NDg5NzEzMWU4ZWY2NzFmYzhkMjk3NDdkN2E2OTA4MjBiODA5YS4uMjZmM2I2YThmOWRi
Njc4Y2Q5NGQwNWFlODhiMTFiODllNjFjMGViYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCkBAIC03NSw3ICs3NSwxMCBA
QCBzdGF0aWMgYm9vbCBjYWxsZXJJc1N0cmljdChWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogCiBuYW1lc3BhY2UgTnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWwgewogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZpbmVkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbFJldHVyblVuZGVmaW5lZCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjYWxsVGhyb3dFcnJvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsUmV0dXJuVW5kZWZpbmVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogI2lmICFBU1NFUlRfRU5BQkxFRAogICAgIFVOVVNF
RF9QQVJBTShnbG9iYWxPYmplY3QpOwpAQCAtODUsNyArODgsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUaHJvd0Vycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbFRocm93RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDQwNGU3OWIzZDVjM2Ix
MzE5YWE1ODI4NzBmNDZiMWU1YjkzNDEzMjIuLjhmZjQ1MzQ5NTVhMGE4MTc5ZGI1MmMwMjMwODQ0
Nzg4YmYzOGQ4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlckNvbnN0cnVjdG9y
RnVuY0lzSW50ZWdlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNTYWZlSW50ZWdl
cihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIpOwog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApAQCAtNDksOCArNDksOCBAQCBjb25zdCBDbGFzc0luZm8g
TnVtYmVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rp
b246OnNfaQogQGVuZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY2FsbE51bWJlckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKTsKIAogTnVtYmVyQ29uc3RydWN0
b3I6Ok51bWJlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxOdW1iZXJDb25zdHJ1Y3Rvciwg
Y29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IpCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgTnVtYmVy
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1i
ZXJQcm90b3R5cGUpCiB9CiAKIC8vIEVDTUEgMTUuNy4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTEyLDcgKzExMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnCiB9CiAKIC8vIEVDTUEgMTUu
Ny4yCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbE51bWJlckNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMjcsMTMgKzEyNywxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogfQogCiAvLyBFQ01BLTI2MiAyMC4xLjIuMwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyQ29u
c3RydWN0b3JGdW5jSXNJbnRlZ2VyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oTnVtYmVyQ29u
c3RydWN0b3I6OmlzSW50ZWdlckltcGwoY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAog
Ly8gRUNNQS0yNjIgMjAuMS4yLjUKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJDb25zdHJ1
Y3RvckZ1bmNJc1NhZmVJbnRlZ2VyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7
CiAgICAgaWYgKGFyZ3VtZW50LmlzSW50MzIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDU4YWMxOGNmMjBkNWY5ZjFmMWY0
NWRjZTJhNzk2Yjc3OWZlNjliMTAuLmVmYzY3NzM1MTkwOTJjYWI2Nzk3OWNjNGNkYmZmODlmNTU1
MzMzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmNwcApAQCAtNDAsMTAgKzQwLDEwIEBAIHR5cGVkZWYgV1RGOjpkb3VibGVfY29udmVy
c2lvbjo6U3RyaW5nQnVpbGRlciBEb3VibGVDb252ZXJzaW9uU3RyaW5nQnVpbGRlcjsKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVk
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQ
cm90b0Z1bmNUb1ByZWNpc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9GaXhl
ZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb0V4
cG9uZW50aWFsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3Rv
RnVuY1RvUHJlY2lzaW9uKTsKIAogfQogCkBAIC0zODIsNyArMzgyLDcgQEAgU3RyaW5nIHRvU3Ry
aW5nV2l0aFJhZGl4KGRvdWJsZSBkb3VibGVWYWx1ZSwgaW50MzJfdCByYWRpeCkKIC8vIFRoaXMg
bWV0aG9kIHRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHNwZWNpZnlpbmcgYSBudW1iZXIgb2Yg
KmRlY2ltYWwgcGxhY2VzKgogLy8gdG8gcm91bmQgdGhlIHNpZ25pZmljYW5kIHRvIChvciwgcHV0
IGFub3RoZXIgd2F5LCB0aGlzIG1ldGhvZCBvcHRpb25hbGx5IHJvdW5kcwogLy8gdG8gYXJndW1l
bnQtcGx1cy1vbmUgc2lnbmlmaWNhbnQgZmlndXJlcykuCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDE5
LDcgKzQxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VG9FeHBvbmVudGlhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAvLyBUaGlzIG1ldGhvZCB0YWtl
cyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIHRvIHJv
dW5kIHRoZQogLy8gc2lnbmlmaWNhbmQgdG8uIEhvd2V2ZXIgd2hlbiBjb252ZXJ0aW5nIGxhcmdl
IHZhbHVlcyAoMWUrMjEgYW5kIGFib3ZlKSB0aGlzCiAvLyBtZXRob2Qgd2lsbCBpbnN0ZWFkIGZh
bGxiYWNrIHRvIGNhbGxpbmcgVG9TdHJpbmcuIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3Rv
RnVuY1RvRml4ZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ1Myw3ICs0NTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4ZWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdAogLy8gZGVjaW1hbCwgd2hpbHN0IDEwMDAgaXMgY29udmVydGVk
IHRvIHRoZSBleHBvbmVudGlhbCByZXByZXNlbnRhdGlvbiAxLjAwZSszLgogLy8gRm9yIG5lZ2F0
aXZlIGV4cG9uZW50cyB2YWx1ZXMgPj0gMWUtNiBhcmUgZm9ybWF0ZWQgYXMgZGVjaW1hbCBmcmFj
dGlvbnMsCiAvLyB3aXRoIHNtYWxsZXIgdmFsdWVzIGNvbnZlcnRlZCB0byBleHBvbmVudGlhbCBy
ZXByZXNlbnRhdGlvbi4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9QcmVjaXNpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9QcmVj
aXNpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU0OSw3ICs1NDksNyBAQCBKU1N0cmluZyog
bnVtYmVyVG9TdHJpbmcoVk0mIHZtLCBkb3VibGUgZG91YmxlVmFsdWUsIGludDMyX3QgcmFkaXgp
CiAgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nSW50ZXJuYWwodm0sIGRvdWJsZVZhbHVlLCByYWRp
eCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9T
dHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTU2NCw3ICs1NjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobnVtYmVyVG9TdHJpbmdJbnRlcm5hbCh2bSwg
ZG91YmxlVmFsdWUsIHJhZGl4KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVy
UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU3OSw3ICs1
NzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9j
YWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0KGdsb2JhbE9iamVjdCwg
eCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNW
YWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1ZhbHVlT2YsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKaW5kZXggM2UwODNlYTM4ZTRiNTJkM2U1M2ZiZDVjMGMxZjZhNzdiYjExZTFm
ZS4uNWMwZTRmZWQ0MjMyZDY4M2Q2ODUwNjE5NjNiYmRkMDYxZDkyZTMzMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKQEAgLTQ5LDggKzQ5
LDggQEAgY2xhc3MgTnVtYmVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIE51bWJlck9iamVjdCB7
CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoTnVtYmVyUHJvdG90eXBl
LCBOdW1iZXJPYmplY3QpOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclBy
b3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5j
VmFsdWVPZik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKTsKIEpTU3RyaW5nKiBpbnQzMlRvU3RyaW5nKFZNJiwgaW50MzJfdCB2YWx1ZSwgaW50MzJf
dCByYWRpeCk7CiBKU1N0cmluZyogaW50NTJUb1N0cmluZyhWTSYsIGludDY0X3QgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpOwogSlNTdHJpbmcqIG51bWJlclRvU3RyaW5nKFZNJiwgZG91YmxlIHZhbHVl
LCBpbnQzMl90IHJhZGl4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBkNWYxYzI2Y2I5OGZlNGIwMWEzOTMwNWVmMGIw
ZDBjM2ZjMjMwYTFmLi5iMzFlOWJjZTgzYjRmYTEwNTg2NzlhYmY2NzVhYjMwNjBkMjdlYzYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCkBAIC0zMSwyMCArMzEsMjAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3NpZ24oSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29u
c3RydWN0b3JWYWx1ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvclNldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yRGVmaW5lUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvclNlYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVk
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc0V4dGVu
c2libGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JBc3NpZ24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9i
amVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvclNldFByb3RvdHlwZU9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydGllcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JTZWFsKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JGcmVlemUpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclByZXZlbnRFeHRlbnNpb25zKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4pOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZSk7CiAKIH0KIApAQCAt
ODMsOCArODMsOCBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0Q29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogKi8KIAogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE9iamVjdENvbnN0cnVj
dG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhPYmpl
Y3RDb25zdHJ1Y3Rvcik7CiAKIE9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBjYWxsT2JqZWN0Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhPYmplY3RDb25z
dHJ1Y3RvcikKQEAgLTEzMCwyMiArMTMwLDIyIEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RPYmplY3RXaXRoTmV3VGFyZ2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBhcmd1bWVudC50b09iamVjdChnbG9iYWxPYmpl
Y3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhP
YmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9i
amVjdFdpdGhOZXdUYXJnZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhbGxGcmFtZS0+bmV3
VGFyZ2V0KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxPYmplY3RDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdFdpdGhOZXdU
YXJnZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEpTVmFsdWUoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuZ2V0UHJvdG90eXBl
KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9yU2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29u
c3RydWN0b3JTZXRQcm90b3R5cGVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEzLDcgKzIx
Myw3IEBAIEpTVmFsdWUgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIGRlc2NyaXB0b3JzOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9y
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjQsNyAr
MjI0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rvckdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckdldE93blBy
b3BlcnR5RGVzY3JpcHRvcnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzMyw3ICsyMzMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
cyhnbG9iYWxPYmplY3QsIG9iamVjdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNDMsNyArMjQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QKIH0KIAog
Ly8gRklYTUU6IFVzZSB0aGUgZW51bWVyYXRpb24gY2FjaGUuCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5U3ltYm9scyhKU0dsb2JhbE9i
amUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9w
ZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN5bWJvbHMs
IERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUsIFdURjo6bnVsbG9wdCkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcktleXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JLZXlzLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvcktleXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMoZ2xvYmFs
T2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVy
dGllc01vZGU6OkV4Y2x1ZGUsIENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpLZXlzKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yQXNzaWduKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yQXNzaWduLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zODksNyArMzg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvckFzc2lnbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRhcmdldCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0Q29uc3RydWN0b3JWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUzMSw3ICs1MzEs
NyBAQCBib29sIHRvUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgaW4sIFByb3BlcnR5RGVzYwogICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHko
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTk4LDcgKzU5OCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGRlZmlu
ZVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTYxMyw3ICs2MTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yRGVmaW5lUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGRlZmluZVByb3BlcnRpZXMoZ2xvYmFsT2Jq
ZWN0LCB0YXJnZXRPYmosIHByb3BzKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENv
bnN0cnVjdG9yQ3JlYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NDcsNyArNzQ3LDcgQEAg
SlNPYmplY3QqIG9iamVjdENvbnN0cnVjdG9yU2VhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JTZWFsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG9iamVjdENvbnN0cnVjdG9yU2VhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzc5
LDcgKzc3OSw3IEBAIEpTT2JqZWN0KiBvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0CiAgICAgcmV0dXJuIG9iamVjdDsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckZyZWV6
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNzkyLDcgKzc5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtODA4LDcgKzgwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCoKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKIApAQCAtODI2LDcgKzgyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odGVzdEludGVncml0eUxldmVsPEludGVn
cml0eUxldmVsOjpTZWFsZWQ+KGdsb2JhbE9iamVjdCwgdm0sIG9iamVjdCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRnJvemVuKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4sIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogCkBAIC04NDQsNyArODQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRnJvemVuKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0ZXN0SW50ZWdy
aXR5TGV2ZWw8SW50ZWdyaXR5TGV2ZWw6OkZyb3plbj4oZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
SXNFeHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXNFeHRl
bnNpYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NTcsNyArODU3LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihpc0V4
dGVuc2libGUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvcklzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGI4OGMzNTk5MWUwMzkyNTAwN2Q0NTc4NDczM2Y2YTE4MTc5YWUyOGYuLjVjMjhiNzlhYzE5
Mzg4Y2ZiZmRjMGJiNWFjNjJkMGNiMDkwZGQ5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMjYsMTEgKzI2LDExIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5
U3ltYm9scyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JLZXlzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3Ry
dWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcktleXMpOwogCiBjbGFzcyBPYmplY3RQcm90b3R5cGU7
CiAKQEAgLTE2Niw2ICsxNjYsNiBAQCBKU1ZhbHVlIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Kik7CiBKU0FycmF5KiBv
d25Qcm9wZXJ0eUtleXMoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFByb3BlcnR5TmFtZU1v
ZGUsIERvbnRFbnVtUHJvcGVydGllc01vZGUsIE9wdGlvbmFsPENhY2hlZFByb3BlcnR5TmFtZXNL
aW5kPik7CiBib29sIHRvUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JJcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmNwcAppbmRleCA1Nzc3YWZiYTI2Mjc5NjgwNmRhYWU0YzljZTcxZWFiNTNlMGRlMjkwLi5j
ODE1M2QwNTJjZjJlNzEzN2E1YmExNDYyZmI5ZjE3YmU3NmIyNzhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTI5LDE1ICsy
OSwxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5j
SGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9G
dW5jRGVmaW5lU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9G
dW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNWYWx1ZU9mKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jRGVmaW5lR2V0
dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0Rl
ZmluZVNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90
b0Z1bmNMb29rdXBHZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0UHJvdG9GdW5jTG9va3VwU2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTsKIAogU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE9iamVjdFByb3RvdHlwZSk7CiAK
QEAgLTc0LDcgKzc0LDcgQEAgT2JqZWN0UHJvdG90eXBlKiBPYmplY3RQcm90b3R5cGU6OmNyZWF0
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFMKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Zh
bHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9i
amVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKICAgICBKU09iamVjdCogdmFsdWVPYmogPSB0aGlz
VmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIG9i
amVjdFByb3RvdHlwZUhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgYmFzZSwgYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHksIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEyMiw3ICsxMjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dFByb3RvRnVuY0hhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdFByb3RvdHlwZUhhc093blByb3BlcnR5
KGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTQ5LDcgKzE0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
UHJvdG9GdW5jSXNQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfQogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjAzLDcgKzIwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzMsNyArMjMzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQ
cm90b0Z1bmNMb29rdXBHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RQcm90b0Z1bmNMb29rdXBTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2
Myw3ICsyNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVu
Y0xvb2t1cFNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0UHJvdG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04ob2JqZWN0UHJvdG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTI4MSw3ICsyODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyAx
NS4yLjQuMyBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nKCkKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMxMSw3ICszMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCB0
b1N0cmluZywgY2FsbERhdGEsIHRoaXNWYWx1ZSwgKnZtLmVtcHR5TGlzdCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApp
bmRleCBjMzc2ZTZjYjA3OTNiMDI5OTc1N2ZlMTg2NmI4MjE1YjY5NDExMzU0Li44NDdiOWFmMzgx
NjY3ZDkzMDExMTI3YzFlMzM3ODUzN2MyMmMzOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBP
YmplY3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1KU19FWFBPUlRf
UFJJVkFURSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvU3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU19FWFBPUlRfUFJJVkFURSBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY1RvU3RyaW5nKTsKIGJvb2wgb2Jq
ZWN0UHJvdG90eXBlSGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IDMxNGEyNjNmMTEwZDQxNWUyYmVjYjhkM2ZkMDFiMTM3Mzc2MjZiNDguLmRjY2ZjZGM4YWZi
MzY4ZTMwMzU0YWE2ZWU2OTBlODA5MGEzNmQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCkBAIC00NCwxNSArNDQsMTYgQEAg
UHJveHlDb25zdHJ1Y3RvciogUHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJveHkoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFBy
b3h5T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjYWxsUHJveHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0UHJveHlPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04obWFrZVJldm9jYWJsZVByb3h5KTsKIAogUHJveHlDb25zdHJ1Y3Rvcjo6UHJveHlDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlLCBjYWxsUHJveHksIGNvbnN0cnVjdFByb3h5T2JqZWN0KQogewogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlUmV2b2NhYmxlUHJveHkoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04obWFrZVJldm9jYWJsZVByb3h5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03
OSwxNCArODAsMTQgQEAgdm9pZCBQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIGNvbnN0IGNoYXIqIG5hbWUsIEpTR2xvYmFsT2JqZWN0KgogICAgIHB1dERpcmVjdCh2bSwg
bWFrZUlkZW50aWZpZXIodm0sICJyZXZvY2FibGUiKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIDIsICJyZXZvY2FibGUiX3MsIG1ha2VSZXZvY2FibGVQcm94eSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RQcm94eU9iamVj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RQcm94eU9iamVjdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVl
IHRhcmdldCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBoYW5kbGVyID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5
T2JqZWN0OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB0YXJnZXQsIGhhbmRsZXIpKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFByb3h5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bFByb3h5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxl
ZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlByb3h5IikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCmluZGV4IGU2MjY1
OGQxMDkwMzBmMjU2N2E0N2IyNThhMDQ4ZDJlYjU5NzFhMDguLjUxOTYyYWY4MGQ5YTkzNTQ4MDUz
YTEwNjQzYTUxYzZlZDlkMDY2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5jcHAKQEAgLTQwLDYgKzQwLDkgQEAgU1RBVElDX0FTU0VSVF9JU19UUklW
SUFMTFlfREVTVFJVQ1RJQkxFKFByb3h5T2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJbmZvIFByb3h5
T2JqZWN0OjpzX2luZm8gPSB7ICJQcm94eU9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUHJveHlPYmplY3QpIH07CiAKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94eUNhbGwpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocGVyZm9ybVByb3h5Q29uc3RydWN0KTsKKwogUHJveHlPYmpl
Y3Q6OlByb3h5T2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCiB7CkBAIC00NzAsNyArNDczLDcgQEAgYm9vbCBQcm94eU9iamVjdDo6
cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVu
c2lnbmUKICAgICByZXR1cm4gdGhpc09iamVjdC0+cHV0QnlJbmRleENvbW1vbihnbG9iYWxPYmpl
Y3QsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5Q2FsbChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJveHlDYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIE5PX1RBSUxfQ0FMTFMoKTsK
IApAQCAtNTE3LDcgKzUyMCw3IEBAIENhbGxEYXRhIFByb3h5T2JqZWN0OjpnZXRDYWxsRGF0YShK
U0NlbGwqIGNlbGwpCiAgICAgcmV0dXJuIGNhbGxEYXRhOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBwZXJmb3JtUHJveHlDb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ocGVyZm9ybVByb3h5Q29uc3RydWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIE5PX1RBSUxfQ0FMTFMoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwCmluZGV4IDA0YWE2
ZmRlMTliNjk0N2IwN2NhNDEyMWU1NjcyMmFlZGE5NDY5NTcuLjhmZTc0NjY4NTAxMmRkZDEwNzFm
NGNmNWM0NjIzMTIyZTQ2OTgwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5UmV2b2tlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eVJldm9rZS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUHJveHlSZXZva2UqIFByb3h5UmV2
b2tlOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUHJveHlPYmplY3QqIHBy
b3gKICAgICByZXR1cm4gcmV2b2tlOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBwZXJmb3JtUHJveHlSZXZva2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94eVJldm9rZSk7CiAK
IFByb3h5UmV2b2tlOjpQcm94eVJldm9rZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBwZXJmb3JtUHJveHlSZXZva2UsIG51bGxwdHIpCkBA
IC01NSw3ICs1NSw3IEBAIHZvaWQgUHJveHlSZXZva2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
UHJveHlPYmplY3QqIHByb3h5KQogICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBlcmZvcm1Qcm94eVJldm9r
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJveHlSZXZva2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgUHJveHlSZXZv
a2UqIHByb3h5UmV2b2tlID0ganNDYXN0PFByb3h5UmV2b2tlKj4oY2FsbEZyYW1lLT5qc0NhbGxl
ZSgpKTsKICAgICBKU1ZhbHVlIHByb3h5VmFsdWUgPSBwcm94eVJldm9rZS0+cHJveHkoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKaW5kZXgg
MzIyNTVmOGU2YTA3NjhhZWVlYjZlODQ4Y2Y5OGRlM2E5NjZhOWM3Yy4uNDAxY2FmZTVhNDg0NGI4
MjcxYWEwZTRhYjVjNWY1YmRjN2U3NDMwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKQEAgLTMxLDE2ICszMSwxNiBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9i
amVjdENvbnN0cnVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdERlZmluZVByb3BlcnR5KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWZsZWN0T2JqZWN0R2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0UHJvdG90eXBlT2YoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RPd25L
ZXlzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0UHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
ZmxlY3RPYmplY3RTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RTZXRQcm90b3R5cGVPZihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04ocmVmbGVjdE9iamVjdENvbnN0cnVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdEdldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RHZXRQcm90b3R5cGVPZik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0SXNFeHRlbnNpYmxl
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RPd25LZXlz
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RQcmV2ZW50
RXh0ZW5zaW9ucyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2Jq
ZWN0U2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RT
ZXRQcm90b3R5cGVPZik7CiAKIH0KIApAQCAtODUsNyArODUsNyBAQCB2b2lkIFJlZmxlY3RPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0
LmNvbnN0cnVjdAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0Q29u
c3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RDb25zdHJ1Y3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZmxlY3RPYmplY3RDb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dAogfQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmRl
ZmluZXByb3BlcnR5Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RE
ZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0RGVmaW5lUHJv
cGVydHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3REZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsTwogfQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3Nl
Yy1yZWZsZWN0LmdldAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0
R2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RHZXQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
ZmxlY3RPYmplY3RHZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogfQogCiAv
LyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmdldG93bnByb3Bl
cnR5ZGVzY3JpcHRvcgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmpl
Y3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4Nyw3
ICsxODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplYwogfQogCiAvLyBodHRwczovL3RjMzku
Z2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmdldHByb3RvdHlwZW9mCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRQcm90b3R5cGVPZihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWZsZWN0T2JqZWN0R2V0UHJvdG90eXBlT2YsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTE5OSw3ICsxOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxl
Y3RPYmplY3RHZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogfQogCiAvLyBo
dHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmlzZXh0ZW5zaWJsZQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0SXNFeHRlbnNpYmxlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogfQog
CiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0Lm93bmtleXMK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdE93bktleXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdE93bktleXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIyNiw3ICsyMjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RP
YmplY3RPd25LZXlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QucHJldmVudGV4dGVuc2lvbnMK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFByZXZlbnRFeHRlbnNp
b25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5zaW9ucywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0
KiBnbG9iCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxl
Y3Quc2V0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RTZXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdFNldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjY1LDcgKzI2NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9i
amVjdFNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3Quc2V0cHJvdG90eXBlb2YKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFNldFByb3RvdHlwZU9mKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RTZXRQcm90b3R5cGVPZiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCmluZGV4IDIwMzE1M2QzODc0YjVlMDBhYTVkODVlNTQwZGEzM2M1MjA2
NGM3NGQuLjY0YjIxM2I3ZDkxMWM5NTFhOTEwNDAyNWRiNjkzZDNjYTI1MWU5MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAK
QEAgLTgyLDggKzgyLDggQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICovCiAKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSZWdFeHBDb25z
dHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRo
UmVnRXhwQ29uc3RydWN0b3IpOwogCiBSZWdFeHBDb25zdHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoUmVnRXhw
Q29uc3RydWN0b3IpCkBAIC0zMDksMjYgKzMwOSwyNiBAQCBKU09iamVjdCogY29uc3RydWN0UmVn
RXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsICBK
UwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcmVnRXhwQ3JlYXRlKGdsb2JhbE9iamVj
dCwgbmV3VGFyZ2V0LCBwYXR0ZXJuQXJnLCBmbGFnc0FyZykpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGVzU3BlY1JlZ0V4cENyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihl
c1NwZWNSZWdFeHBDcmVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBwYXR0ZXJuQXJnID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIGZsYWdzQXJnID0gY2FsbEZyYW1lLT5hcmd1bWVudCgx
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cENyZWF0ZShnbG9iYWxPYmplY3Qs
IEpTVmFsdWUoKSwgcGF0dGVybkFyZywgZmxhZ3NBcmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBlc1NwZWNJc1JlZ0V4cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihlc1NwZWNJ
c1JlZ0V4cCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNSZWdFeHAodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZy
YW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChnbG9iYWxP
YmplY3QsIGFyZ3MsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSwgY2FsbEZyYW1lLT5uZXdUYXJnZXQo
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhw
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJlZ0V4cENvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0UmVnRXhwKGdsb2JhbE9iamVjdCwgYXJncywgY2FsbEZyYW1lLT5qc0NhbGxlZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaAppbmRleCBiMmE2NDIxNDRkMDQ3ZjFiY2JjNjM0NDkxNDljYzJlMGQwNzdjNTE0Li5jYjU2
M2E0MmVmM2IwZmZmZDJlMWRiOWNkMTBjNzBiMjkwNjM2MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTcyLDcgKzcyLDcg
QEAgQUxXQVlTX0lOTElORSBib29sIGlzUmVnRXhwKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0czxS
ZWdFeHBPYmplY3Q+KHZtKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlc1Nw
ZWNSZWdFeHBDcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZXNTcGVjSXNSZWdFeHAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZXNTcGVjUmVnRXhwQ3JlYXRlKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZXNTcGVjSXNSZWdFeHApOwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCmluZGV4IDNlYTU1MDRkNjBkZmRhNDY0MzljZmNjMDk2YmZhOTIxY2M1YzE4YzkuLmMy
ZDY1NzIwYjhkMmU2ZjU4ZjYwMDgzZmEyMjE5YjYyYWM5NTk5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtMzYsMTcgKzM2
LDE3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21w
aWxlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9HZXR0ZXJHbG9iYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0
dGVyRG90QWxsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVn
RXhwUHJvdG9HZXR0ZXJVbmljb2RlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJGbGFncyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jRXhl
Yyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNDb21w
aWxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1Rv
U3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0
dGVyR2xvYmFsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3Rv
R2V0dGVySWdub3JlQ2FzZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdF
eHBQcm90b0dldHRlck11bHRpbGluZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihyZWdFeHBQcm90b0dldHRlckRvdEFsbCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWdFeHBQcm90b0dldHRlclN0aWNreSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJGbGFncyk7CiAKIGNvbnN0IENsYXNzSW5m
byBSZWdFeHBQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUmVnRXhwUHJvdG90eXBlKSB9Owog
CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgUmVnRXhwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTk2LDcgKzk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0Z1bmNUZXN0RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT50
ZXN0KGdsb2JhbE9iamVjdCwgc3RyaW5nKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFBy
b3RvRnVuY0V4ZWMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0V4ZWMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHJlZ2V4cC0+ZXhlYyhnbG9iYWxPYmplY3QsIHN0cmluZykpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFJlZ0V4cE9iamVj
dCogdGhpc09iamVjdCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKICAgICBKU1N0cmluZyogc3RyaW5nID0ganNDYXN0PEpTU3RyaW5nKj4oY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPm1hdGNo
R2xvYmFsKGdsb2JhbE9iamVjdCwgc3RyaW5nKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdF
eHBQcm90b0Z1bmNDb21waWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDEsNyArMjAxLDcg
QEAgc3RhdGljIGlubGluZSBGbGFnc1N0cmluZyBmbGFnc1N0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogcmUKICAgICByZXR1cm4gc3RyaW5nOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzEsNyArMjMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQ
cm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3RyaW5n
KGdsb2JhbE9iamVjdCwgJy8nLCBzb3VyY2UsICcvJywgZmxhZ3MpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI0Nyw3ICsyNDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyR2xvYmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmdsb2JhbCgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjYzLDcgKzI2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+
aWdub3JlQ2FzZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhw
UHJvdG9HZXR0ZXJNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0
ZXJNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3OSw3ICsyNzksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyTXVsdGlsaW5lKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KHJlZ2V4cC0+cmVnRXhwKCktPm11bHRpbGluZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
cmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5NSw3ICsy
OTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRG90
QWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmRvdEFsbCgpKSk7CiB9CiAgICAgCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0zMTEsNyArMzExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQ
cm90b0dldHRlclN0aWNreShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5zdGlja3koKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29k
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0dldHRlclVuaWNvZGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTMyNyw3ICszMjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPnVu
aWNvZGUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyRmxhZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJGbGFncywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSByZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCByZXN1bHQudG9TdHJpbmcoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvR2V0dGVyU291cmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5hbChnbG9i
YWxPYmplY3QsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFjdGVyczE2KCksIHBhdHRlcm4ubGVuZ3Ro
KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNT
ZWFyY2hGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIGdlbmVyaWNTcGxp
dCgKIH0KIAogLy8gRVMgMjEuMi41LjExIFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF0oc3RyaW5n
LCBsaW1pdCkKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU3Bs
aXRGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBQcm90b3R5cGUuaAppbmRleCBmZTEyYzljNGQyODY1MzUyYjg2NDlkZjc2MGZiNWViMDZiODJm
MTdmLi4xNWM3ODM5ODVmNzRiNmNlZjU2MGUwY2U5YmEyOWNmNzM4OWVlOWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNTYsOSAr
NTYsOSBAQCBjbGFzcyBSZWdFeHBQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9
OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFz
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFz
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWdFeHBQcm90b0Z1bmNUZXN0RmFzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0KTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QpOwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nl
dENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0
cnVjdG9yLmNwcAppbmRleCAwODZhNDY2NDdmOWJjNzZlYjEwNzdkYmVhNWZmZDlhM2I5ZTA2YWNi
Li45ZmRhODljNmQ3NmQ2ZGY2Y2VmMmVkZGIzMjkwZmNkODdiMWU5MmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00MiwyMiAr
NDIsMjIgQEAgdm9pZCBTZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTZXRQ
cm90b3R5cGUqIHNldFByb3RvdHlwZSwgR2V0dGVyU2UKICAgICBwdXREaXJlY3ROb25JbmRleEFj
Y2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1i
b2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdFNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbFNldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RTZXQpOwogCiBTZXRDb25zdHJ1Y3Rvcjo6U2V0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2Fs
bFNldCwgY29uc3RydWN0U2V0KQogewogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsU2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFNldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9u
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJTZXQiKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNldChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk4LDcgKzk4LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRI
ZWFkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU1NldCo+KGdsb2Jh
bE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIEpTU2V0KiBzZXQg
PSBqc0Nhc3Q8SlNTZXQqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTEw
Nyw3ICsxMDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5j
U2V0QnVja2V0SGVhZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoaGVhZCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJp
dmF0ZUZ1bmNTZXRCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5j
U2V0QnVja2V0TmV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU1NldDo6QnVja2V0VHlw
ZSo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIGF1
dG8qIGJ1Y2tldCA9IGpzQ2FzdDxKU1NldDo6QnVja2V0VHlwZSo+KGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnZtKCkuc2VudGlu
ZWxTZXRCdWNrZXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJp
dmF0ZUZ1bmNTZXRCdWNrZXRLZXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNT
ZXRCdWNrZXRLZXksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGpzRHluYW1pY0Nh
c3Q8SlNTZXQ6OkJ1Y2tldFR5cGUqPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCkpKTsKICAgICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNTZXQ6OkJ1Y2tldFR5cGUq
PihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCmluZGV4IGViMWM2MWIyMDIyNTBhZWJkZmY3
NTRiNWM0NzAzYjgzNGIzNjJjMjcuLjE3NmExY2RlN2Q5YTY2YWJkNWEwOTZmODhkZjY5YTliMDAz
OTc2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0
b3IuaApAQCAtNTYsOCArNTYsOCBAQCBjbGFzcyBTZXRDb25zdHJ1Y3RvciBmaW5hbCA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFS
QUJMRShTZXRDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRIZWFkKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVG
dW5jU2V0QnVja2V0TmV4dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEtleShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRl
RnVuY1NldEJ1Y2tldEhlYWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRl
RnVuY1NldEJ1Y2tldE5leHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRl
RnVuY1NldEJ1Y2tldEtleSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAKaW5kZXggNGM0N2ZhYzA5N2Y1ZDgy
OTYxYTNiNGExNGI0ODM1ODZiNDJlYTUxNC4uMzNhMDQ5MWM2NTQ1NzZiNTMxNTM3NGY2YzRlMGRi
Zjc4Yjc3ZDA3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90
b3R5cGUuY3BwCkBAIC00MywxNCArNDMsMTQgQEAgY29uc3QgQ2xhc3NJbmZvIFNldFByb3RvdHlw
ZTo6c19pbmZvID0geyAiU2V0IiwgJkJhc2U6OnNfaW5mbywgJnNldFByb3RvdHlwZVRhYmwKIEBl
bmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVu
Y0FkZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0Rl
bGV0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jSGFzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNWYWx1
ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0FkZCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNDbGVhcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNEZWxldGUpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jSGFzKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY1ZhbHVlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNFbnRyaWVzKTsKIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jU2l6ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJv
dG9GdW5jU2l6ZSk7CiAKIHZvaWQgU2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC05Miw3ICs5Miw3IEBAIEFMV0FZ
U19JTkxJTkUgc3RhdGljIEpTU2V0KiBnZXRTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSB0aGlzVmFsCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQWRkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNl
dFByb3RvRnVuY0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSk7
CkBAIC0xMDIsNyArMTAyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90
b0Z1bmNBZGQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc2V0UHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5j
Q2xlYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+
dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAtMTExLDcgKzExMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNEZWxldGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jRGVsZXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTU2V0KiBzZXQg
PSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAo
IXNldCkKQEAgLTExOSw3ICsxMTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNl
dFByb3RvRnVuY0RlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHNldC0+cmVtb3ZlKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzZXRQcm90b0Z1bmNIYXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jSGFz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIEpTU2V0KiBzZXQgPSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKICAgICBpZiAoIXNldCkKQEAgLTEyNyw3ICsxMjcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0hhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHNldC0+aGFz
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNTaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHNldFByb3RvRnVuY1NpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAtMTQ1LDEyICsxNDUs
MTIgQEAgaW5saW5lIEpTVmFsdWUgY3JlYXRlU2V0SXRlcmF0b3JPYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKgogICAgIHJldHVybiBKU1NldEl0ZXJhdG9yOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdC0+c2V0SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgc2V0LCBraW5k
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNWYWx1ZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jVmFsdWVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY3JlYXRlU2V0SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHNldFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9G
dW5jRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNyZWF0ZVNldEl0ZXJhdG9y
T2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggYWU2NzUyZDNhNjcyZDAyNGJmZWMwNzczYzNiNDJmMWZmYTA3MzllMC4u
ZjJiYTVjNDExYmE2MmUwNjBiZWE1ZGVjYzVlOGQ1NTkxZjVhMmNmMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMjcs
OCArMjcsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nRnJvbUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBv
aW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihzdHJpbmdGcm9tQ2hhckNvZGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nRnJvbUNvZGVQb2ludCk7CiAKIH0KIApAQCAtNDksOCArNDksOCBAQCBj
b25zdCBDbGFzc0luZm8gU3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwg
JkludGVybmFsRnVuY3Rpb246OnNfaQogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKFN0cmluZ0NvbnN0cnVjdG9yKTsKIAogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhT
dHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFN0cmluZ0NvbnN0cnVjdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3Rvcik7
CiAKIFN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxs
U3RyaW5nQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcikKQEAgLTY1
LDcgKzY1LDcgQEAgdm9pZCBTdHJpbmdDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBTdHJpbmdQcm90b3R5cGUqIHN0cmluZ1Byb3RvdHlwZSkKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNv
ZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nRnJvbUNoYXJDb2RlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBX
VEZNb3ZlKGltcGw4Qml0KSkpKTsKIH0KIAotSlNTdHJpbmcqIEpTQ19IT1NUX0NBTEwgc3RyaW5n
RnJvbUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3QgYXJnKQor
SlNTdHJpbmcqIHN0cmluZ0Zyb21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBpbnQzMl90IGFyZykKIHsKICAgICByZXR1cm4ganNTaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZ2xv
YmFsT2JqZWN0LT52bSgpLCBhcmcpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ0Zy
b21Db2RlUG9pbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBvaW50KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBidWlsZGVyLnRvU3RyaW5nKCkpKSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBKU1N0cmluZyogc3RyaW5n
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1bWVu
dCkKICAgICByZXR1cm4gYXJndW1lbnQudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxTdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
CmluZGV4IDVmOTQ3MWVhNGMwYmVmOTE1MzBjMTcyZTRjNDM4YmU5OTA5OGVjMzEuLmJiOTQzMTA4
YjY3ODhkOGMxNzlmZTBkZmUwNmFjODgzNmVkMDU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaApAQCAtNTIsNyArNTIsNyBAQCBj
bGFzcyBTdHJpbmdDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShTdHJpbmdDb25zdHJ1Y3Rv
ciwgSW50ZXJuYWxGdW5jdGlvbik7CiAKLUpTU3RyaW5nKiBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zy
b21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QpOworSlNTdHJpbmcqIHN0cmluZ0Zy
b21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QpOwogSlNTdHJpbmcqIHN0cmluZ0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKaW5kZXggMWEyZGM1ZjU4YTI5MjI0MjYwMmFmMDMzMWM0ZGIxNDNhMzg2M2I3OS4uZTllYzY1
MTU5NGM2OGM4Nzc1NzQyYzI1NjRkODUwNDcyMzQ5MTI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC01MywzMSArNTMsMzEg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShTdHJpbmdQcm90b3R5cGUpOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJBdChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNDaGFyQ29kZUF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2lu
Z1N0cmluZ1NlYXJjaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFy
Y2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1N1YnN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Rv
TG9jYWxlVXBwZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW0oSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
VHJpbVN0YXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW1FbmQoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Rh
cnRzV2l0aChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmNs
dWRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSXRlcmF0
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oc3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNDaGFyQXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQ
cm90b0Z1bmNDaGFyQ29kZUF0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jQ29kZVBvaW50QXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNJbmRleE9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
TGFzdEluZGV4T2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNS
ZXBsYWNlVXNpbmdSZWdFeHApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFyY2gpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTbGljZSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1N1YnN0cik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RyaW0pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihzdHJpbmdQcm90b0Z1bmNUcmltU3RhcnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNUcmltRW5kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5n
UHJvdG9GdW5jU3RhcnRzV2l0aCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1By
b3RvRnVuY0VuZHNXaXRoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9G
dW5jSW5jbHVkZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNO
b3JtYWxpemUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNJdGVy
YXRvcik7CiAKIH0KIApAQCAtODQ0LDcgKzg0NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVj
a09iamVjdENvZXJjaWJsZShKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFy
YWN0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDAsNyArOTAwLDcgQEAgQUxXQVlTX0lOTElORSBK
U1N0cmluZyogcmVwbGFjZSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHJlcGxhY2Uo
dm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCByZXBsYWNl
VmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNSZXBsYWNlVXNpbmdSZWdFeHAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
UmVwbGFjZVVzaW5nUmVnRXhwLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MTUsNyArOTE1LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNp
bmdSZWdFeHAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShyZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2godm0sIGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Jl
cGxhY2VVc2luZ1N0cmluZ1NlYXJjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1
bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyNiw3
ICs5MjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Jl
cGxhY2VVc2luZ1N0cmluZ1NlYXJjaChKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwgZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0cmluZywgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgY2Fs
bEZyYW1lLT5hcmd1bWVudCgxKSwgUmVwbGFjZU1vZGU6OlNpbmdsZSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJp
bmdTZWFyY2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVz
aW5nU3RyaW5nU2VhcmNoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05NTAsNyArOTUwLDcgQEAg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VHZW5l
cmljKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogSUdOT1JFX1dBUk5JTkdTX0VORAogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC05NzEsNyArOTcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHN0cmluZ09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDaGFyQXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jQ2hhckF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05
OTgsNyArOTk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNDaGFyQXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzRW1wdHlTdHJpbmcodm0pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0
cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMzUsNyAr
MTAzNSw3IEBAIHN0YXRpYyBpbmxpbmUgVUNoYXIzMiBjb2RlUG9pbnRBdChjb25zdCBTdHJpbmcm
IHN0cmluZywgdW5zaWduZWQgcG9zaXRpb24sIHVuc2lnCiAgICAgcmV0dXJuIGNoYXJhY3RlcjsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDb2RlUG9p
bnRBdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTExMiwxMiArMTExMiwxMiBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgc3RyaW5nSW5kZXhPZkltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0KSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSW5kZXhPZihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNJbmRleE9mLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
dHJpbmdJbmRleE9mSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkpOwogICAgIEFTU0VSVChjYWxsRnJhbWUt
PmFyZ3VtZW50KDApLmlzU3RyaW5nKCkpOwpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gc3RyaW5nSW5kZXhPZkltcGwoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0xh
c3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTcwLDcgKzExNzAsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
cmVzdWx0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU2xpY2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEyMzEsNyArMTIzMSw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IGJvb2wgc3BsaXRTdHJpbmdCeU9uZUNoYXJhY3RlckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iCiB9CiAKIC8vIEVTIDIxLjEuMy4xNyBTdHJpbmcucHJvdG90eXBlLnNwbGl0KHNlcGFyYXRv
ciwgbGltaXQpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Nw
bGl0RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihzdHJpbmdQcm90b0Z1bmNTdWJzdHIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0
NTUsMTIgKzE0NTUsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ1N1YnN0cmluZ0lt
cGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N1YnN0cmluZyhnbG9iYWxPYmplY3Qs
IGpzU3RyaW5nLCBzdWJzdHJpbmdTdGFydCwgc3Vic3RyaW5nTGVuZ3RoKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHN0cmlu
Z1N1YnN0cmluZ0ltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJU
KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkuaXNTdHJpbmcoKSk7CiAgICAgQVNTRVJUKGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkuaXNOdW1iZXIoKSk7CkBAIC0xNDY4LDcgKzE0NjgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbChKU0ds
b2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBzdHJpbmdTdWJzdHJpbmdJbXBsKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKTsgICAKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNUb0xvd2VyQ2FzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ4Niw3ICsxNDg2LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2Fz
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgbG93ZXJjYXNlZFN0cmluZykpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTUwNCw3ICsxNTA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2
bSwgdXBwZXJjYXNlZFN0cmluZykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmlu
Z1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMTMuMS4xIFN0cmluZy5wcm90b3R5cGUu
bG9jYWxlQ29tcGFyZSAodGhhdCBbLCBsb2NhbGVzIFssIG9wdGlvbnMgXV0pIChFQ01BLTQwMiAy
LjApCiAgICAgLy8gaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvcHVibGljYXRpb25zL3N0
YW5kYXJkcy9FY21hLTQwMi5odG0KQEAgLTE2MjYsMTQgKzE2MjYsMTQgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHRvTG9jYWxlQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShqc1N0cmluZyh2bSwgU3RyaW5nKGJ1ZmZlcikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMTMuMS4y
IFN0cmluZy5wcm90b3R5cGUudG9Mb2NhbGVMb3dlckNhc2UgKFtsb2NhbGVzXSkKICAgICAvLyBo
dHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9wdWJsaWNhdGlvbnMvc3RhbmRhcmRzL0VjbWEt
NDAyLmh0bQogICAgIHJldHVybiB0b0xvY2FsZUNhc2U8Q2FzZUNvbnZlcnNpb25Nb2RlOjpMb3dl
cj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlVXBwZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlVXBwZXJDYXNlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDEzLjEuMyBTdHJp
bmcucHJvdG90eXBlLnRvTG9jYWxlVXBwZXJDYXNlIChbbG9jYWxlc10pCiAgICAgLy8gaHR0cDov
L2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvcHVibGljYXRpb25zL3N0YW5kYXJkcy9FY21hLTQwMi5o
dG0KQEAgLTE2NzQsMTkgKzE2NzQsMTkgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHRyaW1TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0aGlzVmFsdWUKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzU3RyaW5nKHZtLCBzdHIuc3Vic3RyaW5nU2hhcmlu
Z0ltcGwobGVmdCwgcmlnaHQgLSBsZWZ0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jVHJpbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5nKGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBUcmltU3RhcnQgfCBUcmltRW5kKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVHJpbVN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHN0cmluZ1Byb3RvRnVuY1RyaW1TdGFydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5n
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBUcmltU3RhcnQpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUcmltRW5kKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1RyaW1FbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodHJpbVN0cmlu
ZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgVHJpbUVuZCkpOwpAQCAtMTcwMSw3ICsxNzAxLDcg
QEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBjbGFtcEFuZFRydW5jYXRlVG9VbnNpZ25lZChkb3Vi
bGUgdmFsdWUsIHVuc2lnbmVkIG1pbiwgdW4KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNTdGFydHNXaXRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1N0YXJ0
c1dpdGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MzUsNyArMTczNSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc3Ry
aW5nVG9TZWFyY2hJbi5oYXNJbmZpeFN0YXJ0aW5nQXQoc2VhcmNoU3RyaW5nLCBzdGFydCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNFbmRzV2l0
aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTc4NSw3ICsxNzg1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0
cmluZ0luY2x1ZGVzSW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFMK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzdHJpbmdUb1NlYXJjaEluLmZp
bmQoc2VhcmNoU3RyaW5nLCBzdGFydCkgIT0gbm90Rm91bmQpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmNsdWRlcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihzdHJpbmdQcm90b0Z1bmNJbmNsdWRlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTgx
MSw3ICsxODExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNJbmNsdWRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIHN0cmluZ0luY2x1ZGVzSW1wbChnbG9iYWxPYmplY3QsIHZtLCBzdHJpbmdU
b1NlYXJjaEluLCBzZWFyY2hTdHJpbmcsIHBvc2l0aW9uQXJnKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE4MzEsNyArMTgzMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBzdHJpbmdJbmNsdWRlc0ltcGwoZ2xvYmFsT2JqZWN0
LCB2bSwgc3RyaW5nVG9TZWFyY2hJbiwgc2VhcmNoU3RyaW5nLCBwb3NpdGlvbkFyZykpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBzdGF0aWMgSlNWYWx1ZSBub3JtYWxpemUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgTm9ybWFsaQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcodm0sIFdURk1vdmUocmVzdWx0KSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY05vcm1h
bGl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmgKaW5kZXggZDEzMjFiNTQzMDkwYzFmZTFmZGM1NDEyMGVkZWU2ZmRiNzE1ODRh
MS4uNzg3MTM3MDA2YWEzMzIxZTYyZGQyNWJkNGI3M2IwOTgyMjEwNzNkNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTU1LDExICs1
NSwxMSBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVw
bGFjZVJlZ0V4cFN0cmluZyhKU0dsb2JhbE9iamVjdAogCiB2b2lkIHN1YnN0aXR1dGVCYWNrcmVm
ZXJlbmNlcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQs
IFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCopOwogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVy
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KTsK
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0lu
ZGV4T2ZJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwpOwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
aW5kZXggNzg5MGY2YWFlNmZjYTA2NjNhMWU1NzQ5MmQzNGI3Zjg1NWMwMDdmNS4uMDAwYmI5ODBk
N2NhNjliMWM4NmM2YmU2YmE4MjEwNzM2YmJmZTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTY2OSw2ICs2NjksOCBAQCBjbGFzcyBTdHJ1Y3R1cmUg
ZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZENvbnZlcnRU
b1BvbHlQcm90byhjb25zdCBTdHJ1Y3R1cmUqIGEsIGNvbnN0IFN0cnVjdHVyZSogYik7CiAKKyAg
ICBVbmlxdWVkU3RyaW5nSW1wbCogdHJhbnNpdGlvblByb3BlcnR5TmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhbnNpdGlvblByb3BlcnR5TmFtZS5nZXQoKTsgfQorCiAgICAgc3RydWN0IFByb3Bl
cnR5SGFzaEVudHJ5IHsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiB0YWJsZTsKICAgICAgICAg
Y29uc3QgSGFzaFRhYmxlVmFsdWUqIHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ4YTU3NGE4NWZmMWJlZmU4
ZDUwNmVhNmM0NGVkNTMyZDkxODUwOWIuLmM1ZDAxYjQ0MzViYTdlMWIxOTU0NzAyOTA5OTRiZjM4
NjM5NGI5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2xDb25zdHJ1Y3Rvci5jcHAKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0cnVjdG9yRm9y
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzeW1ib2xDb25zdHJ1Y3RvcktleUZvcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sQ29uc3RydWN0
b3JGb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sQ29uc3RydWN0
b3JLZXlGb3IpOwogCiB9CiAKQEAgLTUzLDggKzUzLDggQEAgY29uc3QgQ2xhc3NJbmZvIFN5bWJv
bENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZzeW1i
b2wKIEBlbmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxT
eW1ib2woSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFN5bWJvbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFN5bWJvbCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTeW1ib2wpOwogCiBTeW1ib2xD
b25zdHJ1Y3Rvcjo6U3ltYm9sQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFN5bWJvbCwgY29u
c3RydWN0U3ltYm9sKQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFN5bWJvbENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIFN5bWJvbFByb3RvdHlwZSogcHJvdG90eXBlKQogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3lt
Ym9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxTeW1ib2wsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTg4LDE0ICs4OCwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsU3ltYm9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoU3ltYm9sOjpjcmVhdGVXaXRoRGVzY3JpcHRpb24odm0sIHN0cmluZykp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTeW1i
b2woSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0U3ltYm9sLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVO
b3RBQ29uc3RydWN0b3JFcnJvcihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0cnVjdG9yRm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHN5bWJvbENvbnN0cnVjdG9yRm9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
eW1ib2xDb25zdHJ1Y3RvckZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogCiBjb25z
dCBBU0NJSUxpdGVyYWwgU3ltYm9sS2V5Rm9yVHlwZUVycm9yIHsgIlN5bWJvbC5rZXlGb3IgcmVx
dWlyZXMgdGhhdCB0aGUgZmlyc3QgYXJndW1lbnQgYmUgYSBzeW1ib2wiX3MgfTsKIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xDb25zdHJ1Y3RvcktleUZvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihzeW1ib2xDb25zdHJ1Y3RvcktleUZvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAK
aW5kZXggNmM1ZWVmOTc0ZWFkNGZjMjU3MmZiMzc2YmQ0MzQzOWMzODkzMjgwNi4uOWU4NWE5NmM3
YWU4YmE2MWUzOGQ2OTE2MTg2OGVjNDYwMDg2ZDQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCkBAIC0zMyw5ICszMyw5IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
eW1ib2xQcm90b0dldHRlckRlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNUb1N0
cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJvdG9H
ZXR0ZXJEZXNjcmlwdGlvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzeW1i
b2xQcm90b0Z1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
eW1ib2xQcm90b0Z1bmNWYWx1ZU9mKTsKIAogfQogCkBAIC04Nyw3ICs4Nyw3IEBAIGlubGluZSBT
eW1ib2wqIHRyeUV4dHJhY3RTeW1ib2woVk0mIHZtLCBKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICBy
ZXR1cm4gYXNTeW1ib2woanNDYXN0PFN5bWJvbE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5h
bFZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3Rv
R2V0dGVyRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJvdG9HZXR0ZXJE
ZXNjcmlwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAxLDcgKzEwMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9HZXR0ZXJEZXNjcmlwdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShkZXNjcmlwdGlv
bi5pc051bGwoKSA/IGpzVW5kZWZpbmVkKCkgOiBqc1N0cmluZyh2bSwgZGVzY3JpcHRpb24pKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNUb1N0cmlu
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzeW1ib2xQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTEzLDcgKzExMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFs
U3RyaW5nKHZtLCBzeW1ib2wtPmRlc2NyaXB0aXZlU3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihzeW1ib2xQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNw
cAppbmRleCA5MjljNzViNDQ2YmIwMDc0YWFiMjU2OWNhNzg4NjkyYTI3YjVkYmVlLi45YThjNmZl
M2VkYzRiNmE1MTdjNjA4ZTg3ZDY4NWI3NTA4YzhlNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTQxLDIyICs0
MSwyMiBAQCB2b2lkIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBX
ZWFrTWFwUHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxXZWFrTWFwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrTWFwKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsV2Vha01hcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RX
ZWFrTWFwKTsKIAogV2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdl
YWtNYXAsIGNvbnN0cnVjdFdlYWtNYXApCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYWtNYXAsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2Fs
bGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiV2Vha01hcCIpKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha01h
cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXZWFrTWFwLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5
cGUuY3BwCmluZGV4IDU2ODg3M2ZhOTBhZmZiMjY4MjA3MDRkMzQyNjdlYWYwYjI4ODE2MDUuLmZi
N2I4Yzg2NmZjMTAxNmZiYjhmMjkxZWZiZjNkMTU2MGUyNmNkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkBAIC0zMywxMCAr
MzMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWFrTWFwUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJXZWFrTWFwIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrTWFwUHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBwcm90b0Z1bmNXZWFrTWFwR2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwSGFzKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBwcm90b0Z1bmNXZWFrTWFwU2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBHZXQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcEhhcyk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwU2V0KTsKIAog
dm9pZCBXZWFrTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC02OSw3ICs2OSw3IEBAIEFMV0FZU19JTkxJTkUgc3Rh
dGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcHJvdG9GdW5jV2Vha01hcERlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihwcm90b0Z1
bmNXZWFrTWFwRGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8qIG1hcCA9IGdldFdlYWtNYXAoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTc4LDcgKzc4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihrZXkuaXNPYmplY3QoKSAmJiBtYXAtPnJlbW92ZShhc09iamVjdChrZXkpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBHZXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcEdldCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvKiBtYXAgPSBn
ZXRXZWFrTWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYg
KCFtYXApCkBAIC04OSw3ICs4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJv
dG9GdW5jV2Vha01hcEdldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmdldChhc09iamVjdChrZXkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcEhhcyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihwcm90b0Z1bmNXZWFrTWFwSGFzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8qIG1hcCA9IGdldFdlYWtNYXAo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAg
LTk4LDcgKzk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFr
TWFwSGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihrZXkuaXNPYmplY3QoKSAmJiBtYXAtPmhhcyhhc09iamVjdChr
ZXkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtN
YXBTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcFNldCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a09iamVjdFJlZkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtPYmplY3RSZWZDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjY5NTg0OTFiMDQ4Yjg2NTU5ZDRm
NGU3MDk3MmZiMTg4ZGEzNWFhNy4uNTY0ZDA5MzQyMDYwODg4YmQxZGQxN2VhMDYwNTA5NzA1NzRj
NTFlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVj
dFJlZkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwCkBAIC00MCwyMiArNDAsMjIgQEAgdm9pZCBXZWFr
T2JqZWN0UmVmQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha09iamVjdFJl
ZlByb3RvdHlwZSogcHIKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWFrUmVmKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtSZWYpOwogCiBX
ZWFrT2JqZWN0UmVmQ29uc3RydWN0b3I6OldlYWtPYmplY3RSZWZDb25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsV2Vh
a1JlZiwgY29uc3RydWN0V2Vha1JlZikKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2Vha1JlZiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxs
ZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJXZWFrUmVmIikpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrUmVm
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtSZWYsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RS
ZWZQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVj
dFJlZlByb3RvdHlwZS5jcHAKaW5kZXggNWEyZTM4Mjc4YTk3ZTA2MDE4NGNlMWVhODY2MGM3ZmVl
MDZjM2Q3Zi4uZmQwYTNlODYzZjA5M2M4ZTY1NTliMGMyZDVjYTMyY2NkNTEyODFkNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZlByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZlBy
b3RvdHlwZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENs
YXNzSW5mbyBXZWFrT2JqZWN0UmVmUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWFrUmVmIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrT2Jq
ZWN0UmVmUHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBwcm90b0Z1bmNXZWFrUmVmRGVyZWYoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtSZWZEZXJlZik7CiAK
IHZvaWQgV2Vha09iamVjdFJlZlByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtNjQsNyArNjQsNyBAQCBBTFdBWVNfSU5M
SU5FIHN0YXRpYyBKU1dlYWtPYmplY3RSZWYqIGdldFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtSZWZEZXJlZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihw
cm90b0Z1bmNXZWFrUmVmRGVyZWYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8qIHJlZiA9IGdldFdlYWtSZWYoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtT
ZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0
Q29uc3RydWN0b3IuY3BwCmluZGV4IDM5Zjg2N2QyMGFhZTA3MDU5MzdmOTBkY2Y2YTk2ZDllNjRh
NDRlZDIuLjM5MjljYzkyYTIwMjg4MTRiY2YwOWI0YTlkMTRlMjJhMmZkMDczZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNw
cApAQCAtNDEsMjIgKzQxLDIyIEBAIHZvaWQgV2Vha1NldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIFdlYWtTZXRQcm90b3R5cGUqIHByb3RvdHlwZSkKICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5
cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdl
YWtTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxXZWFrU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFdlYWtTZXQpOwogCiBXZWFrU2V0Q29uc3RydWN0b3I6OldlYWtTZXRDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlLCBjYWxsV2Vha1NldCwgY29uc3RydWN0V2Vha1NldCkKIHsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtTZXQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2Vh
a1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVj
dG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJXZWFrU2V0IikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RXZWFrU2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtTZXQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldFByb3RvdHlwZS5jcHAKaW5kZXggYTNkMjQ2MGYxYjcwNDZiZDU0NDg4MTgwZmM1ZmYz
M2FhMWUwMjJjZC4uNjczY2FjMGE0M2MzYmEwZmI3ZTg5NGZmYTY1MWUwY2MwMDM0ZDhhNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5j
cHAKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBX
ZWFrU2V0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWFrU2V0IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrU2V0UHJvdG90eXBlKSB9Owog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0RGVs
ZXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0SGFzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFr
U2V0QWRkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrU2V0RGVsZXRlKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtTZXRIYXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha1NldEFkZCk7CiAKIHZvaWQgV2Vha1NldFByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogewpAQCAtNjcsNyArNjcsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtTZXQqIGdl
dFdlYWtTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dl
YWtTZXREZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha1NldERlbGV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBhdXRvKiBzZXQgPSBnZXRXZWFrU2V0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlz
VmFsdWUoKSk7CiAgICAgaWYgKCFzZXQpCkBAIC03Niw3ICs3Niw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldERlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oa2V5LmlzT2Jq
ZWN0KCkgJiYgc2V0LT5yZW1vdmUoYXNPYmplY3Qoa2V5KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0SGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHByb3RvRnVuY1dlYWtTZXRIYXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byogc2V0ID0gZ2V0V2Vha1NldChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAtODUsNyAr
ODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtTZXRIYXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGtleS5pc09iamVjdCgpICYmIHNldC0+aGFzKGFzT2JqZWN0KGtleSkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldEFkZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrU2V0QWRkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggNjEw
ZDI1NjAwNjM2YzJlNzNhMTUyMTJkOWM5M2NhNDRlZDdhZjM5OC4uZmI0YjIwZjUxMTA5OTFhNjY5
NTU3ZGUwYTE5YTBjNTJiZWJmNGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNLmNwcApAQCAtODIsOSArODIsNiBAQCBjbGFzcyBKU0RvbGxhclZNSGVscGVyIHsK
IAogICAgIHZvaWQgdXBkYXRlVk1TdGFja0xpbWl0cygpIHsgcmV0dXJuIG1fdm0udXBkYXRlU3Rh
Y2tMaW1pdHMoKTsgfTsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLQotcHJpdmF0ZToKICAgICBWTSYgbV92bTsKIH07CiAKQEAgLTkyLDYgKzg5LDEw
IEBAIGNsYXNzIEpTRG9sbGFyVk1IZWxwZXIgewogCiBuYW1lc3BhY2UgewogCitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBsZXhFbmFibGVF
eGNlcHRpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25ET01K
SVRGdW5jdGlvbk9iamVjdFdpdGhUeXBlQ2hlY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhUeXBlQ2hlY2spOwor
CiAvLyBXZSBtdXN0IFJFTEVBU0VfQVNTRVJUKE9wdGlvbnM6OnVzZURvbGxhclZNKCkpIGluIGFs
bCBKU0RvbGxhclZNIGZ1bmN0aW9ucwogLy8gdGhhdCBhcmUgbm9uLXRyaXZpYWwgYXQgYW4gZXll
J3MgZ2xhbmNlLiBUaGlzIGluY2x1ZGVzIChidXQgaXMgbm90IGxpbWl0ZWQgdG8pOgogLy8gICAg
ICBjb25zdHJ1Y3RvcnMKQEAgLTQ4OSwxMiArNDkwLDEyIEBAIGNsYXNzIEN1c3RvbUdldHRlciA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgICAgICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Q3VzdG9t
R2V0dGVyKj4ob2JqZWN0KTsKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBQcm9wZXJ0eU5h
bWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlciIpKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0sIHRoaXNPYmplY3QtPmN1c3RvbUdldHRlcik7CisgICAgICAgICAg
ICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSwgY3VzdG9tR2V0dGVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IFByb3BlcnR5
TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyQWNjZXNzb3IiKSkp
IHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yLCB0aGlzT2JqZWN0LT5jdXN0b21HZXR0ZXJBY2Vzc29yKTsKKyAgICAgICAgICAgIHNs
b3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yLCBjdXN0b21HZXR0
ZXJBY2Vzc29yKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtNTAyLDcgKzUwMyw3IEBAIGNsYXNzIEN1c3RvbUdldHRlciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC01MTgsNyArNTE5LDcgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKDEwMCkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9t
R2V0dGVyQWNlc3NvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBjdXN0b21HZXR0ZXJBY2Vzc29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsKICAgICAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwpAQCAtNTc1LDcgKzU3Niw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQK
ICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBSdW50aW1lQXJy
YXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4ob2JqZWN0KTsKICAgICAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAg
ICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtLCB0aGlzT2JqZWN0LT5sZW5ndGhHZXR0ZXIpOworICAgICAgICAgICAg
c2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0sIGxlbmd0aEdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogCkBAIC02NDUsNyArNjQ2LDcgQEAgSUdOT1JFX1dBUk5JTkdTX0VORAogICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIH0KIAotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gbGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsK
ICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBzdGF0aWNDdXN0b21BY2Nlc3NvclRhYmxlSW5kZXhbMl0g
PSB7CiAgICAgeyAtMSwgLTEgfSwKIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB0ZXN0U3Rh
dGljQWNjZXNzb3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiB0ZXN0U3RhdGljQWNjZXNzb3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC05NzQsNyArOTc1LDcgQEAgY2xhc3MgRE9NSklUR2V0dGVyIDogcHVibGlj
IERPTUpJVE5vZGUgewogcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldHRlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTEwNjgsNyArMTA2OSw3IEBA
IGNsYXNzIERPTUpJVEdldHRlck5vRWZmZWN0cyA6IHB1YmxpYyBET01KSVROb2RlIHsKIHByaXZh
dGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCi0gICAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0xMTcxLDIwICsxMTcyLDkgQEAgY2xhc3MgRE9NSklUR2V0dGVy
Q29tcGxleCA6IHB1YmxpYyBET01KSVROb2RlIHsKICNlbmRpZgogICAgIH07CiAKLXByaXZhdGU6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuYWJsZUV4Y2VwdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLSAg
ICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgYXV0byogb2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxET01KSVRHZXR0ZXJDb21wbGV4Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkp
OwotICAgICAgICBpZiAob2JqZWN0KQotICAgICAgICAgICAgb2JqZWN0LT5tX2VuYWJsZUV4Y2Vw
dGlvbiA9IHRydWU7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgfQotCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldHRlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21H
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMjAw
LDYgKzExOTAsMTYgQEAgY2xhc3MgRE9NSklUR2V0dGVyQ29tcGxleCA6IHB1YmxpYyBET01KSVRO
b2RlIHsKICAgICBib29sIG1fZW5hYmxlRXhjZXB0aW9uIHsgZmFsc2UgfTsKIH07CiAKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBsZXhFbmFibGVFeGNl
cHRpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byogb2JqZWN0ID0ganNEeW5hbWljQ2FzdDxE
T01KSVRHZXR0ZXJDb21wbGV4Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlm
IChvYmplY3QpCisgICAgICAgIG9iamVjdC0+bV9lbmFibGVFeGNlcHRpb24gPSB0cnVlOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIHN0YXRpYyBjb25z
dCBET01KSVRHZXR0ZXJDb21wbGV4OjpET01KSVRBdHRyaWJ1dGUgRE9NSklUR2V0dGVyQ29tcGxl
eERPTUpJVDsKIAogdm9pZCBET01KSVRHZXR0ZXJDb21wbGV4OjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC0xMjA5LDcgKzEyMDksNyBAQCB2
b2lkIERPTUpJVEdldHRlckNvbXBsZXg6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciogZG9t
SklUID0gJkRPTUpJVEdldHRlckNvbXBsZXhET01KSVQ7CiAgICAgYXV0byogY3VzdG9tR2V0dGVy
U2V0dGVyID0gRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+Z2V0
dGVyKCksIG51bGxwdHIsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBET01KSVRHZXR0ZXJDb21w
bGV4OjppbmZvKCksIGRvbUpJVCB9KTsKICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlciIpLCBjdXN0b21HZXR0ZXJT
ZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3Nvcik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImVuYWJsZUV4Y2VwdGlvbiIpLCAwLCBm
dW5jdGlvbkVuYWJsZUV4Y2VwdGlvbiwgTm9JbnRyaW5zaWMsIDApOworICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJlbmFibGVFeGNlcHRpb24iKSwgMCwgZnVuY3Rpb25ET01KSVRHZXR0ZXJDb21wbGV4RW5hYmxl
RXhjZXB0aW9uLCBOb0ludHJpbnNpYywgMCk7CiB9CiAKIGNsYXNzIERPTUpJVEZ1bmN0aW9uT2Jq
ZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAtMTIzOCwxOCArMTIzOCw2IEBAIGNsYXNzIERP
TUpJVEZ1bmN0aW9uT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICByZXR1cm4g
b2JqZWN0OwogICAgIH0KIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uV2l0aFR5cGVDaGVjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7Ci0gICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgICAgIERPTUpJVE5v
ZGUqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSk7Ci0gICAgICAgIGlmICghdGhpc09iamVjdCkKLSAgICAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKLSAgICB9
Ci0KICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmdW5jdGlvbldpdGhv
dXRUeXBlQ2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NSklUTm9kZSogbm9k
ZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC0x
MjgyLDEzICsxMjcwLDI1IEBAIGNsYXNzIERPTUpJVEZ1bmN0aW9uT2JqZWN0IDogcHVibGljIERP
TUpJVE5vZGUgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCop
OwogfTsKIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRE9NSklURnVuY3Rpb25P
YmplY3RXaXRoVHlwZUNoZWNrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIERPTUpJVE5vZGUqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAg
aWYgKCF0aGlzT2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNP
YmplY3QtPnZhbHVlKCkpKTsKK30KKwogc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERP
TUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlKERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2ssIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjppbmZvKCksIERPTUpJVDo6
RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlKERPTUpJVDo6SGVhcFJhbmdlOjpDb25z
dEV4cHIsIDAsIDEpKSwgU3BlY0ludDMyT25seSk7CiAKIHZvaWQgRE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhU
eXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aFR5
cGVDaGVjaywgTm9JbnRyaW5zaWMsICZET01KSVRGdW5jdGlvbk9iamVjdFNpZ25hdHVyZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOwogfQogCiBj
bGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKQEAgLTEz
MTcsMTggKzEzMTcsNiBAQCBjbGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBE
T01KSVROb2RlIHsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKLSAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldpdGhUeXBlQ2hlY2soSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi0gICAgewotICAg
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLQotICAgICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01K
SVRDaGVja0pTQ2FzdE9iamVjdCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKLSAgICAg
ICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOwotICAgIH0KLQogICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBET01KSVROb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgRG9s
bGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKQEAgLTEzNDIsMTMgKzEzMzAsMjUgQEAgY2xh
c3MgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhUeXBlQ2hl
Y2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
Cit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworCisgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgaWYgKCF0aGlz
T2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZh
bHVlKCkpKTsKK30KKwogc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERPTUpJVENoZWNr
SlNDYXN0T2JqZWN0U2lnbmF0dXJlKERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmdW5jdGlvbldp
dGhvdXRUeXBlQ2hlY2ssIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjppbmZvKCksIERPTUpJVDo6
RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlOjp0b3AoKSksIFNwZWNJbnQzMk9ubHkp
OwogCiB2b2lkIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRP
TUpJVENoZWNrSlNDYXN0T2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwg
ZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2lj
LCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3MgRE9NSklUR2V0dGVy
QmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAtMTQyNCw3ICsxNDI0LDcgQEAg
Y2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogcHJp
dmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAg
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKQEAgLTE2MzAsOCArMTYzMCw4IEBAIHZvaWQgRWxlbWVudDo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBSb290KiByb290KQogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhc21TdHJl
YW1pbmdQYXJzZXJBZGRCeXRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2Vy
RmluYWxpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNlckFkZEJ5dGVzKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNl
ckZpbmFsaXplKTsKIAogY2xhc3MgV2FzbVN0cmVhbWluZ1BhcnNlciA6IHB1YmxpYyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzAxLDcgKzE3MDEsNyBAQCBjbGFzcyBXYXNt
U3RyZWFtaW5nUGFyc2VyIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogY29uc3Qg
Q2xhc3NJbmZvIFdhc21TdHJlYW1pbmdQYXJzZXI6OnNfaW5mbyA9IHsgIldhc21TdHJlYW1pbmdQ
YXJzZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKFdhc21TdHJlYW1pbmdQYXJzZXIpIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyQWRkQnl0ZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyQWRkQnl0ZXMsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBA
IC0xNzE2LDcgKzE3MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
V2FzbVN0cmVhbWluZ1BhcnNlckFkZEJ5dGVzKEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KHRoaXNPYmplY3QtPnN0cmVhbWluZ1BhcnNlcigpLmFkZEJ5dGVzKGJpdHdpc2VfY2Fz
dDxjb25zdCB1aW50OF90Kj4oZGF0YS5maXJzdCksIGRhdGEuc2Vjb25kKSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmlu
YWxpemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmlu
YWxpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xNzMyLDYgKzE3MzIsMTA0IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmluYWxpemUoSlNH
bG9iYWxPYmplY3QqCiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jhc2gpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25CcmVha3BvaW50KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uREZHVHJ1ZSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZUTFRydWUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcHVNZmVuY2UpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DcHVSZHRzYyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkNwdUNwdWlkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQ3B1UGF1c2UpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DcHVDbGZsdXNoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uTExpbnRUcnVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQmFzZWxpbmVKSVRUcnVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uTm9JbmxpbmUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25HQyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVkZW5HQyk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdDU3dlZXBBc3luY2hy
b25vdXNseSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBT
dWJzcGFjZUhhc2hlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkNhbGxGcmFtZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNv
ZGVCbG9ja0ZvckZyYW1lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQ29kZUJsb2NrRm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRHVtcFNvdXJjZUZvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkR1bXBCeXRlY29kZUZvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkRhdGFMb2cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25QcmludCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBD
YWxsRnJhbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1w
U3RhY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wUmVn
aXN0ZXJzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcENl
bGwpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JbmRleGluZ01v
ZGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JbmxpbmVDYXBh
Y2l0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblZhbHVlKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UElEKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGF2ZUFCYWRUaW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNIYXZpbmdBQmFkVGltZSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXpl
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFs
T2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
UHJveHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVS
dW50aW1lQXJyYXkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25D
cmVhdGVOdWxsUm9wZVN0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVE5vZGVPYmplY3QpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01K
SVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCk7CisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVXYXNt
U3RyZWFtaW5nUGFyc2VyKTsKKyNlbmRpZgorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3Nvcik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRl
RWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdh
dGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVCdWls
dGluKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UHJpdmF0
ZVByb3BlcnR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlUm9vdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZUVsZW1lbnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRF
bGVtZW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
U2ltcGxlT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
R2V0SGlkZGVuVmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25TZXRIaWRkZW5WYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90
VGhyb3cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5kVHlw
ZUZvckV4cHJlc3Npb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25SZXR1cm5UeXBlRm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRmxhdHRlbkRpY3Rpb25hcnlPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EdW1wQmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkJhc2ljQmxvY2tFeGVjdXRp
b25Db3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuYWJs
ZURlYnVnZ2VyTW9kZVdoZW5JZGxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVsZXRlQWxsQ29kZVdoZW5JZGxlKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2xvYmFsT2JqZWN0Q291bnQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRHZXR0ZXJT
ZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Mb2FkR2V0
dGVyRnJvbUdldHRlclNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGllcyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkN1cnJlbnRDUFVUaW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVG90YWxHQ1RpbWUpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QYXJzZUNvdW50KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3Nz
aWJsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFN0cnVj
dHVyZVRyYW5zaXRpb25MaXN0KTs7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkdldENvbmN1cnJlbnRseSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uUmVqZWN0UHJvbWlzZUFzSGFuZGxlZCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JQ1VWZXJzaW9uKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVSGVhZGVyVmVyc2lvbik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFzc2VydEVuYWJsZWQp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc01lbW9yeUxpbWl0
ZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VKSVQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxl
ZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblRvVW5jYWNoZWFi
bGVEaWN0aW9uYXJ5KTsKKwogY29uc3QgQ2xhc3NJbmZvIEpTRG9sbGFyVk06OnNfaW5mbyA9IHsg
IkRvbGxhclZNIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU0RvbGxhclZNKSB9OwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9QcmludChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgYm9vbCBh
ZGRMaW5lRmVlZCkKQEAgLTE3NTgsNyArMTg1Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBk
b1ByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
CiAKIC8vIFRyaWdnZXJzIGEgY3Jhc2ggYWZ0ZXIgZHVtcGluZyBhbnkgcGFyYW1hdGVyIHBhc3Nl
ZCB0byBpdC4KIC8vIFVzYWdlOiAkdm0uY3Jhc2goLi4uKQotc3RhdGljIE5PX1JFVFVSTl9EVUVf
VE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyYXNoKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmFzaCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogCkBAIC0xNzgwLDcgKzE4NzgsNyBA
QCBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3Jhc2goSlNHbG9iYQogCiAvLyBFeGVjdXRlcyBhIGJyZWFrcG9pbnQgaW5z
dHJ1Y3Rpb24gaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRydXRoeSBvciBpcyB1bnNldC4KIC8v
IFVzYWdlOiAkdm0uYnJlYWtwb2ludCg8Y29uZGl0aW9uPikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkJyZWFrcG9pbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICAvLyBOb3RoaW5nIHNob3VsZCB0aHJvdyBoZXJlIGJ1dCB3ZSBtaWdodCBhcyB3ZWxsIGRv
dWJsZSBjaGVjay4uLgpAQCAtMTc5NSw3ICsxODkzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25CcmVha3BvaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmoKIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgREZHIGZyYW1l
LgogLy8gVXNhZ2U6IGlzREZHID0gJHZtLmRmZ1RydWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25ERkdUcnVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRGR1RydWUsIChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKQEAgLTE4
MDMsMTMgKzE5MDEsMTMgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25ERkdUcnVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKIAogLy8gUmV0dXJucyB0
cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgRlRMIGZyYW1lLgogLy8gVXNhZ2U6IGlzRlRM
ID0gJHZtLmZ0bFRydWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25GVExUcnVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkZUTFRydWUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVNZmVuY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1TWZlbmNlLCAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTgxOCw3ICsx
OTE2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVN
ZmVuY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNwdVJkdHNjKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdVJkdHNjLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lm
IENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTgzMSw3ICsxOTI5LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVSZHRzYyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSoKICNlbmRpZgogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNwdUNwdWlkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdUNwdWlkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTg0MCw3ICsxOTM4LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVDcHVpZChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNwdVBhdXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNwdVBhdXNlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lmIENQVShYODZf
NjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTg1OCw3ICsxOTU2LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVQYXVzZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSoKIC8vCiAvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90IGEgSlNBcnJheUJ1
ZmZlciwgd2UgbG9hZCB0aGUgYnV0dGVyZmx5CiAvLyBhbmQgY2xmbHVzaCBhdCB0aGUgYWRkcmVz
cyBvZiB0aGUgYnV0dGVyZmx5Lgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcHVDbGZsdXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1Q2xmbHVz
aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lmIENQVShYODZfNjQp
ICYmICFPUyhXSU5ET1dTKQpAQCAtMTk0Nyw3ICsyMDQ1LDcgQEAgc3RhdGljIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZ2V0RXhlY3V0YWJsZUZvckZ1bmN0aW9uKEpTVmFsdWUgdGhlRnVuY3Rpb25WYWx1
ZSkKIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgTExJbnQgZnJh
bWUuCiAvLyBVc2FnZTogaXNMTEludCA9ICR2bS5sbGludFRydWUoKQotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25MTGludFRydWUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25MTGludFRydWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xOTYwLDcgKzIwNTgsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxMaW50VHJ1ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogCiAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJl
bnQgZnJhbWUgaXMgYSBiYXNlbGluZSBKSVQgZnJhbWUuCiAvLyBVc2FnZTogaXNCYXNlbGluZUpJ
VCA9ICR2bS5iYXNlbGluZUpJVFRydWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25CYXNlbGluZUpJVFRydWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25CYXNlbGluZUpJVFRydWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xOTc1LDcgKzIwNzMsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkJhc2VsaW5lSklUVHJ1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYgogLy8gVXNhZ2U6CiAvLyBmdW5jdGlvbiBmKCkgeyB9Owog
Ly8gJHZtLm5vSW5saW5lKGYpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Ob0lubGluZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9JbmxpbmUsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC0x
OTkxLDcgKzIwODksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbk5vSW5saW5lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogCiAvLyBSdW5zIGEgZnVs
bCBHQyBzeW5jaHJvbm91c2x5LgogLy8gVXNhZ2U6ICR2bS5nYygpCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HQywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk1JbnNwZWN0b3I6OmdjKCZnbG9iYWxPYmpl
Y3QtPnZtKCkpOwpAQCAtMjAwMCw3ICsyMDk4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25HQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwK
IAogLy8gUnVucyB0aGUgZWRlbkdDIHN5bmNocm9ub3VzbHkuCiAvLyBVc2FnZTogJHZtLmVkZW5H
QygpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRWRlbkdDLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAg
ICBWTUluc3BlY3Rvcjo6ZWRlbkdDKCZnbG9iYWxPYmplY3QtPnZtKCkpOwpAQCAtMjAwOSw3ICsy
MTA3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVu
R0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIAogLy8gUnVucyBhIGZ1bGwgR0MsIGJ1
dCBzd2VlcCBhc3luY2hyb25vdXNseS4KIC8vIFVzYWdlOiAkdm0uZ2NTd2VlcEFzeW5jaHJvbm91
c2x5KCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NTd2Vl
cEFzeW5jaHJvbm91c2x5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9ub3VzbHks
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIGdsb2JhbE9iamVjdC0+dm0oKS5oZWFw
LmNvbGxlY3ROb3coQXN5bmMsIENvbGxlY3Rpb25TY29wZTo6RnVsbCk7CkBAIC0yMDE4LDcgKzIx
MTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDU3dl
ZXBBc3luY2hyb25vdXNseShKU0dsb2JhbE9iamVjdAogCiAvLyBEdW1wcyB0aGUgaGFzaGVzIG9m
IGFsbCBzdWJzcGFjZXMgY3VycmVudGx5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgVk0uCiAvLyBVc2Fn
ZTogJHZtLmR1bXBTdWJzcGFjZUhhc2hlcygpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVt
cFN1YnNwYWNlSGFzaGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yMDQwLDcgKzIxMzgsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcyhKU0dsb2Jh
bE9iamVjdCogZwogLy8gTm90ZTogeW91IGNhbm5vdCB0b1N0cmluZygpIGEgY29kZUJsb2NrLCB1
bmxpbmtlZENvZGVCbG9jaywgb3IgZXhlY3V0YWJsZSBiZWNhdXNlCiAvLyB0aGVyZSBhcmUgaW50
ZXJuYWwgb2JqZWN0cyBhbmQgbm90IGEgSlMgb2JqZWN0LiBIZW5jZSwgeW91IGNhbm5vdCBkbyBz
dHJpbmcKIC8vIGNvbmNhdGVuYXRpb24gd2l0aCB0aGVtLgotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25DYWxsRnJhbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAg
ICB1bnNpZ25lZCBmcmFtZU51bWJlciA9IDE7CkBAIC0yMDYxLDcgKzIxNTksNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxGcmFtZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZQogLy8gR2V0cyBhIHRva2VuIGZvciB0aGUgQ29kZUJsb2NrIGZvciBh
IHNwZWNpZmllZCBmcmFtZSBpbmRleC4KIC8vIFVzYWdlOiBjb2RlQmxvY2tUb2tlbiA9ICR2bS5j
b2RlQmxvY2tGb3JGcmFtZSgwKSAvLyBmcmFtZSAwIGlzIHRoZSB0b3AgZnJhbWUuCiAvLyBVc2Fn
ZTogY29kZUJsb2NrVG9rZW4gPSAkdm0uY29kZUJsb2NrRm9yRnJhbWUoKSAvLyBpbXBsaWVzIGZy
YW1lIDAgaS5lLiBjdXJyZW50IGZyYW1lLgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Db2RlQmxvY2tGb3JGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNvZGVCbG9ja0ZvckZyYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgdW5zaWduZWQgZnJhbWVOdW1iZXIgPSAxOwpAQCAtMjExNiw3ICsyMjE0LDcgQEAg
c3RhdGljIENvZGVCbG9jayogY29kZUJsb2NrRnJvbUFyZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGwKIC8vIFVzYWdlOiAkdm0ucHJpbnQoImNvZGVibG9jayA9
ICIsICR2bS5jb2RlQmxvY2tGb3IoY29kZUJsb2NrVG9rZW4pKQogLy8gTm90ZTogeW91IGNhbm5v
dCB0b1N0cmluZygpIGEgY29kZUJsb2NrIGJlY2F1c2UgaXQncyBhbiBpbnRlcm5hbCBvYmplY3Qg
YW5kIG5vdAogLy8gYSBKUyBvYmplY3QuIEhlbmNlLCB5b3UgY2Fubm90IGRvIHN0cmluZyBjb25j
YXRlbmF0aW9uIHdpdGggaXQuCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNvZGVCbG9ja0ZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNvZGVCbG9j
a0ZvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gY29kZUJsb2NrRnJvbUFyZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
CkBAIC0yMTMwLDcgKzIyMjgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNvZGVCbG9ja0ZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiAvLyBVc2Fn
ZTogJHZtLmR1bXBTb3VyY2VGb3IoZnVuY3Rpb25PYmopCiAvLyBVc2FnZTogJHZtLmR1bXBTb3Vy
Y2VGb3IoY29kZUJsb2NrVG9rZW4pCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkR1bXBTb3VyY2VGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1w
U291cmNlRm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBjb2RlQmxvY2tGcm9tQXJnKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKQEAgLTIxNDEsNyArMjIzOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRHVtcFNvdXJjZUZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAKIC8v
IFVzYWdlOiAkdm0uZHVtcEJ5dGVjb2RlRm9yKGZ1bmN0aW9uT2JqKQogLy8gVXNhZ2U6ICR2bS5k
dW1wQnl0ZWNvZGVGb3IoY29kZUJsb2NrKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25EdW1wQnl0ZWNvZGVGb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNvZGVCbG9ja0Zyb21BcmcoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOwpAQCAtMjE1Miw3ICsyMjUwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9iYWxPYmplY3QqIGds
b2IKIAogLy8gUHJpbnRzIGEgc2VyaWVzIG9mIGNvbW1hIHNlcGFyYXRlIHN0cmluZ3Mgd2l0aG91
dCBhcHBlbmRpbmcgYSBuZXdsaW5lLgogLy8gVXNhZ2U6ICR2bS5kYXRhTG9nKHN0cjEsIHN0cjIs
IHN0cjMpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRhdGFM
b2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EYXRhTG9nLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgY29uc3QgYm9vbCBhZGRMaW5lRmVlZCA9IGZhbHNl
OwpAQCAtMjE2MSw3ICsyMjU5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25EYXRhTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIAogLy8gUHJp
bnRzIGEgc2VyaWVzIG9mIGNvbW1hIHNlcGFyYXRlIHN0cmluZ3MgYW5kIGFwcGVuZHMgYSBuZXds
aW5lLgogLy8gVXNhZ2U6ICR2bS5wcmludChzdHIxLCBzdHIyLCBzdHIzKQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvblByaW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgY29uc3QgYm9vbCBhZGRMaW5lRmVlZCA9IHRydWU7CkBAIC0yMTcwLDcgKzIyNjgsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKIC8vIER1bXBzIHRoZSBjdXJyZW50IENhbGxGcmFtZS4K
IC8vIFVzYWdlOiAkdm0uZHVtcENhbGxGcmFtZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25EdW1wQ2FsbEZyYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgLy8gV2hlbiB0aGUgY2FsbGVycyBjYWxsIHRoaXMgZnVuY3Rpb24sIHRoZXkgYXJlIGV4
cGVjdGluZyB0byBkdW1wIHRoZWlyCkBAIC0yMTgxLDcgKzIyNzksNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogCiAvLyBEdW1wcyB0aGUgSlMgc3RhY2suCiAvLyBVc2FnZTogJHZtLnByaW50
U3RhY2soKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1w
U3RhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wU3RhY2ssIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAvLyBXaGVuIHRoZSBjYWxsZXJzIGNhbGwg
dGhpcyBmdW5jdGlvbiwgdGhleSBhcmUgZXhwZWN0aW5nIHRvIGR1bXAgdGhlCkBAIC0yMTk1LDcg
KzIyOTMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1
bXBTdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogLy8gVXNhZ2U6ICR2bS5kdW1wUmVn
aXN0ZXJzKCkgLy8gZHVtcCB0aGUgcmVnaXN0ZXJzIG9mIHRoZSBjdXJyZW50IENhbGxGcmFtZS4K
IC8vIEZJWE1FOiBDdXJyZW50bHksIHRoaXMgZnVuY3Rpb24gZHVtcHMgdGhlIHBoeXNpY2FsIGZy
YW1lLiBXZSBzaG91bGQgbWFrZQogLy8gaXQgZHVtcCB0aGUgbG9naWNhbCBmcmFtZSAoaS5lLiBi
ZSBhYmxlIHRvIGR1bXAgaW5saW5lZCBmcmFtZXMgYXMgd2VsbCkuCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBSZWdpc3RlcnMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EdW1wUmVnaXN0ZXJzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjIyNSw3ICsy
MzIzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1w
UmVnaXN0ZXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogLy8gRHVtcHMgdGhlIGludGVybmFs
IG1lbW9yeSBsYXlvdXQgb2YgYSBKU0NlbGwuCiAvLyBVc2FnZTogJHZtLmR1bXBDZWxsKGNlbGwp
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDZWxsKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EdW1wQ2VsbCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CkBAIC0yMjM4LDcgKzIzMzYsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDZWxsKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogCiAvLyBHZXRzIHRoZSBkYXRhTG9nIGR1bXAgb2Yg
dGhlIGluZGV4aW5nTW9kZSBvZiB0aGUgcGFzc2VkIHZhbHVlLgogLy8gVXNhZ2U6ICR2bS5wcmlu
dCgiaW5kZXhpbmdNb2RlID0gIiArICR2bS5pbmRleGluZ01vZGUoanNWYWx1ZSkpCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkluZGV4aW5nTW9kZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkluZGV4aW5nTW9kZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc09iamVj
dCgpKQpAQCAtMjI0OSw3ICsyMzQ3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25JbmRleGluZ01vZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RyZWFt
LnRvU3RyaW5nKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25JbmxpbmVDYXBhY2l0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklubGlu
ZUNhcGFjaXR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjI2MSw3ICsyMzU5LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JbmxpbmVDYXBhY2l0eShKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKIAogLy8gR2V0cyB0aGUgZGF0YUxvZyBkdW1wIG9mIGEgZ2l2ZW4gSlMg
dmFsdWUgYXMgYSBzdHJpbmcuCiAvLyBVc2FnZTogJHZtLnByaW50KCJ2YWx1ZSA9ICIgKyAkdm0u
dmFsdWUoanNWYWx1ZSkpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBXVEY6OlN0cmluZ1ByaW50U3RyZWFtIHN0
cmVhbTsKQEAgLTIyNzYsNyArMjM3NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIAogLy8g
R2V0cyB0aGUgcGlkIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuCiAvLyBVc2FnZTogJHZtLnByaW50
KCJwaWQgPSAiICsgJHZtLmdldHBpZCgpKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25HZXRQSUQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UElELCAoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2V0Q3VycmVudFByb2Nlc3NJRCgpKSk7CkBA
IC0yMjg0LDcgKzIzODIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkdldFBJRChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCiAKIC8vIE1ha2UgdGhl
IGdsb2JhbE9iamVjdCBoYXZlIGEgYmFkIHRpbWUuIERvZXMgbm90aGluZyBpZiB0aGUgb2JqZWN0
IGlzIG5vdCBhIEpTR2xvYmFsT2JqZWN0LgogLy8gVXNhZ2U6ICR2bS5oYXZlQUJhZFRpbWUoZ2xv
YmFsT2JqZWN0KQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25I
YXZlQUJhZFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXZlQUJhZFRpbWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yMzAzLDcgKzI0MDEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhdmVBQmFkVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogCiAvLyBDaGVja3MgaWYgdGhlIG9iamVjdCAob3IgaXRzIGdsb2JhbCBpZiB0aGUgb2JqZWN0
IGlzIG5vdCBhIGdsb2JhbCkgaXMgaGF2aW5nIGEgYmFkIHRpbWUuCiAvLyBVc2FnZTogJHZtLmlz
SGF2aW5nQUJhZFRpbWUob2JqKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNI
YXZpbmdBQmFkVGltZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTIzNDgsNyArMjQ0Niw3IEBAIHN0YXRp
YyB2b2lkIGNhbGxXaXRoU3RhY2tTaXplUHJvYmVGdW5jdGlvbihQcm9iZTo6U3RhdGUqIHN0YXRl
KQogI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogCiBTVVBQUkVTU19BU0FOCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXplKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbFdpdGhTdGFja1NpemUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNDQ0LDcgKzI1NDIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXplKEpTR2xvYmFsT2JqZWN0KiBnbAogCiAvLyBD
cmVhdGVzIGEgbmV3IGdsb2JhbCBvYmplY3QuCiAvLyBVc2FnZTogJHZtLmNyZWF0ZUdsb2JhbE9i
amVjdCgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0
ZUdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0yNDUyLDcgKzI1NTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZSh2bSwgSlNHbG9iYWxPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUHJveHkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25DcmVhdGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0NjYsNyArMjU2
NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
UHJveHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShwcm94eSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ3JlYXRlUnVudGltZUFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
UnVudGltZUFycmF5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAg
SlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2JqZWN0KTsKQEAgLTI0NzQsNyArMjU3Miw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUnVudGltZUFy
cmF5KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhcnJheSk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
TnVsbFJvcGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNDgyLDcgKzI1ODAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNSb3BlU3RyaW5nOjpjcmVhdGVOdWxsRm9yVGVzdGluZyh2
bSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNy
ZWF0ZUltcHVyZUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUltcHVy
ZUdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0OTYsNyArMjU5NCw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdl
dHRlck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNTA2LDcgKzI2MDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdChKU0dsb2JhbE9iagogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTE2LDcgKzI2MTQsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25D
cmVhdGVET01KSVRHZXR0ZXJPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdl
dHRlck9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwpAQCAtMjUyNiw3ICsyNjI0LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9F
ZmZlY3RzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJOb0VmZmVj
dHNPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTI1MzYsNyArMjYzNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0
KEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBs
ZXhPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmpl
Y3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTI1NDYsNyArMjY0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdChKU0dsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjU1
Niw3ICsyNjU0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdChKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTY2LDcgKzI2NjQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURP
TUpJVENoZWNrSlNDYXN0T2JqZWN0KEpTR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVET01KSVRHZXR0ZXJCYXNlSlNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjU3Nyw3ICsyNjc1LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0
ZXJCYXNlSlNPYmplY3QoSlNHbG8KIH0KIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWlu
Z1BhcnNlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwpAQCAtMjU4Niw3ICsyNjg0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyKEpTR2xvYmFsT2IKIH0KICNlbmRp
ZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVN0
YXRpY0N1c3RvbUFjY2Vzc29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21B
Y2Nlc3NvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtMjU5Niw3ICsyNjk0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3NvcihKU0dsb2Jh
bE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNjA2
LDcgKzI3MDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNs
b3RTdGF0dXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1Np
ZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0y
NjE4LDcgKzI3MTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0yNjMxLDcgKzI3MjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZShKU0dsb2JhbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCAxLCBuYW1lLCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRo
TmFtZSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNl
dEltcHVyZUdldHRlckRlbGVnYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY1Myw3ICsyNzUxLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJbXB1cmVH
ZXR0ZXJEZWxlZ2F0ZShKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNyZWF0ZUJ1aWx0aW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVC
dWlsdGluLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY3MSw3ICsyNzY5LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCdWlsdGluKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZ1bmMpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTI2OTAsNyArMjc4OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uR2V0UHJpdmF0ZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS5nZXQoZ2xvYmFsT2JqZWN0LCBzeW1ib2wpKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUm9vdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3JlYXRlUm9vdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY5OCw3ICsyNzk2LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVSb290KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFJvb3Q6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3JlYXRlRWxlbWVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZUVsZW1lbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNzExLDcgKzI4MDksNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUVsZW1lbnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRWxlbWVudDo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHJvb3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25HZXRFbGVtZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR2V0RWxlbWVudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI3MjMsNyArMjgyMSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0RWxlbWVudChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQgPyBy
ZXN1bHQgOiBqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNy
ZWF0ZVNpbXBsZU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjczMSw3ICsyODI5LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3QoSlNHbG9i
YWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFNpbXBsZU9iamVjdDo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkdldEhpZGRlblZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjc0Niw3ICsyODQ0LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRIaWRkZW5WYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNpbXBs
ZU9iamVjdC0+aGlkZGVuVmFsdWUoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25TZXRIaWRkZW5WYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI3NjMsNyArMjg2MSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SGlkZGVuVmFs
dWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25TaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAt
Mjc4OSw3ICsyODg3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25TaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjayhKU0dsb2IKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3co
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRo
cm93LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC0yNzk3LDcgKzI4OTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9u
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9uLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwpAQCAtMjgxNyw3ICsyOTE1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25GaW5kVHlwZUZvckV4cHJlc3Npb24oSlNHbG9iYWxPYmplY3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTT05QYXJzZShnbG9iYWxPYmplY3QsIGpzb25T
dHJpbmcpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZXR1cm5UeXBlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmV0dXJuVHlwZUZv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4MzMsNyArMjkzMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmV0dXJuVHlwZUZvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU09OUGFyc2UoZ2xvYmFsT2JqZWN0
LCBqc29uU3RyaW5nKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRmxhdHRlbkRpY3Rpb25hcnlPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4NDMsNyAr
Mjk0MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmxh
dHRlbkRpY3Rpb25hcnlPYmplY3QoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIGVuY29kZWRKU1Vu
ZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1w
QmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjg1Miw3ICsyOTUwLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQmFzaWNCbG9ja0V4
ZWN1dGlvblJhbmdlcyhKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkhhc0Jhc2ljQmxvY2tFeGVjdXRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4NzIsNyArMjk3MCw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oaGFzRXhlY3V0ZWQpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25CYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25CYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yOTM1
LDE5ICszMDMzLDE5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjaGFuZ2VEZWJ1Z2dlck1vZGVX
aGVuSWRsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRW5hYmxlRGVidWdnZXJNb2RlV2hlbklkbGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIHJldHVybiBjaGFuZ2VEZWJ1Z2dlck1vZGVXaGVuSWRsZShnbG9iYWxPYmpl
Y3QsIHsgQ29kZUdlbmVyYXRpb25Nb2RlOjpEZWJ1Z2dlciB9KTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EaXNhYmxlRGVidWdnZXJNb2RlV2hlbklk
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkRpc2FibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIGNoYW5nZURlYnVnZ2VyTW9kZVdoZW5J
ZGxlKGdsb2JhbE9iamVjdCwgeyB9KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hlbklkbGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkRlbGV0ZUFsbENvZGVXaGVuSWRsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAg
Vk0qIHZtID0gJmdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI5NTgsMTMgKzMwNTYsMTMgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hl
bklkbGUoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkdsb2JhbE9iamVjdENvdW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HbG9iYWxPYmplY3RDb3VudCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcC5nbG9iYWxPYmplY3RDb3VudCgpKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2xvYmFsT2Jq
ZWN0Rm9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2xvYmFsT2JqZWN0Rm9y
T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CkBAIC0yOTc0LDcgKzMwNzIsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdsb2JhbE9iamVjdEZv
ck9iamVjdChKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRH
ZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRHZXR0ZXJTZXR0ZXIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0zMDA0LDcgKzMxMDIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldEdldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCog
Z2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkR2V0dGVyRnJvbUdldHRlclNl
dHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0
dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzAyMSwxNCArMzExOSwxNCBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0dGVy
KEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2V0dGVyKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21UZXN0
R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0
dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDdXN0b21HZXR0ZXJT
ZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC0zMDQ1LDI2ICszMTQzLDI2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMoSlNHbG9iYWxPYmpl
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90
PihkZWx0YSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25DdXJyZW50Q1BVVGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DdXJyZW50Q1BVVGltZSwgKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKENQVVRpbWU6OmZvckN1cnJlbnRU
aHJlYWQoKS52YWx1ZSgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uVG90YWxHQ1RpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblRvdGFsR0NUaW1lLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2bS5oZWFwLnRvdGFsR0NU
aW1lKCkuc2Vjb25kcygpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUGFyc2VDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QYXJzZUNvdW50LCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2xvYmFsUGFyc2VDb3VudC5sb2Fk
KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25J
c1dhc21TdXBwb3J0ZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKQEAgLTMwNzQsNyArMzE3Miw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsCiAjZW5kaWYKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25NYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMw
ODksNyArMzE4Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZShKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyh2bSwgU3RyaW5nOjphZG9wdChXVEZNb3ZlKGJ1ZmZlcikpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEb2xsYXJWTUhlbHBlcjo6ZnVu
Y3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzExNCw4
ICszMjEyLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RvbGxhclZNSGVscGVy
OjpmdW5jdGlvbkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXMKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgcmVzdWx0LT5wdXNoKGdsb2JhbE9iamVjdCwg
SlNWYWx1ZShzdHJ1Y3R1cmUtPm1heE9mZnNldCgpKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGlmIChzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblBy
b3BlcnR5TmFtZSkKLSAgICAgICAgICAgIHJlc3VsdC0+cHVzaChnbG9iYWxPYmplY3QsIGpzU3Ry
aW5nKHZtLCBTdHJpbmcoKnN0cnVjdHVyZS0+bV90cmFuc2l0aW9uUHJvcGVydHlOYW1lKSkpOwor
ICAgICAgICBpZiAoc3RydWN0dXJlLT50cmFuc2l0aW9uUHJvcGVydHlOYW1lKCkpCisgICAgICAg
ICAgICByZXN1bHQtPnB1c2goZ2xvYmFsT2JqZWN0LCBqc1N0cmluZyh2bSwgU3RyaW5nKCpzdHJ1
Y3R1cmUtPnRyYW5zaXRpb25Qcm9wZXJ0eU5hbWUoKSkpKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgcmVzdWx0LT5wdXNoKGdsb2JhbE9iamVjdCwganNOdWxsKCkpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwpAQCAtMzEyNiw3ICszMjI0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RvbGxhclZNSGVscGVyOjpmdW5jdGlvbkdldFN0cnVj
dHVyZVRyYW5zaXRpb25MaXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0Q29uY3Vy
cmVudGx5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0Q29uY3VycmVudGx5LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwpAQCAtMzE0Niw3ICszMjQ0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25HZXRDb25jdXJyZW50bHkoSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXNPd25MZW5ndGhQcm9wZXJ0eSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTMxNTYsNyArMzI1NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZnVuY3Rpb24tPmNhbkFzc3VtZU5hbWVBbmRM
ZW5ndGhBcmVPcmlnaW5hbCh2bSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25SZWplY3RQcm9taXNlQXNIYW5kbGVkKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uUmVqZWN0UHJvbWlzZUFzSGFuZGxlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIEpTUHJvbWlzZSogcHJvbWlzZSA9IGpzQ2FzdDxKU1Byb21p
c2UqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTMxNjUsNyArMzI2Myw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVqZWN0UHJv
bWlzZUFzSGFuZGxlZChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25TZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uU2V0VXNlclByZWZlcnJlZExhbmd1YWdlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMxODcs
MjUgKzMyODUsMjUgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbklDVVZlcnNpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVVmVyc2lvbiwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFdURjo6SUNVOjptYWpv
clZlcnNpb24oKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbklDVUhlYWRlclZlcnNpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVSGVhZGVyVmVyc2lvbiwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFVfSUNVX1ZFUlNJT05f
TUFKT1JfTlVNKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQXNzZXJ0RW5hYmxlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3NlcnRFbmFibGVkLCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKEFTU0VSVF9FTkFCTEVEKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNNZW1vcnlM
aW1pdGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbklzTWVtb3J5TGltaXRlZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpIHx8IFBMQVRGT1JNKFdBVENIT1MpCkBAIC0zMjE1
LDE5ICszMzEzLDE5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSXNNZW1vcnlMaW1pdGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsCiAjZW5kaWYKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Vc2VKSVQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVXNl
SklULCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2Vy
dFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KE9wdGlvbnM6OnVzZUpJVCgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uSXNHaWdhY2FnZUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNHaWdhY2FnZUVuYWJsZWQs
IChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oR2ln
YWNhZ2U6OmlzRW5hYmxlZCgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25hcnkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25Ub1VuY2FjaGVhYmxlRGljdGlvbmFyeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMz
NzIsNyArMzQ3MCw3IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNXYXNtU3VwcG9ydGVkIiwgZnVuY3Rpb25Jc1dhc21TdXBw
b3J0ZWQsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJs
ZSIsIGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSwgMSk7CiAKLSAgICBhZGRGdW5j
dGlvbih2bSwgImdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0IiwgSlNEb2xsYXJWTUhlbHBlcjo6
ZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdCwgMSk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJnZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdCIsIGZ1bmN0aW9uR2V0U3RydWN0dXJlVHJh
bnNpdGlvbkxpc3QsIDEpOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0Q29uY3VycmVudGx5Iiwg
ZnVuY3Rpb25HZXRDb25jdXJyZW50bHksIDIpOwogCiAgICAgYWRkRnVuY3Rpb24odm0sICJoYXNP
d25MZW5ndGhQcm9wZXJ0eSIsIGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHksIDEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcAppbmRleCBh
ZjQyZDhkNTcwOWYyMDZhN2E3ODcwOGY2NWQ3ZTUwYjU1OGU2MzYyLi4yMzgxZDMyODIxMzFmODU0
ZjhmNWJiMTY2N2UzMTBiZjBiMzM4MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcApAQCAtNjIsOSArNjIsOSBAQCBGT1JfRUFDSF9XRUJB
U1NFTUJMWV9DT05TVFJVQ1RPUl9UWVBFKERFRklORV9DQUxMQkFDS19GT1JfQ09OU1RSVUNUT1Ip
CiAKICN1bmRlZiBERUZJTkVfQ0FMTEJBQ0tfRk9SX0NPTlNUUlVDVE9SCiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZUZ1bmMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVZhbGlkYXRl
RnVuYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlDb21waWxlRnVuYyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVZhbGlkYXRlRnVuYyk7CiAKIH0KIApAQCAt
MTUxLDcgKzE1MSw3IEBAIHN0YXRpYyB2b2lkIHdlYkFzc2VtYmx5TW9kdWxlVmFsaWRhdGVBc3lu
Y0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgfSkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVGdW5j
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5Q29tcGlsZUZ1bmMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgSlNXZWJBc3NlbWJseTo6d2Vi
QXNzZW1ibHlNb2R1bGVJbnN0YW50aW5hdGVBc3luYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
CiAgICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwgdm9pZCgpKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0
YW50aWF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0YW50aWF0ZUZ1
bmMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCkBAIC0zMTcsNyArMzE3LDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW50
aWF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGcKICAgICB9CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
MzAsNyArMzMwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNz
ZW1ibHlWYWxpZGF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbih2YWxpZGF0aW9uUmVzdWx0Lmhhc192YWx1ZSgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5n
SW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5n
SW50ZXJuYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gY2F0
Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwpAQCAtMzUzLDcgKzM1Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9taXNl
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbnRp
YXRlU3RyZWFtaW5nSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0
YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5oCmlu
ZGV4IDM2ZjcyZDU3MTg5ZmM2MzYxOWIyYThkYzA1MzJmYWVhZDk1NmNhOGMuLjUyNjE5YjQ1YTA2
NjM2MTNlZTVhOTQzOGY3OGQyODc2YTMzOTI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmgKQEAgLTU4LDggKzU4LDggQEAgY2xhc3MgSlNXZWJB
c3NlbWJseSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNz
ZW1ibHlJbnN0YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5Q29tcGlsZVN0cmVh
bWluZ0ludGVybmFsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0
YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTI3ODYxNmZiN2MzNGRiOGUy
MmJkMmIwZWViMzFhNmI4Yzk3ZGI5ZC4uNWNkMDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJl
NDVkMzU5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4
LDEyICszOCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgJmNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
KSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yVGFibGVX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcgogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
YXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTgsNyArNjEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEpTR2xvYmFs
TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1l
c3NhZ2UpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggYzBiMzAx
NWI3YTA1ZDI5OGFjZmEyNGViY2RjZThlNTQyODc2YTI1Zi4uODEyOGNiMGNjNDhjZjY0MTFlMjhi
ODYxMTViYzUzMDU1OGIxYmU3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTU2LDcgKzU2LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUZ1bmN0aW9uOjpzX2luZm8g
PSB7ICJXZWJBc3NlbWJseUZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUZ1bmN0aW9uKSB9OwogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2ViQXNzZW1ibHlGdW5jdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uKTsKKworSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ1MmJhYjMyZTVhNjUw
NzcwYjhiOGQzZjU3ZjMyMWI4NzEwYzliMjQuLjMwMDJjNzhmNWIwNmQzNDlhZDU4OGJlMDdiZGY4
ZTc4MDRlMDU4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC0zOCwxMiArMzgs
MTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUdsb2Jh
bENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZjb25z
dHJ1Y3Rvckdsb2JhbFdlYkFzc2VtYmx5R2xvYmFsLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKFdlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlHbG9iYWwpOworCiAvKiBT
b3VyY2UgZm9yIFdlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IubHV0LmgKICBAYmVnaW4gY29u
c3RydWN0b3JHbG9iYWxXZWJBc3NlbWJseUdsb2JhbAogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTIyLDcgKzEyNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShK
U1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2Jq
ZWN0LT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSgpLCBXVEZNb3ZlKHdhc21HbG9iYWwpKSkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3Nl
bWJseUdsb2JhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xv
YmFsUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG90eXBlLmNwcAppbmRleCA5YmRlNTM5YjJlZjJmMzc5OTFiMGQ0Y2Y2NTU3
NDRlMDVlYzAxODhmLi5hZmQ4YjAzMWJiOTc0OGRjNjI2YzM4NjFmZjE4MGEwOTQ3MmRlMTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAjaW5jbHVkZSAiSlNX
ZWJBc3NlbWJseUdsb2JhbC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2Vi
QXNzZW1ibHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9i
YWxQcm90b0Z1bmNWYWx1ZU9mKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZSk7CiB9
CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5sdXQuaCIKQEAgLTY1LDcg
KzY1LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2V0R2xv
YmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUdsb2JhbFBy
b3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90
b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgxLDcgKzgxLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90
b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2IKICAgICB9CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFs
dWUoSlNHbG9iCiAgICAgfQogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseUdsb2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggY2NjMjdlNjMx
YWY3N2U0YmM3MDlmZWFhOGUyNTcyYWU0ZGEyMTY3OS4uZjRhZTdhMzI2MWEwZDk0ZDJhMjlhZjQ0
OTFkYTJkMjE1ZmJjYWUwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCkBAIC0z
OSw2ICszOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2lu
Zm8sICZjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlJbnN0YW5jZSwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpIH07CiAKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUlu
c3RhbmNlKTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
bHV0LmgKICBAYmVnaW4gY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5SW5zdGFuY2UKICBAZW5k
CkBAIC00Niw3ICs0OSw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfCiAKIHVzaW5nIFdhc206
OlBsYW47CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpT
V2ViQXNzZW1ibHlJbnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5SW5zdGFuY2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc2LDcgKzc5LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUlu
c3RhbmNlKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGluc3RhbmNl
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5SW5zdGFuY2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlJbnN0YW5jZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAppbmRleCAzMGM3YzFmODYwYzIyMzgwYzU5
NDM1N2QzOWVlZWQ4NjE3MTM1ZGQ0Li42NjlmNjgyOGU4ZGYxNGQ5NjMwOGY5N2FmMjViMDFlYWQz
NTg5Mzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcApAQCAtMzQsNyArMzQsNyBAQAog
I2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90
b0Z1bmNFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbmNlUHJvdG9GdW5jRXhwb3J0cyk7
CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmx1dC5oIgpAQCAt
NjEsNyArNjEsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1dlYkFzc2VtYmx5SW5zdGFuY2Uq
IGdldEluc3RhbmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b0Z1bmNFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b0Z1bmNFeHBvcnRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGRlM2ZiN2M3OWQ2NTk1NDE2YTZlN2I4YjAy
ZjJhOGU0YzkyMjg5Mi4uOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2YzhhYjJhOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5r
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDEyICszOCwxNSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0cnVj
dG9yVGFibGVXZWJBc3NlbWJseUxpbmtFcnJvciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTsK
KwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmx1dC5oCiAg
QGJlZ2luIGNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseUxpbmtFcnJvcgogIEBlbmQKICAqLwog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTgsNyArNjEsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKEpTR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBz
dHJ1Y3R1cmUsIG1lc3NhZ2UpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNh
bGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+d2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggMWUwY2JhMGYzYTgzNmJhOTY2MzAyYzBjZjVlZDhkMjU5ZjE1YmVmZC4u
NTBjY2NhMjQxZmQ1YmU5Nzk1NmRmMDg4Yjk0YThkOGFiMGZmMGQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3Rvci5jcHAKQEAgLTQ0LDEyICs0NCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29u
c3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseU1lbW9y
eSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVj
dG9yKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5TWVtb3J5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5TWVtb3J5KTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseU1lbW9yeUNv
bnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseU1lbW9y
eQogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
V2ViQXNzZW1ibHlNZW1vcnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE0LDcgKzEx
Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlNZW1vcnkoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc01lbW9yeSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxKU1dlYkFzc2VtYmx5TWVtb3J5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlNZW1vcnks
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKaW5kZXggMmI5NzBmMDcwNDRj
OGQ0ZmJiODBmODBiYzkxOGEyOTBjYjdiNzBkMC4uYWI0YTJiZmVlZWZhNjg0MTdjMzhjYzE5NTRl
NWU5N2Y2MmY2MDA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcApAQCAtMzgsOCArMzgsOCBA
QAogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVu
Y0dyb3coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIpOwogfQogCiAjaW5jbHVk
ZSAiV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUubHV0LmgiCkBAIC02OSw3ICs2OSw3IEBAIEFM
V0FZU19JTkxJTkUgSlNXZWJBc3NlbWJseU1lbW9yeSogZ2V0TWVtb3J5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgcmV0dXJuIG1lbW9yeTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3coSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTg2LDcgKzg2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3coSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdC5wYWdlQ291bnQoKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TWVtb3J5UHJv
dG9GdW5jQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9G
dW5jQnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggOWM3YWMwMjVlYzAyMTljYzBmMWU0MGNiYjgwMzI0NWFlODQ3Y2Y2MS4uNDgy
YjYyNDkxMWRjZjBmZGFhMTU1MjRiNzlkNjhmYzBmOGFkYmRjYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQyLDkgKzQyLDExIEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHdlYkFzc2VtYmx5TW9kdWxlQ3VzdG9tU2VjdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5
TW9kdWxlSW1wb3J0cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVFeHBvcnRzKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1vZHVsZUN1c3RvbVNlY3Rpb25zKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5TW9kdWxlSW1wb3J0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1vZHVsZUV4cG9ydHMpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlNb2R1bGUpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseU1vZHVsZSk7CiB9CiAK
ICNpbmNsdWRlICJXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmx1dC5oIgpAQCAtNjEsNyAr
NjMsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbgogIEBlbmQKICAqLwogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlQ3VzdG9tU2VjdGlvbnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNb2R1bGVDdXN0b21TZWN0aW9ucywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC05NCw3ICs5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVDdXN0b21TZWN0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlSW1wb3J0cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseU1vZHVsZUltcG9ydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTI1LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1i
bHlNb2R1bGVJbXBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHdlYkFzc2VtYmx5TW9kdWxlRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJs
eU1vZHVsZUV4cG9ydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU0LDcgKzE1Niw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVFeHBvcnRz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RKU1dlYkFzc2VtYmx5TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlNb2R1bGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NSw3ICsxNjcsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5
TW9kdWxlKEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZU1vZHVsZShn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgV1RGTW92ZShzb3VyY2UpKSkpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseU1vZHVsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWU1Yzc3MWI2MmUyMWM1NmJjZTc3ZDRlYjdi
NmQyNDYzMWE0NjFiZS4uM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQyZmY2NzkwMjFmNWNiOTI1MiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDEyICszOCwx
NSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
JmNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKSB9OwogCitz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvcgogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNjAsNyArNjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEpTR2xvYmFsTwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgV1RGTW92ZShtZXNzYWdlU3RyaW5nKSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAg
IFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5UnVu
dGltZUVycm9yU3RydWN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAppbmRleCBkOTgz
ZjBhMDBkYjEzOWJkYzdiOGYwNWMxZGZjM2ZlMDAwZjE2YjkwLi4wM2JmOGRhMTFmMWE5NmY4ZDMz
OWE5YjczYjM5MjYxM2FiY2FmNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTQy
LDEyICs0MiwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2Vt
Ymx5VGFibGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCAmY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKSB9OwogCitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseVRhYmxlKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSk7CisKIC8q
IFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNv
bnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseVRhYmxlCiAgQGVuZAogICovCiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTA2LDcgKzEwOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZShKU0dsb2JhbE9iamVjdCoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2Vi
QXNzZW1ibHlUYWJsZTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSgpLCB3YXNtVGFibGUucmVsZWFzZU5vbk51bGwoKSkp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNz
ZW1ibHlUYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5VGFibGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJs
ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCA1NTFkOWY5N2FkMjRkMjUzZGQ3N2RmNjE4ZGQzYjI1
YjI2YjllY2QwLi44NmY0ZTc4ZmVhNTIxMDUxMDA2ODE1OTdlNDU2YTE4OTllY2ZiYTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiAjaW5jbHVkZSAiU3RydWN0
dXJlSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJv
dG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jTGVuZ3RoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCk7
CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIgpAQCAtNzAs
NyArNzAsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1dlYkFzc2VtYmx5VGFibGUqIGdldFRh
YmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgwLDcgKzgwLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVu
Y0xlbmd0aChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KHRhYmxlLT5sZW5ndGgoKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC05OSw3ICs5OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFz
c2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihvbGRMZW5ndGgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0KgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFibGUtPmdldChpbmRleCkpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCmluZGV4IDIxNzZiYzcy
ZGJmNWExNmVhZGQ3MWY3YWMyYjBjZTU3ZjZhYmM1ODEuLmRjZDBiNjhjYTE2NjRlNmM5ZjE2MGU5
NjQ3YzE1MDY1YWE4MTE1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKQEAgLTM2LDE2ICsz
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb246OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IGpzQ2FzdDxXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbio+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7Ci0gICAgSlNP
YmplY3QqIGZ1bmN0aW9uID0gd2FzbUZ1bmN0aW9uLT5mdW5jdGlvbigpOwotICAgIGF1dG8gY2Fs
bERhdGEgPSBnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24pOwotICAgIFJFTEVBU0VfQVNTRVJUKGNh
bGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwotICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwg
Y2FsbERhdGEsIGpzVW5kZWZpbmVkKCksIEFyZ0xpc3QoY2FsbEZyYW1lKSkpKTsKLX0KK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
bik7CiAKIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbihWTSYgdm0sIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXYXNtOjpXYXNtVG9XYXNtSW1w
b3J0YWJsZUZ1bmN0aW9uIGltcG9ydGFibGVGdW5jdGlvbikKICAgICA6IEJhc2Uodm0sIGV4ZWN1
dGFibGUsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQpAQCAtODUsNiArNzYsMTcgQEAgdm9pZCBX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG8KICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2Z1bmN0
aW9uKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseVdyYXBw
ZXJGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1
bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBqc0Nhc3Q8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24q
PihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOworICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IHdhc21G
dW5jdGlvbi0+ZnVuY3Rpb24oKTsKKyAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2FsbERhdGEodm0s
IGZ1bmN0aW9uKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYWxsRGF0YS50eXBlICE9IENhbGxEYXRh
OjpUeXBlOjpOb25lKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShjYWxsKGdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIGNhbGxEYXRhLCBqc1VuZGVmaW5lZCgp
LCBBcmdMaXN0KGNhbGxGcmFtZSkpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2FsbGlu
Z0NvbnZlbnRpb25zLmgKaW5kZXggZDQwYzVkZTIyYjM2OTE1NjExNjliMjU2YmVkNWU4Y2NmZDBl
Zjk4Mi4uZDU5MGM1NDMxYjkwNjAyMDVlNGE5NWQzMTgwN2RkYjNiMjlkNjQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCkBAIC0zNSwxMyArMzUsMTkg
QEAKIAogCiAjaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgSlNDX0hPU1Rf
Q0FMTCBfX2Zhc3RjYWxsCisjZGVmaW5lIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBfX2Zhc3Rj
YWxsCiAjZWxpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLSNkZWZpbmUg
SlNDX0hPU1RfQ0FMTCBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQorI2RlZmluZSBKU0NfSE9T
VF9DQUxMX0FUVFJJQlVURVMgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKICNlbHNlCi0jZGVm
aW5lIEpTQ19IT1NUX0NBTEwKKyNkZWZpbmUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTCiAjZW5k
aWYKIAorI2RlZmluZSBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OYW1lLCBwYXJh
bWV0ZXJzKSBcCisgICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVU
RVMgZnVuY3Rpb25OYW1lIHBhcmFtZXRlcnMKKyNkZWZpbmUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbk5hbWUpIFwKKyAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TExfQVRUUklCVVRFUyBmdW5jdGlvbk5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKikKKyNkZWZpbmUgSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JZCwg
ZnVuY3Rpb24pCisKICNpZiBDUFUoWDg2KSAmJiBPUyhXSU5ET1dTKQogI2RlZmluZSBDQUxMSU5H
X0NPTlZFTlRJT05fSVNfU1REQ0FMTCAxCiAjaWZuZGVmIENERUNMCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CdWlsdGluQ29uc3RydWN0b3IuaAppbmRleCA2MTE0
NDVjOWMwYmIyMTczNDBiZWY1NzI0NmM5NmUyNzFmMmVhM2M4Li5mZjdhMDVkM2NiMjJmNzVhZWEw
YjEzYzFlNDk2OGVlMWJkNWJmY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQnVpbHRpbkNvbnN0cnVjdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01CdWlsdGluQ29uc3RydWN0b3IgZmluYWwg
OiBwdWJsaWMgSlNET01CdWkKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAgICAgc3RhdGljIEpTQzo6Q2FsbERhdGEgZ2V0Q29uc3RydWN0
RGF0YShKU0M6OkpTQ2VsbCopOwotICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRF
UyBjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiAKICAg
ICBKU0M6OkVuY29kZWRKU1ZhbHVlIGNhbGxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
JiwgSlNDOjpDYWxsRnJhbWUmLCBKU0M6OkpTT2JqZWN0Jik7CiAgICAgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBjYWxsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1l
JiwgSlNDOjpKU09iamVjdCopOwpAQCAtMTExLDcgKzExMSw3IEBAIHR5cGVuYW1lIHN0ZDo6ZW5h
YmxlX2lmPEpTRE9NT2JqZWN0SW5zcGVjdG9yPEpTQ2xhc3M+Ojppc0NvbXBsZXhXcmFwcGVyLCBK
U0M6OkpTCiAgICAgcmV0dXJuIGNvbnRleHQgPyBjcmVhdGVXcmFwcGVyPHR5cGVuYW1lIEpTQ2xh
c3M6OkRPTVdyYXBwZWQ+KGNvbnN0cnVjdG9yLmdsb2JhbE9iamVjdCgpLCBKU0NsYXNzOjpET01X
cmFwcGVkOjpjcmVhdGUoKmNvbnRleHQpKSA6IG51bGxwdHI7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIEpTQ2xhc3M+IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNE
T01CdWlsdGluQ29uc3RydWN0b3I8SlNDbGFzcz46OmNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQordGVt
cGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTF9BVFRSSUJVVEVTIEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yPEpTQ2xhc3M+Ojpjb25z
dHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBhdXRvKiBj
YXN0ZWRUaGlzID0gSlNDOjpqc0Nhc3Q8SlNET01CdWlsdGluQ29uc3RydWN0b3IqPihjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25z
dHJ1Y3Rvci5oCmluZGV4IDNmNmVhNzUwM2YyNWFlMzcxNzM5NGViMjc3OTg4MjJhNDQ4MWUzNzIu
LmFjZjkxOTBlYTc5ZmJhODU3YTZmMGEyNGE3YmQyYzFjMDYzNzYyYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01Db25zdHJ1Y3RvciBmaW5hbCA6
IHB1YmxpYyBKU0RPTUNvbnN0cnVjdG8KICAgICAvLyBVc3VhbGx5IGRlZmluZWQgZm9yIGVhY2gg
c3BlY2lhbGl6YXRpb24gY2xhc3MuCiAgICAgdm9pZCBpbml0aWFsaXplUHJvcGVydGllcyhKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKSB7IH0KICAgICAvLyBNdXN0IGJlIGRlZmluZWQgZm9y
IGVhY2ggc3BlY2lhbGl6YXRpb24gY2xhc3MuCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9B
VFRSSUJVVEVTIGNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGlubGluZSBKU0RPTUNvbnN0cnVj
dG9yPEpTQ2xhc3M+KiBKU0RPTUNvbnN0cnVjdG9yPEpTQ2xhc3M+OjpjcmVhdGUoSlNDOjpWTSYg
dm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0
cnVjdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVj
dG9yQmFzZS5jcHAKaW5kZXggMzBmNTk3MTk2YWE1NTA0OTExMWZmODhmMTdmM2IwZmU2MzJmNDQ3
OS4uMmE4NTJhNTAyZTE0MThkYjk0NzNhYjQ3MjE3MWQxYzc1NWExMWQ0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmNwcApAQCAt
MzAsNyArMzAsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBTVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoSlNET01Db25zdHJ1Y3RvckJhc2UpOwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsVGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxUaHJvd1R5cGVFcnJvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihj
YWxsVGhyb3dUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzgsNiArNDAsMTQgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFRocm93VHlwZUVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKIH0K
IAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUaHJvd1R5cGVFcnJvckZvckpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSopKQoreworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBK
U0M6OnRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbGxlZ2FsIGNvbnN0cnVj
dG9yIl9zKTsKKyAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUoSlNDOjpqc051bGwoKSk7
Cit9CisKIENhbGxEYXRhIEpTRE9NQ29uc3RydWN0b3JCYXNlOjpnZXRDYWxsRGF0YShKU0NlbGwq
KQogewogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgKaW5kZXggMDBlYjBiZTE5NzVhMzkxYjZiNjM3
YTVlZWE5ZjJmMjllNTU4ZTQ5OC4uMjVlZmQ2NjhhYzE4MTg4MjU5OTAxYjUzYzZkNjM2MzFiMjkz
Y2RjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1
Y3RvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVj
dG9yQmFzZS5oCkBAIC0yMyw2ICsyMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVGhyb3dUeXBlRXJyb3JGb3JKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZSk7CisKIC8vIEJhc2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3Rv
ciBvYmplY3RzIGluIHRoZSBKU0MgYmluZGluZ3MuCiBjbGFzcyBKU0RPTUNvbnN0cnVjdG9yQmFz
ZSA6IHB1YmxpYyBKU0RPTU9iamVjdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUu
aAppbmRleCA1OTg2ZmQ5Y2IzMTU5NTUxN2FkYzAyYzZiOWE2NmI2Y2U2ZWUyMjM2Li5jNDk5OWQ5
ZjI5Njc0MDlmMjdkMjNiNzUwM2Q1MWM3NTZiOWM0MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlLmgKQEAgLTQ2LDE5ICs0NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBjbGFz
cyBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZSBmaW5hbCA6IHB1YmxpYwogICAgIC8v
IFVzdWFsbHkgZGVmaW5lZCBmb3IgZWFjaCBzcGVjaWFsaXphdGlvbiBjbGFzcy4KICAgICB2b2lk
IGluaXRpYWxpemVQcm9wZXJ0aWVzKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpIHsgfQog
Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsVGhyb3dU
eXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSopCi0gICAgewotICAgICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAg
ICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgICAgICBKU0M6
OnRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbGxlZ2FsIGNvbnN0cnVjdG9y
Il9zKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKEpTQzo6anNOdWxsKCkp
OwotICAgIH0KLQogICAgIHN0YXRpYyBKU0M6OkNhbGxEYXRhIGdldENhbGxEYXRhKEpTQzo6SlND
ZWxsKikKICAgICB7CiAgICAgICAgIEpTQzo6Q2FsbERhdGEgY2FsbERhdGE7CiAgICAgICAgIGNh
bGxEYXRhLnR5cGUgPSBKU0M6OkNhbGxEYXRhOjpUeXBlOjpOYXRpdmU7Ci0gICAgICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJvcjsKKyAgICAgICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFRocm93VHlwZUVycm9yRm9ySlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGU7CiAgICAgICAgIHJldHVybiBjYWxsRGF0YTsKICAgICB9CiAKQEAg
LTY2LDcgKzU4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUgZmluYWwgOiBwdWJsaWMKICAgICB7CiAgICAgICAgIEpT
Qzo6Q2FsbERhdGEgY2FsbERhdGE7CiAgICAgICAgIGNhbGxEYXRhLnR5cGUgPSBKU0M6OkNhbGxE
YXRhOjpUeXBlOjpOYXRpdmU7Ci0gICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxUaHJvd1R5cGVFcnJvcjsKKyAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bFRocm93VHlwZUVycm9yRm9ySlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU7CiAgICAg
ICAgIHJldHVybiBjYWxsRGF0YTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDgyODYzOGFkM2E0OWQzMTYyYjk4
ZTU1ZDQzNGFkNGMxZGRlZTBhNjcuLjRlMjZkN2Y5NTEyNWYwY2U0NTY2MTEzZWUyODM5NDE1MDdj
YjU5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5jcHAKQEAgLTU2LDEyICs1NiwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlVGhpc1R5
cGVFcnJvckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YWtlRE9NRXhjZXB0aW9uRm9yQnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNSZWFkYWJsZUJ5dGVTdHJlYW1BUElFbmFi
bGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGlzV3JpdGFibGVTdHJlYW1BUElFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdoZW5TaWduYWxBYm9ydGVkKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1h
a2VUaGlzVHlwZUVycm9yRm9yQnVpbHRpbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiht
YWtlR2V0dGVyVHlwZUVycm9yRm9yQnVpbHRpbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYWtlRE9NRXhjZXB0aW9uRm9yQnVpbHRpbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihpc1JlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihpc1dyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHdoZW5TaWduYWxBYm9ydGVkKTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NR2xvYmFsT2Jq
ZWN0OjpzX2luZm8gPSB7ICJET01HbG9iYWxPYmplY3QiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTUdsb2JhbE9iamVj
dCkgfTsKIApAQCAtODAsNyArODAsNyBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjpkZXN0cm95
KEpTQ2VsbCogY2VsbCkKICAgICBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNlbGwp
LT5KU0RPTUdsb2JhbE9iamVjdDo6fkpTRE9NR2xvYmFsT2JqZWN0KCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZVRoaXNUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihtYWtlVGhpc1R5cGVFcnJvckZvckJ1aWx0aW5zLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChj
YWxsRnJhbWUpOwogICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsK
QEAgLTk0LDcgKzk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlVGhpc1R5
cGVFcnJvckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VUaGlzVHlwZUVy
cm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLnV0ZjgoKS5kYXRhKCksIGZ1bmN0aW9uTmFtZS51dGY4
KCkuZGF0YSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VHZXR0
ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYWtlR2V0dGVyVHlw
ZUVycm9yRm9yQnVpbHRpbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CiAgICAgQVNTRVJUKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID09IDIpOwpAQCAtMTExLDcgKzExMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5zKEpT
R2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlcnJvcik7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZURPTUV4Y2VwdGlvbkZvckJ1aWx0
aW5zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1ha2VET01FeGNlcHRpb25Gb3JCdWlsdGlucywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCkgPT0gMik7CkBAIC0xMzUsMTcgKzEzNSwxNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1ha2VET01FeGNlcHRpb25Gb3JCdWlsdGlucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGlzUmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaXNSZWFkYWJsZUJ5dGVT
dHJlYW1BUElFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnJlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQoKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzV3JpdGFibGVTdHJlYW1BUElFbmFibGVkKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpc1dy
aXRhYmxlU3RyZWFtQVBJRW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53cml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdoZW5TaWduYWxBYm9ydGVkKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHdoZW5TaWduYWxBYm9ydGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJhbWUpOwog
ICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaAppbmRleCA5ZTFiNWMwMDhmNDRmOWFhMTIz
MWFiNThmZmI5NjI0OWM5NzM1YTg2Li5iMWQyN2Q0NWJjOTAyZWNlNTY1YTYzMjA4ZDg1NjcwYzE2
ODcxNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJh
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oCkBA
IC03Myw3ICs3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEpTV3JhcHBlciwgdHlwZW5hbWUgSXRl
cmF0b3JUcmFpdHM+IGNsYXNzIEpTRE9NSXRlcmF0b3JQcm90b3R5CiAgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG5leHQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CisgICAgc3RhdGljIEpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIG5leHQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiAKIHByaXZhdGU6CiAgICAgSlNET01JdGVyYXRvclBy
b3RvdHlwZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpIHsgfQpAQCAtMjQ2LDcgKzI0Niw3IEBAIEpTQzo6SlNWYWx1ZSBKU0RPTUl0
ZXJhdG9yQmFzZTxKU1dyYXBwZXIsIEl0ZXJhdG9yVHJhaXRzPjo6bmV4dChKU0M6OkpTR2xvYmFs
T2JqCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEpTV3JhcHBlciwgdHlwZW5hbWUgSXRlcmF0b3JU
cmFpdHM+Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNET01JdGVyYXRvclBy
b3RvdHlwZTxKU1dyYXBwZXIsIEl0ZXJhdG9yVHJhaXRzPjo6bmV4dChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU0RPTUl0ZXJhdG9yUHJvdG90eXBl
PEpTV3JhcHBlciwgSXRlcmF0b3JUcmFpdHM+OjpuZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBKU0M6OlZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUxl
Z2FjeUZhY3RvcnlGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01M
ZWdhY3lGYWN0b3J5RnVuY3Rpb24uaAppbmRleCBiYzk4ODY0MDdjOTA4YTJiY2UzYTYzNDMxMDc2
NzQwNjMwYzVhYzk1Li43ODMxYmYyODllZjY4NDU5ZTczZjJmMzk1MDM5MWU4YjM4YzFiOTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUxlZ2FjeUZhY3RvcnlG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTGVnYWN5RmFj
dG9yeUZ1bmN0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFz
cz4gY2xhc3MgSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSlNET00K
ICAgICAvLyBVc3VhbGx5IGRlZmluZWQgZm9yIGVhY2ggc3BlY2lhbGl6YXRpb24gY2xhc3MuCiAg
ICAgdm9pZCBpbml0aWFsaXplUHJvcGVydGllcyhKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3Qm
KSB7IH0KICAgICAvLyBNdXN0IGJlIGRlZmluZWQgZm9yIGVhY2ggc3BlY2lhbGl6YXRpb24gY2xh
c3MuCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CisgICAgc3RhdGljIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIGNvbnN0cnVjdChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEpTQ2xhc3M+IGlubGluZSBKU0RPTUxlZ2FjeUZhY3RvcnlGdW5jdGlvbjxKU0NsYXNzPiog
SlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb248SlNDbGFzcz46OmNyZWF0ZShKU0M6OlZNJiB2bSwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAppbmRleCA3NWFiMjU5ZmZmZmNkOWFhNDY5Y2U4ZmFhMDM2MDJiMDE2YTI5ZmI3Li5jMDIxYTVj
Y2MwOGE2OWY1Y2Y5Y2IxYzA0YzM4ODRjZWFhYmEzYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02Myw4ICs2Myw4IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblNob3dNb2RhbERpYWxv
ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJ
bnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNlKTsKIAogdm9pZCBKU0RP
TVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQogCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9I
QU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktpdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdp
bmRvd1dlYktpdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01X
aW5kb3codm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKQEAgLTYzMyw3ICs2MzMsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU0RPTVdpbmRvdyogSURMT3BlcmF0aW9uPEpTRE9NV2luZG93
Pjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiB0b0pTRE9NV2luZG93KGxleGlj
YWxHbG9iYWxPYmplY3Qudm0oKSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpLnRvVGhpcygmbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpFQ01BTW9kZTo6c2xvcHB5KCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJh
c2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRh
dGFiYXNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNET01XaW5kb3c+OjpjYWxsPGpzRE9N
V2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZUJvZHk+KCpnbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJvcGVuRGF0YWJhc2UiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDIxMTQ4NzE3
YzM1MzgxODRlYmY5MTViYmQzNGE4YjJjMWRmNzdkOGMuLmY3YWJmNDI5NDMxM2E1M2QxOTkxZmYx
YTAzMTJhNzc5ZjJiYmRhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMzUsNiArMzUsOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBKYXZhU2NyaXB0IGFjY2VzcyB0byBwbHVnLWlu
LWV4cG9ydGVkIHByb3BlcnRpZXMgZm9yIEpTSFRNTEFwcGxldEVsZW1lbnQsIEpTSFRNTEVtYmVk
RWxlbWVudCBhbmQgSlNIVE1MT2JqZWN0RWxlbWVudC4KIAorc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY2FsbFBsdWdpbik7CisKIEluc3RhbmNlKiBwbHVnaW5JbnN0YW5jZShIVE1M
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4g
b3duaW5nIHJlZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KQEAgLTE0Niw3ICsxNDgsNyBA
QCBib29sIHBsdWdpbkVsZW1lbnRDdXN0b21QdXQoSlNIVE1MRWxlbWVudCogZWxlbWVudCwgSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUGx1Z2luKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsUGx1Z2luLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU0hUTUxFbGVtZW50KiBlbGVtZW50
ID0ganNDYXN0PEpTSFRNTEVsZW1lbnQqPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmNwcAppbmRleCA5ODVi
M2RiMGQzZjE2MTAwMGYxZmFkOWI0MzI5NzhlNTQ2MjNhZDYzLi45NDg1NTljZDM5N2MwYTEyMDlk
NGUxNjljMzAwNWNjZTAyNDMwOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1N0cnVjdHVyZWRDbG9uZS5jcHAKQEAgLTYyLDE3ICs2MiwxNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY2xvbmVBcnJheUJ1ZmZlckltcGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5QnVmZmVyOjpjcmVhdGUo
bGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKSwgbGV4aWNhbEdsb2JhbE9iamVjdC0+YXJyYXlCdWZm
ZXJTdHJ1Y3R1cmUoQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCksIEFycmF5QnVmZmVy
Ojp0cnlDcmVhdGUoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNsb25lQXJyYXlCdWZmZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2xvbmVBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY2xvbmVBcnJheUJ1ZmZl
ckltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIENsb25lTW9kZTo6UGFydGlhbCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIGNsb25lQXJyYXlCdWZmZXJJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBDbG9uZU1v
ZGU6OkZ1bGwpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cnVjdHVyZWRD
bG9uZUFycmF5QnVmZmVyVmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJ1Y3R1cmVkQ2xvbmVB
cnJheUJ1ZmZlclZpZXcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CiAgICAgQVNTRVJUKGNhbGxG
cmFtZS0+YXJndW1lbnRDb3VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3Ry
dWN0dXJlZENsb25lLmgKaW5kZXggZDAwMzY3MzYzMjM0YzljYTAzNmI5MDE2OWNmNjljOTQxOWY2
MWQ4Mi4uNzY3MTFiMDE0Nzk1YjNiMmU1NDhkYmUyYzkyZDkyMDJkNjVhNmEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmgKQEAgLTM0LDggKzM0LDgg
QEAgdXNpbmcgRW5jb2RlZEpTVmFsdWUgPSBpbnQ2NF90OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjbG9uZUFycmF5QnVmZmVyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyVmlldyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2xvbmVBcnJheUJ1
ZmZlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cnVjdHVyZWRDbG9uZUFycmF5QnVm
ZmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RydWN0dXJlZENsb25lQXJyYXlCdWZm
ZXJWaWV3KTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBiMTE3NGI4OWMxYmIx
ZjcxOTIzOWNiNTNmZGM2ZGI2MTU0NDc1Y2VhLi5lNzQyY2VhZjJmOGNjMzllNjhiMTgyMzM1N2I1
ZjVjM2Y4NWUyNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzI1NCw3ICszMjU0LDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29uZGl0aW9uYWxBdHRy
aWJ1dGUgPyAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRy
aWJ1dGVWYWx1ZSgkY29uZGl0aW9uYWxBdHRyaWJ1dGUpIDogdW5kZWY7CiAgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gR2V0RnVuY3Rp
b25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRvcGVyYXRpb24pOwotICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAk
e2Z1bmN0aW9uTmFtZX0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgfQogCkBA
IC0zMjcwLDEwICszMjcwLDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkg
JGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxT
dHJpbmcoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lm
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAg
ICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJK
U0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7Z2V0
dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke3NldHRlcn0o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIH0KQEAgLTQy
NjIsNyArNDI2Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBt
eSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29uZGl0aW9uYWxBdHRyaWJ1dGUgPyAkY29kZUdlbmVy
YXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVWYWx1ZSgkY29uZGl0
aW9uYWxBdHRyaWJ1dGUpIDogdW5kZWY7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAg
ICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlLCAk
Y2xhc3NOYW1lLCAkb3BlcmF0aW9uKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSk7
XG4iKTsKICAgICAgICAgICAgIGlmICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntE
T01KSVR9KSB7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NSklUSURMVHlwZS5o
In0gPSAxOwogICAgICAgICAgICAgICAgIG15ICRuYW1lT2ZGdW5jdGlvbldpdGhvdXRUeXBlQ2hl
Y2sgPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1lKSAuICJXaXRob3V0
VHlwZUNoZWNrIjsKQEAgLTQyODYsMTAgKzQyODYsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KIAogICAgICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JHZXR0ZXIgPSAianMiIC4gJGludGVyZmFj
ZU5hbWUgLiAiQ29uc3RydWN0b3IiOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJK
U0M6OkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JHZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICR7Y29uc3RydWN0b3JHZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKIAogICAgICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yU2V0dGVyID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NvbnN0cnVjdG9yU2V0
dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBK
SVRfT1BFUkFUSU9OICR7Y29uc3RydWN0b3JTZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAgICAgICB9
CiAKICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0
ZXN9KSB7CkBAIC00Mjk5LDcgKzQyOTksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICR7Z2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0
dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkcmVhZFdyaXRlQ29uZGl0aW9uYWwgPSAk
YXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbGx5UmVhZFdyaXRlfTsK
ICAgICAgICAgICAgICAgICBpZiAoJHJlYWRXcml0ZUNvbmRpdGlvbmFsKSB7CkBAIC00MzA3LDcg
KzQzMDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke3JlYWRXcml0ZUNvbmRpdGlvbmFsU3RyaW5nfVxu
Iik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRB
dHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpJVF9PUEVS
QVRJT04gJHtzZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiI2VuZGlmXG4iKSBpZiAkcmVhZFdyaXRlQ29uZGl0aW9uYWw7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOwpAQCAtNDg3MCw3ICs0ODcwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CiAg
ICAgICAgIG15ICRjb25zdHJ1Y3RvckdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJD
b25zdHJ1Y3RvciI7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1
ZSAke2NvbnN0cnVjdG9yR2V0dGVyfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7Y29uc3Ry
dWN0b3JHZXR0ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpO1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
O1xuIik7CkBAIC00ODkwLDcgKzQ4OTAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgIG15ICRjb25zdHJ1Y3RvclNldHRlciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFt
ZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7
Y29uc3RydWN0b3JTZXR0ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke2NvbnN0
cnVjdG9yU2V0dGVyfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTtcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTtcbiIpOwpAQCAtNTMzOCw3ICs1MzM4LDcgQEAgc3ViIEdlbmVyYXRl
QXR0cmlidXRlR2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24KICAgICAgICAgcHVzaChAdGVtcGxh
dGVQYXJhbWV0ZXJzLCAiQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydCIpOwogICAgIH0K
ICAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSAke2F0dHJpYnV0
ZUdldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHthdHRyaWJ1dGVHZXR0ZXJOYW1l
fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4i
KTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIElETEF0dHJpYnV0ZTwke2Ns
YXNzTmFtZX0+Ojoke2NhbGxBdHRyaWJ1dGVHZXR0ZXJOYW1lfTwiIC4gam9pbigiLCAiLCBAdGVt
cGxhdGVQYXJhbWV0ZXJzKSAuICI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIFwi
IiAuICRhdHRyaWJ1dGUtPm5hbWUgLiAgIlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIn1cblxuIik7CkBAIC01NTI3LDcgKzU1MjcsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVT
ZXR0ZXJUcmFtcG9saW5lRGVmaW5pdGlvbgogICAgIHB1c2goQHRlbXBsYXRlUGFyYW1ldGVycywg
JGF0dHJpYnV0ZVNldHRlckJvZHlOYW1lKTsKICAgICBwdXNoKEB0ZW1wbGF0ZVBhcmFtZXRlcnMs
ICJDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHkiKSBpZiAkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lMZW5pZW50VGhpc307CiAgICAgCi0gICAgcHVzaChA
JG91dHB1dEFycmF5LCAiYm9vbCAke2F0dHJpYnV0ZVNldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wg
SklUX09QRVJBVElPTiAke2F0dHJpYnV0ZVNldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSlcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSURMQXR0cmlidXRlPCR7Y2xhc3NOYW1l
fT46OiR7Y2FsbEF0dHJpYnV0ZVNldHRlck5hbWV9PCIgLiBqb2luKCIsICIsIEB0ZW1wbGF0ZVBh
cmFtZXRlcnMpIC4gIj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCBcIiIgLiAkYXR0cmlidXRlLT5uYW1lIC4gIlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIn1cblxuIik7CkBAIC01NTc4LDcgKzU1NzgsNyBAQCBzdWIgR2VuZXJhdGVPcGVy
YXRpb25UcmFtcG9saW5lRGVmaW5pdGlvbgogICAgIHB1c2goQGNhbGxGdW5jdGlvblRlbXBsYXRl
QXJndW1lbnRzLCAkZnVuY3Rpb25Cb2R5TmFtZSk7CiAgICAgcHVzaChAY2FsbEZ1bmN0aW9uVGVt
cGxhdGVBcmd1bWVudHMsICJDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0IikgaWYgKCRv
cGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSBhbmQgbm90
ICRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lkZW50aWZpZXJ9KTsKIAot
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtm
dW5jdGlvbk5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTigke2Z1bmN0aW9uTmFtZX0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKVxuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke2lk
bE9wZXJhdGlvblR5cGV9PCR7Y2xhc3NOYW1lfT46OiR7Y2FsbEZ1bmN0aW9uTmFtZX08IiAuIGpv
aW4oIiwgIiwgQGNhbGxGdW5jdGlvblRlbXBsYXRlQXJndW1lbnRzKSAuICI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCBcIiIgLiAkb3BlcmF0aW9uLT5uYW1lIC4gIlwiKTtcbiIp
OwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CkBAIC01ODc5LDcgKzU4NzksNyBA
QCBzdWIgR2VuZXJhdGVEZWZhdWx0VG9KU09OT3BlcmF0aW9uRGVmaW5pdGlvbgogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIlxuIik7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWU7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpXG4iKTsK
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKUyR7aW50ZXJmYWNlTmFtZX0+OjpjYWxsPCR7ZnVu
Y3Rpb25OYW1lfUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCBcInRvSlNP
TlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cbiIpOwpAQCAtNTkyNyw3ICs1
OTI3LDcgQEAgc3ViIEdlbmVyYXRlTGVnYWN5Q2FsbGVyRGVmaW5pdGlvbnMKIAogICAgICAgICBt
eSAkb3ZlcmxvYWRGdW5jdGlvblByZWZpeCA9ICJjYWxsJHtjbGFzc05hbWV9IjsKIAotICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7b3Zl
cmxvYWRGdW5jdGlvblByZWZpeH0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTigke292ZXJsb2FkRnVuY3Rpb25QcmVmaXh9LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSlc
biIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7XG4i
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pO1xuIik7CkBAIC01OTU4LDcgKzU5NTgsOCBAQCBzdWIgR2Vu
ZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0aW9uCiAgICAgaWYgKCRpc092ZXJsb2FkZWQpIHsKICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAic3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBj
YWxsJHtjbGFzc05hbWV9JG9wZXJhdGlvbi0+e292ZXJsb2FkSW5kZXh9KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIpOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGwke2NsYXNzTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgInN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGwke2NsYXNz
TmFtZX0pO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsJHtjbGFzc05hbWV9LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSlcbiIpOwogICAgIH0KIAogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIntcbiIpOwpAQCAtNjg2Niw2ICs2ODY3LDcgQEAgc3ViIEdlbmVyYXRl
SXRlcmFibGVEZWZpbml0aW9uCiB9OwogCiB1c2luZyAke2l0ZXJhdG9yUHJvdG90eXBlTmFtZX0g
PSBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPCR7Y2xhc3NOYW1lfSwgJHtpdGVyYXRvclRyYWl0c05h
bWV9PjsKK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKCR7aXRlcmF0b3JQcm90b3R5cGVOYW1l
fU5leHQsICR7aXRlcmF0b3JQcm90b3R5cGVOYW1lfTo6bmV4dCk7CiAKIHRlbXBsYXRlPD4KIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvICR7aXRlcmF0b3JOYW1lfUJhc2U6OnNfaW5mbyA9IHsgIiR7dmlz
aWJsZUludGVyZmFjZU5hbWV9IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2l0ZXJhdG9yTmFtZX1CYXNlKSB9OwpAQCAtNjkw
Niw3ICs2OTA4LDcgQEAgRU5ECiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIDw8RU5EKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9u
TmFtZX0oSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTigke2Z1bmN0aW9uTmFt
ZX0sIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPCR7Y2xhc3NOYW1l
fT46OmNhbGw8JHtmdW5jdGlvbk5hbWV9Q2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIiR7cHJvcGVydHlOYW1lfSIpOwogfQpAQCAtNzY5OCw3ICs3NzAwLDcgQEAgc3Vi
IEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucwogCiAgICAgICAgICAgICBteSAkb3Zlcmxv
YWRGdW5jdGlvblByZWZpeCA9ICJjb25zdHJ1Y3Qke2NsYXNzTmFtZX0iOwogCi0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgInRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTExfQVRUUklCVVRFUyAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pO1xuIik7CkBAIC03NzA2LDcgKzc3MDgsOCBAQCBz
dWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb25zCiAKICAgICAgICAgICAgIEdlbmVyYXRl
T3ZlcmxvYWREaXNwYXRjaGVyKEB7JGludGVyZmFjZS0+Y29uc3RydWN0b3JzfVswXSwgJGludGVy
ZmFjZSwgJG92ZXJsb2FkRnVuY3Rpb25QcmVmaXgsICIiLCAibGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lIik7CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIkpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKCR7Y2xhc3NOYW1lfUNv
bnN0cnVjdG9yQ29uc3RydWN0LCAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTtc
blxuIik7CiAgICAgICAgIH0gZWxzaWYgKEBjb25zdHJ1Y3RvcnMgPT0gMSkgewogICAgICAgICAg
ICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oJG91dHB1dEFycmF5LCAkY2xhc3NOYW1l
LCAkcHJvdG9DbGFzc05hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFtZSwgJGludGVyZmFjZSwgJGdl
bmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24sICRjb25zdHJ1Y3RvcnNbMF0pOwogICAgICAg
ICB9IGVsc2UgewpAQCAtNzcyOCwxNyArNzczMSwxOCBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24KIAogICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGludGVyZmFjZSkpIHsKICAg
ICAgICAgaWYgKEhhc0N1c3RvbUNvbnN0cnVjdG9yKCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ0ZW1wbGF0ZTw+IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInRlbXBsYXRlPD4gSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OmNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBB
U1NFUlQoY2FsbEZyYW1lKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiBjb25zdHJ1Y3Qke2NsYXNzTmFtZX0obGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7
CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX1Db25zdHJ1Y3QsICR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3Qp
O1xuXG4iKTsKICAgICAgICAgIH0gZWxzaWYgKCFIYXNDdXN0b21Db25zdHJ1Y3RvcigkaW50ZXJm
YWNlKSAmJiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xlZ2FjeUZhY3RvcnlG
dW5jdGlvbn0gfHwgJGdlbmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24pKSB7CiAgICAgICAg
ICAgICBteSAkaXNPdmVybG9hZGVkID0gJG9wZXJhdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskb3Bl
cmF0aW9uLT57b3ZlcmxvYWRzfX0gPiAxOwogICAgICAgICAgICAgaWYgKCRpc092ZXJsb2FkZWQp
IHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJzdGF0aWMgaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfSRvcGVyYXRpb24tPntvdmVybG9hZElu
ZGV4fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpXG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMX0FUVFJJQlVURVMgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmNvbnN0cnVjdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CkBAIC03NzgzLDcgKzc3ODcsMTEgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9u
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc2V0U3ViY2xhc3NTdHJ1Y3R1
cmVJZk5lZWRlZDwke2ltcGxUeXBlfT4obGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBh
c09iamVjdChqc1ZhbHVlKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7XG4iKTsKICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFs
dWUpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuIik7CisgICAgICAgICAgICBpZiAoISRp
c092ZXJsb2FkZWQpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0Nf
QU5OT1RBVEVfSE9TVF9GVU5DVElPTigke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfUNvbnN0cnVjdCwg
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmNvbnN0cnVjdCk7XG4iKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIlxuIik7CiAgICAgICAgIH0KICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRE9NV2luZG93LmNwcAppbmRleCA2N2E0YzY1MGE4NGE4ZDQ2MDk0MDViZjVmZGNkNWRhZjZk
YjViZjQwLi5iZWUzNjg1ODEyOWNiZDJjMDQwNjcwZmUwZDY4NjBmN2JjMzZjNjIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdp
bmRvdy5jcHAKQEAgLTUxLDIwICs1MSwyMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5k
b3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE9i
amVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
d0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9N
V2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU0RPTVdpbmRv
d0NvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNET01XaW5k
b3c+OwogCkBAIC0xNjYsNyArMTY2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNET01XaW5kb3cq
IElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGwKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTc2LDcg
KzE3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU0RPTVdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTRE9N
V2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xOTUsNyArMTk1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICByZXR1
cm4gSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93RXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKIH0KQEAgLTIwNyw3ICsy
MDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3RvclNldHRlcihKU0dsbwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKSwgc3RybGVuKCJFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3ciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd0V4
cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9N
V2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkV4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvdyIpOwogfQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JHZXR0ZXIoSlNH
CiAgICAgcmV0dXJuIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
RE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxq
c0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZSIpOwogfQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdp
bmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlIiksIHN0cmxlbigiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIik7CiB9CkBAIC0yNDEsNyAr
MjQxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2UKICAgICByZXR1cm4gSlNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RP
TVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpz
RE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dHJ1Y3RvclNlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2lu
ZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBAIC0y
NjQsNyArMjY0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4gSlNUZXN0
Tm9kZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0
aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0Tm9kZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdE5v
ZGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3ROb2RlIik7CiB9CkBAIC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5vZGUiKSwgc3RybGVu
KCJUZXN0Tm9kZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2lu
ZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5vZGUiKTsKIH0K
QEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0
T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiBK
U1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE9iamVj
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5k
b3dUZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0T2JqZWN0Iik7CiB9CkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXgKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9i
amVjdCIpLCBzdHJsZW4oIlRlc3RPYmplY3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU0RP
TVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RPYmplY3QiKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JH
ZXR0ZXIoSlNHbAogICAgIHJldHVybiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+
OjpnZXQ8anNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50Iik7CiB9CkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0dGVyKEpTR2wK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudCIpLCBzdHJsZW4oIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBmYWQzZDI3ZmZlZmJhMDFj
YTY0MTlmMjMwNDAwYmIxZTQ3MTA1MjQ2Li5mMjI0MDRmOTNkNjYzOTRkNmFiYjBjODVjZmJmZDY3
N2E1ODMzMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1
c2luZyBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPjsKIApA
QCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6
Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIGdl
dERPTUNvbnN0cnVjdG9yPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcj4o
dm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE2LDcgKzExNiw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
c2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3Jr
ZXJBbmRXaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcAppbmRleCAwYjgzZmI2NTNlODk0ZGNjNWIx
YWRjZjdhOTU5MWM0N2QyZjAwODczLi41ODlmNmMwMDg3MGYyYzVjYTE1ZjkzMzAwYTgxYmVkZjBi
MTg5YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAKQEAg
LTg3LDEyICs4NywxMiBAQCBKU0M6OkpTT2JqZWN0KiBjb252ZXJ0RGljdGlvbmFyeVRvSlMoSlND
OjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSgogCiAvLyBGdW5jdGlvbnMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKTsKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTI4LDcgKzEyOCw3IEBAIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90
eXBlLCBKU0V4cG9zCiAKIHVzaW5nIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yPEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93PjsKIAotdGVt
cGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0
cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xNDMsNiArMTQzLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3I6OmMKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpW
TSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yMTgs
NyArMjE5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cq
IElETE9wZXJhdGlvbjxKU0V4cG9zZWRUb1dvcmtlckFuZFcKICAgICByZXR1cm4ganNEeW5hbWlj
Q2FzdDxKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIyOCw3ICsyMjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjUxLDcgKzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9u
RG9TCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETERpY3Rpb25hcnk8RXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpEaWN0Pj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5kb1NvbWV0
aGluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlv
bkRvU29tZXRoaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Pjo6Y2FsbDxqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uRG9Tb21ldGhpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImRvU29tZXRoaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCmluZGV4IDNjYzczODA3ZDIyMWJkYjNmNTU4
NGI3ODI3YWQ5YzAxYmM4YjYwYmYuLjE3YWMwMGM3ODJiM2M4MzZmNjU5ZTgwZDkyY2YxZWQ3ZTU1
MTUxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU01hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU01hcExpa2UuY3BwCkBAIC01MCwxNSArNTAsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0
dHJpYnV0ZXMKIApAQCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHkoSlNDOjpKU0dsb2JhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZEdldFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldCIpOwog
fQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0dsb2JhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMjcx
LDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJp
ZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U01hcExpa2U+OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMjg1LDcg
KzI4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNUb01h
cExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5j
dGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+Ojpj
YWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVl
c0JvZHkoSlNDOjpKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+OjpjYWxsPGpzTWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShK
U0M6OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46
OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CkBAIC0zNDAsNyArMzQwLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uU2V0Qm9keShKU0M6OkpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkU2V0VG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpLCBX
VEZNb3ZlKHZhbHVlKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNldCIpOwogfQpAQCAtMzU2LDcgKzM1
Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6OkpTR2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KQEAgLTM3
NSw3ICszNzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5KEpTQzo6SlNHbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxl
dGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
LCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU01hcExpa2U+OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVs
ZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA2MjVhZGJjMjc0
NWRhMzlmZTkzZmM4ZmRmMDA4OGY5NTI5YTY1Y2M5Li45OGI1MzY0ZmQyYmZiZTczNDU5YmYyY2Ji
YjU5NzAyZDc1ZDllMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU1BhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZTxKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlPjsKIApAQCAtMTA2LDcgKzEwNiw3IEBA
IEpTVmFsdWUgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZt
LCBjb25zdCBKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xMTYsNyArMTE2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNQYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmEKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCmluZGV4IDQ0NmJhMzkwN2Y3OWY5Yzk5
ODU0MmM4ODkxNzUyZGY5MjdhYWZkMGUuLjhmMGU0Zjk4OWNkOGM0Y2UwYmJlNmFlYjk3MjhkYjFm
YjU2NWQ1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcApAQCAtNTAsMTIgKzUwLDEyIEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0M6OkpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdl
dCk7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcyk7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDOjpKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pT
Qzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzKTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMKIApAQCAt
MjMyLDcgKzIzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keShKU0M6CiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEdl
dFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMs
IFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNSZWFkT25seU1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZ2V0Iik7CiB9CkBAIC0yNTEsNyArMjUxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5
KEpTQzoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFz
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBM
aWtlPjo6Y2FsbDxqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI2NSw3ICsyNjUs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9NYXBM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
ZW50cmllcyIpOwogfQpAQCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlND
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETEFueT4oZm9yd2FyZEtleXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzUmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25WYWx1ZXNCb2R5KEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVl
cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5
TWFwTGlrZT46OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0z
MTIsNyArMzEyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9u
bHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keSgKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9y
RWFjaFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRo
aXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seU1hcExpa2U+Ojpj
YWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlT
ZXRMaWtlLmNwcAppbmRleCBlYzQ0NGY1NmRmNTlmMmVmOWFiODI1YTY3MmM3MTY1NTk1MGQ3ZjQw
Li5mNWM5MTJmYjJlMmQ1YjAwZDVkMDliOTEzZmZmNTc1NGFkYTUwYTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRP
bmx5U2V0TGlrZS5jcHAKQEAgLTUwLDExICs1MCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTsKK0pTQzo6SlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7
CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seVNldExpa2VQcm90b3R5
cGVGdW5jdGlvbktleXMpOworSlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDOjpKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKIAog
Ly8gQXR0cmlidXRlcwogCkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KEpT
QzoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMQW55Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtl
Pjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI0NCw3ICsyNDQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9TZXRMaWtl
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzUmVhZE9ubHlTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50
cmllcyIpOwogfQpAQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZEtleXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXNCb2R5KEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0
TGlrZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0yOTEs
NyArMjkxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFj
aFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMs
IFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25seVNldExpa2U+OjpjYWxs
PGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA0NDRjNmEzZGNjOTRiMDA2OTEwYzM5MDdj
YjVjZTNkMGJkYWYyNDQzLi5iZjQyMjE2YjQxYWZiOGRlOGZlMTRjZWFiOGYzZGFhOGZkOTg3ZDIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQ0LDgg
KzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+OwogCkBAIC0xMDYsNyArMTA2LDcgQEAgSlNWYWx1
ZSBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25z
dCBKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMTYsNyArMTE2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1NldExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTU2V0TGlrZS5jcHAKaW5kZXggYWE2ZjA4ODIzYWZkMTlkN2YyYzQzZTY4OTU2MjhkMDU0
ODBiNGQxMC4uZWU3ZjhlZTlhNGNhM2FkYmUxNjliMDFhNzIyNGM4ZDVlNTM5YmQ1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlr
ZS5jcHAKQEAgLTUwLDE0ICs1MCwxNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5j
dGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25IYXMpOworSlNDOjpKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0M6OkpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsK
K0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlv
bkFkZCk7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25DbGVhcik7CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAgLTIzNiw3ICsy
MzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25IYXNCb2R5KEpTQzo6SlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb1NldExp
a2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3Zl
KGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Nl
dExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI1MCw3ICsyNTAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25FbnRyaWVzQm9keShKU0M6OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2Fs
bDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzQm9keShKU0M6OkpTR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9TZXRMaWtlKCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImtleXMiKTsKIH0KQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5KEpTQzo6SlNH
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExBbnk+KGZvcndhcmRWYWx1ZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVGdW5j
dGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVz
Iik7CiB9CkBAIC0yOTcsNyArMjk3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOjpKU0cKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55
Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZm9yRWFjaCIpOwogfQpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZEJvZHkoSlND
OjpKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZEFkZFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImFkZCIpOwogfQpAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6OkpTR2xv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiY2xlYXIiKTsKIH0KQEAgLTM1MSw3ICszNTEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5KEpT
Qzo6SlNHbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxldGVUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRl
bGV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpz
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAKaW5kZXggNmRmYzQyZmZkY2Y0ODQ0MzMxYWU5NWRiOTc0MTc5M2NjOWNkNzY2My4uNDQzNzI5
OGExODFhOGZmZGQ1ODFjZTk4YTZmNTA4Njc2MjQ5YmY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKQEAgLTUyLDkgKzUyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
Ly8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RB
Y3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2Fn
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0M6OkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJv
dG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdl
KTsKK0pTQzo6SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RBY3RpdmVET01PYmplY3RQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QpOwogCiAvLyBBdHRyaWJ1dGVzCiAKQEAg
LTI1Miw3ICsyNTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90
b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RBY3RpdmVET01PYmplY3RQ
cm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImV4Y2l0aW5nRnVuY3Rpb24iKTsKIH0KQEAgLTI3NCw3ICsyNzQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0
UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzcwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0
aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVz
c2FnZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q+OjpjYWxsPGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3Nh
Z2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBvc3RNZXNzYWdlIik7
CiB9CkBAIC0zMzMsNyArMzMzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWQKICAgICByZXR1
cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0
KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVjdD46
OmNhbGw8anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im92ZXJsb2FkZWRNZXRob2QiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCmluZGV4IDQ2
NzMzYTdkNWU3M2FhOGM3OGQyYWM5ZjQxZjc2MDZjNjg5ODlhMzEuLjY1MmYxZjVhN2Q5OWU1MjYw
YWQ3YTk0YTE2ZTA1ZDJlNGNhYzM2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcApAQCAt
NTIsMjUgKzUyLDI1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RD
RVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENF
UmVhY3Rpb25zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9u
c1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rp
b25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVk
ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyQXR0cmlidXRlTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rp
b25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxl
Y3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJl
YWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
RVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
QXR0cmlidXRlTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTE5Miw3ICsxOTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDRVJlYWN0aW9ucyogSURM
T3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zPjo6Y2FzdChKU0dsbwogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25zKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAy
LDcgKzIwMiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29s
IHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVy
KEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9ucygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0
aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIik7CiB9CkBA
IC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25z
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zU2V0dGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwogfQpAQCAtMjU1LDcgKzI1NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnNHZXR0ZXIoSlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGF0dHJpYnV0ZXdpdGhjZXJlYWN0aW9uc0F0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0
aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0
Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyIpOwogfQpAQCAtMjc0LDcgKzI3NCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0
aENFUmVhY3Rpb25zU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIik7CiB9CkBAIC0yODcs
NyArMjg3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwuc3RyaW5naWZpZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9
CkBAIC0zMTAsNyArMzEwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVh
Y3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmlu
Z2lmaWVyQXR0cmlidXRlIik7CiB9CkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
R2V0dGVyKEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9N
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9uc05vdE5lZWRlZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVh
Y3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
YXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkIik7CiB9CkBAIC0zNDIsNyArMzQyLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENF
UmVhY3Rpb25zTm90TmVlZGVkU2V0dGVyKEoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQpA
QCAtMzU1LDcgKzM1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9u
c1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRHCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0dHJpYnV0ZXdpdGhjZXJlYWN0aW9uc25vdG5lZWRl
ZEF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlv
bnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzc0
LDcgKzM3NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxl
Y3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VS
ZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0QXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkIik7CiB9CkBAIC0zODcsNyArMzg3LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1
dGVOb3ROZWVkZWRHZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGlt
cGwuc3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0
cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkIik7CiB9CkBAIC00MTAsNyArNDEwLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVO
b3ROZWVkZWRTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25z
Pjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0
cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkIik7CiB9CkBAIC00MjgsNyArNDI4LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQ0UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENFUmVhY3Rp
b25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Q0VSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFj
dGlvbnM+OjpjYWxsPGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Q0VSZWFjdGlvbnNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhDRVJlYWN0aW9ucyIpOwogfQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aENFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENF
UmVhY3Rpb25zTm90TmVlZGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dENFUmVhY3Rpb25zPjo6Y2FsbDxqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRleCBkZTE5NGQ0NTUzNTNk
Y2NkODk2YTg4MzUyNzc2NDA0NzczYTBjMWJlLi4zMDUxZjYxZWRkZGI1YTI0NmRkMWE5YmU2M2Ez
OTc2MGJmNzA1MWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXIuY3BwCkBAIC00OCwxNiArNDgsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVu
Y3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CiAKIGNsYXNzIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE3NCw3ICsxNzQsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyKiBJRExPcGVy
YXRpb248SlNUZXN0Q0VSZWFjdGlvbnNTdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTg0LDcgKzE4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUt
Pmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDUsNyArMjA1LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnZhbHVlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6Z2V0PGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInZhbHVlIik7CiB9CkBA
IC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJWYWx1ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidmFsdWUiKTsK
IH0KQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9uc0dldHRlcihKUwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudmFsdWVXaXRob3V0UmVhY3Rpb25zKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhv
dXRSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXI+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVl
V2l0aG91dFJlYWN0aW9uc0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIp
OwogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zU2V0dGVyKEpTCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVl
V2l0aG91dFJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91
dFJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6c2V0PHNldEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnNTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlV2l0aG91
dFJlYWN0aW9ucyIpOwogfQpAQCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rp
b25UCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwudmFsdWUoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
Zmllcj46OmNhbGw8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9u
VG9TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5n
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKaW5kZXggNDBjMzQzNzMwMjM0NzM3YTk3NmE3
Njg1MWMxODRlNjY4NjNkNTUzMC4uNGI2MTY5Mjg4Y2FmNmE4Yjg3MjAzMGY4ODQ5MGI5YjhjYWQw
MWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENhbGxUcmFjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcApAQCAtNTYsMjYgKzU2LDI2IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlv
bkludGVyZmFjZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVu
Y3Rpb25UZXN0T3BlcmF0aW9uU3BlY2lmaWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25X
aXRoTnVsbGFibGVBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVudChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0
aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFj
ZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1l
bnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9w
ZXJhdGlvblNwZWNpZmllZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhWYXJp
YW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RP
cGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZh
cmlhbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFy
aWFudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0UmVh
ZG9ubHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRl
cmZhY2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENh
bGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRl
V2l0aFZhcmlhbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAK
IGNsYXNzIEpTVGVzdENhbGxUcmFjZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIxMiw3ICsyMTIsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RDYWxsVHJhY2VyKiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNh
c3QoSlNHbG9iYQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNl
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjIyLDcgKzIyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENhbGxUcmFjZXI6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1
dGVJbnRlcmZhY2VHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0
dHJpYnV0ZUludGVyZmFjZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmli
dXRlSW50ZXJmYWNlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZUludGVyZmFjZSIpOwog
fQpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJh
Y2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZVNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZh
Y2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENh
bGxUcmFjZXI+OjpzZXQ8c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2VT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRl
c3RBdHRyaWJ1dGVJbnRlcmZhY2UiKTsKIH0KQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRHZXR0ZXIo
SlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRy
aWJ1dGVTcGVjaWZpZWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxs
VHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZVNwZWNpZmllZCIpOwogfQpAQCAtMzAwLDcgKzMwMCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNw
ZWNpZmllZFNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpzZXQ8c2V0
SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVTcGVjaWZp
ZWQiKTsKIH0KQEAgLTMxNSw3ICszMTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudEdldHRlcihKU0dsb2JhbE9iagogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbmlvbjxJRExCb29sZWFu
LCBJRExGbG9hdCwgSURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVzdEF0dHJpYnV0ZVdpdGhWYXJp
YW50KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmli
dXRlV2l0aFZhcmlhbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+
OjpnZXQ8anNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudEdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCIpOwogfQpAQCAtMzM1LDcgKzMzNSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhW
YXJpYW50U2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNl
dEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnRTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVXaXRo
VmFyaWFudCIpOwogfQpAQCAtMzQ4LDcgKzM0OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudGVzdFJlYWRvbmx5QXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNU
ZXN0Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RS
ZWFkb25seUF0dHJpYnV0ZSIpOwogfQpAQCAtMzY3LDcgKzM2Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJmYWNl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxs
PGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2VC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25JbnRl
cmZhY2UiKTsKIH0KQEAgLTM4Niw3ICszODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvblNwZWNpZmllZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uU3BlY2lmaWVkQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uU3BlY2lmaWVkIik7CiB9
CkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25X
aXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50cywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJh
Y2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3VtZW50c0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHMi
KTsKIH0KQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJh
dGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJn
dW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46
OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhO
dWxsYWJsZUFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0
ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQiKTsKIH0KQEAgLTQ2NCw3ICs0NjQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3Rv
dHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5j
dGlvblRlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90
b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1
bWVudCIpOwogfQpAQCAtNDg4LDcgKzQ4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0
aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlv
blRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50
QXJndW1lbnQiKTsKIH0KQEAgLTUxMCw3ICs1MTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlv
bgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9u
VGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlv
bldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVu
Y3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFy
aWFudEFyZ3VtZW50Iik7CiB9CkBAIC01MzIsNyArNTMyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVy
YXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5j
dGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJh
dGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVG
dW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudEJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFy
aWFudEFyZ3VtZW50Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpT
QnVpbHRpbkNvbnN0cnVjdG9yLmNwcAppbmRleCBiYjQzYjVlMjg3OTI3Zjk2ZmZjNWExMmE5ZTBl
OGIyNTE0NDBkM2MyLi4zOTRlOWE1NWNlN2Y5ZmRkYjkwMzEyYTI3ZjJhOTQ4MTg4NTVjYzIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTU1LDcgKzE1NSw3IEBAIHZvaWQgSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3I6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09i
amVjdC0+SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6On5KU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NSw3ICsxNjUsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDbGFzc1dp
dGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwCmluZGV4IDI2ZTJjMzg5NWYxYTVl
NmYyNDJiYzMzNWM5NGQ5MjcwMWQzOTIwYTQuLjliNDUxYjE2YWUzOWJmZDM2Zjk3YTQ3ZmYxNmE3
NGIwY2NjNDUxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAK
QEAgLTYzLDQ5ICs2Myw0OSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogLy8gRnVuY3Rpb25zCiAK
ICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0
aW9uKTsKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRp
b24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNv
bXBsZXhPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5
cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENv
bmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9u
KTsKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTEpICYmIEVOQUJMRShDb25kaXRpb24x
MikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90
b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRp
b24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlv
bjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0
dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKTsK
ICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikp
IHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZp
ZWxkT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIChFTkFCTEUo
Q29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikgJiYgRU5BQkxFKENvbmRpdGlvbjMz
KSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhp
bk9wZXJhdGlvbkZyb21QYXJ0aWFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCk7CiAjZW5k
aWYKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzVGVzdEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNUZXN0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRp
b24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGlu
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9t
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNN
aXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c01peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4
aW5BdHRyaWJ1dGVGcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAKIGNsYXNzIEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKQEAgLTQ5MCw3ICs0OTAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzKiBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdQogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMqPihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTAwLDcgKzUwMCw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MjEsNyArNTIxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyIik7
CiB9CkBAIC01MzUsNyArNTM1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlR2V0dGVyKEpTR2wKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluUmVhZE9ubHlBdHRyaWJ1dGUoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9u
bHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5SZWFkT25seUF0dHJpYnV0ZSIpOwogfQpA
QCAtNTUxLDcgKzU1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5taXhpbkF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbkF0dHJp
YnV0ZSIpOwogfQpAQCAtNTcyLDcgKzU3Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01ODYsNyArNTg2LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1
c3RvbUF0dHJpYnV0ZUdldHRlcihKU0dsb2IKICAgICByZXR1cm4gdGhpc09iamVjdC5taXhpbkN1
c3RvbUF0dHJpYnV0ZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
bWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKIH0KQEAgLTYwMSw3ICs2MDEsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRl
U2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+
OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJtaXhp
bkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjE3LDcgKzYxNyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlR2V0dGVy
KEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETElu
dGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Ob2RlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+Ojpn
ZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjM4LDcgKzYzOCw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmli
dXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
Pjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGlu
Tm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjU0LDcgKzY1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBh
cnRpYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJs
ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wYXJ0aWFsTWl4aW5BdHRy
aWJ1dGVGcm9tUGFydGlhbCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46
OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBh
cnRpYWxHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIp
OwogfQpAQCAtNjc0LDcgKzY3NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25N
aXhpbk9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluT3BlcmF0aW9uIik7CiB9CkBA
IC03MDMsNyArNzAzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGkKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRl
c3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQ29tcGxleE9wZXJhdGlvbigqY29udGV4dCwgV1RGTW92
ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhP
cGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluQ29tcGxleE9w
ZXJhdGlvbiIpOwogfQpAQCAtNzIwLDcgKzcyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhp
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2Fz
dGVkVGhpcy0+bWl4aW5DdXN0b21PcGVyYXRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5DdXN0b21PcGVyYXRpb24iKTsKIH0KQEAg
LTc0MCw3ICs3NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25k
aXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
Pjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNv
bmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJtaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uIik7CiB9CkBAIC03NjAsNyArNzYwLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbk1peGkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJh
dGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+Ojpj
YWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGlu
Z3NDb25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uIik7CiB9CkBAIC03NzksNyAr
Nzc5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNl
PE5vZGU+Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KSwgV1RGTW92ZShpbXBsUmVzdWx0Lm5vZGVzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhp
blJlc3VsdEZpZWxkT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1p
eGluUmVzdWx0RmllbGRPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1peGluUmVzdWx0RmllbGRPcGVyYXRpb24iKTsKIH0KQEAgLTc5OSw3ICs3OTksNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uUGFydAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJv
bVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+
OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxN
aXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJwYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwCmluZGV4IDVhODQ1MzIyZGM0ZDhj
YTNhMjk2MTYzNWYxODhhMzRjMDM0NjdjNzMuLjlkYTBjYzI2NDhmOGY2MzAwNjA1ZTE5OGYyNGRi
MDcyYzljOWJmYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZS5jcHAKQEAgLTU0LDM0ICs1NCwzNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogI2lmIEVOQUJMRShDT05ESVRJT04pCi1ib29sIHNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09ORElUSU9OMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
ICNpZiBFTkFCTEUoQ09ORElUSU9OKQotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0
aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgog
I2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVS
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21p
c2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0yNzQsNyArMjc0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZSogSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHkKICAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg0LDcgKzI4NCw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDUsNyArMzA1
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTMyNCw3ICszMjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlIik7CiB9CkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWEKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgaW1wbC5jb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0
aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Y29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0z
NjIsNyArMzYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWEKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0
aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0zNzksNyAr
Mzc5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAt
Mzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlIik7CiB9CkBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJm
YWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGUiKTsKIH0KQEAgLTQyOCw3ICs0MjgsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CiB9CkBAIC00NDEsNyArNDQxLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwogfQpAQCAtNDU5LDcgKzQ1OSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5m
b3JnZWFibGVQcml2YXRlIik7CiB9CkBAIC00NzIsNyArNDcyLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJv
bWlzZTxJRExEb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVByb21pc2UoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlz
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlUHJvbWlzZSIpOwogfQpAQCAtNDkwLDcgKzQ5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZSIpOwogfQpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2Rl
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5n
c0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTIxLDcgKzUyMSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTM0
LDcgKzUzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdz
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsK
IH0KQEAgLTU1Miw3ICs1NTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5n
c0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZSIpOwogfQpAQCAtNTY1LDcgKzU2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdy
aXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFj
ZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
VW5mb3JnZWFibGVQcml2YXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVV
bmZvcmdlYWJsZVByaXZhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZUdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwogfQpAQCAtNTgzLDcgKzU4Myw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdz
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZVByaXZhdGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSIpOwogfQpAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURM
RG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHJvbWlzZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQ
cm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
UHJvbWlzZSIpOwogfQpAQCAtNjE0LDcgKzYxNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVBy
b21pc2UiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKaW5kZXggNTk3Zjc2ZjRlMzgyMmZmYjk1OGI2OWI2
OGM3MTllZjIxNTJjMTk3Mi4uZDNmMWIzNTZmZmFmYjc4MTA4ZTQ2NjZjNzI3OThmYTIyZjI0ZTAy
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTU5LDU2ICs1OSw1NiBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZSk7CiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1
dGVXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBE
T01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETERPTVN0cmluZz4pOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtKTsKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1XaXRo
b3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6
OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+LCBET01KSVQ6OklETEpTQXJndW1l
bnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGUpOwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0
cmlidXRlV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklU
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25HZXRFbGVtZW50QnlJZCk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZFdpdGhvdXRUeXBl
Q2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNB
cmd1bWVudFR5cGU8SURMUmVxdWlyZXNFeGlzdGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0
cmluZz4+KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlO
YW1lV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwg
RE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJp
bmc+Pik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01K
SVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEFueUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0RE9NSklUT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERP
TUpJVFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNp
Z25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25n
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRGbG9hdEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERvdWJsZUF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RE9NSklUTm9kZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVE9jdGV0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxl
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxl
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRE
b3VibGVOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
VW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVROb2RlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQW55QXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJvb2xlYW5B
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
Qnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRPY3RldEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25n
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VFVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklURmxvYXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG91YmxlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJp
Y3RlZERvdWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVREb21TdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVc3ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTm9kZUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCb29sZWFuTnVs
bGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUQnl0ZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZFNo
b3J0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25nTnVs
bGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVk
RmxvYXROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRE
b21TdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTm9k
ZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBzdGF0aWMgY29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVy
ZSBET01KSVRTaWduYXR1cmVGb3JUZXN0RE9NSklUR2V0QXR0cmlidXRlKGpzVGVzdERPTUpJVFBy
b3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlV2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklU
OjppbmZvKCksIEpTQzo6RE9NSklUOjpFZmZlY3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5OjpET00pLCBET01KSVQ6OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMTnVsbGFi
bGU8SURMRE9NU3RyaW5nPj46OnZhbHVlLCBET01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJ
RExET01TdHJpbmc+Ojp2YWx1ZSk7CiAKQEAgLTYxNSw3ICs2MTUsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RET01KSVQqIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0KEpTR2xv
YmFsT2JqZWN0JgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdERPTUpJVCo+KEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNjI1LDcgKzYyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RET01KSVQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RE9NSklUQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02NDYsNyArNjQ2LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERPTUpJVEFueUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFueUF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQW55QXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEFueUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVEFueUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJhbnlBdHRyIik7CiB9CkBAIC02NTksNyArNjU5LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERPTUpJVEJvb2xlYW5BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9v
bGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ib29sZWFuQXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFuQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJv
b2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCb29sZWFuQXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJvb2xlYW5BdHRyIik7CiB9CkBAIC02NzIsNyAr
NjcyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMQnl0ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5ieXRlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRC
eXRlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERPTUpJVEJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlQXR0ckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVBdHRyIik7CiB9CkBAIC02
ODUsNyArNjg1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0QXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMT2N0ZXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwub2N0ZXRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVE9jdGV0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUT2N0
ZXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib2N0ZXRBdHRy
Iik7CiB9CkBAIC02OTgsNyArNjk4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERP
TUpJVFNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2hvcnQ+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc2hvcnRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFNob3J0QXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNU
ZXN0RE9NSklUU2hvcnRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAic2hvcnRBdHRyIik7CiB9CkBAIC03MTEsNyArNzExLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWdu
ZWRTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZFNo
b3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZFNo
b3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNp
Z25lZFNob3J0QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVu
c2lnbmVkU2hvcnRBdHRyIik7CiB9CkBAIC03MjQsNyArNzI0LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERPTUpJVExvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9u
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5sb25nQXR0cigpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJ
VD46OmdldDxqc1Rlc3RET01KSVRMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImxvbmdBdHRyIik7CiB9CkBAIC03MzcsNyArNzM3LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMVW5zaWduZWRMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVu
c2lnbmVkTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5z
aWduZWRMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJ
VFVuc2lnbmVkTG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1bnNpZ25lZExvbmdBdHRyIik7CiB9CkBAIC03NTAsNyArNzUwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0xvbmdB
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0xvbmdBdHRyIik7CiB9CkBA
IC03NjMsNyArNzYzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2ln
bmVkTG9uZ0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25nQXR0cigpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VFVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdM
b25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVk
TG9uZ0xvbmdBdHRyIik7CiB9CkBAIC03NzYsNyArNzc2LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERPTUpJVEZsb2F0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRmxvYXQ+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmxvYXRBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0QXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEZsb2F0QXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklURmxvYXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZmxvYXRBdHRyIik7CiB9CkBAIC03ODksNyArNzg5LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwudW5yZXN0cmljdGVkRmxvYXRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
T01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5yZXN0cmljdGVkRmxvYXRBdHRyIik7CiB9
CkBAIC04MDIsNyArODAyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERv
dWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWwKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvdWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklURG91YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvdWJsZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJkb3VibGVBdHRyIik7CiB9CkBAIC04MTUsNyArODE1LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5yZXN0
cmljdGVkRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVz
dHJpY3RlZERvdWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
VW5yZXN0cmljdGVkRG91YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWREb3VibGVBdHRyIik7CiB9CkBAIC04
MjgsNyArODI4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cmlu
Z0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmRvbVN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklURG9tU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0
PGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJkb21TdHJpbmdBdHRyIik7CiB9CkBAIC04NDEsNyArODQxLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMQnl0ZVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5i
eXRlU3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRl
U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRl
U3RyaW5nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVT
dHJpbmdBdHRyIik7CiB9CkBAIC04NTQsNyArODU0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVzdlN0cmluZ0F0dHIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVz
dlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZTdHJpbmdBdHRyIik7CiB9CkBAIC04
NjcsNyArODY3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ub2Rl
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVROb2RlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VE5vZGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVROb2RlQXR0ckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVBdHRyIik7CiB9CkBAIC04ODAsNyArODgwLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQm9vbGVhbj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuYm9vbGVhbk51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQm9vbGVhbk51bGxh
YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0ckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJvb2xlYW5OdWxsYWJsZUF0dHIiKTsK
IH0KQEAgLTg5Myw3ICs4OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
Qnl0ZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExCeXRlPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlTnVsbGFibGVBdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRC
eXRlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZU51bGxhYmxlQXR0ciIp
OwogfQpAQCAtOTA2LDcgKzkwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01K
SVRPY3RldE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETE9jdGV0Pj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldE51bGxhYmxlQXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVE9jdGV0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRPY3RldE51bGxhYmxl
QXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0TnVsbGFi
bGVBdHRyIik7CiB9CkBAIC05MTksNyArOTE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURM
U2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0TnVsbGFi
bGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0TnVsbGFi
bGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFNob3J0
TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hv
cnROdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTkzMiw3ICs5MzIsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxs
YWJsZTxJRExVbnNpZ25lZFNob3J0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC51bnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0
TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVB
dHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRTaG9y
dE51bGxhYmxlQXR0ciIpOwogfQpAQCAtOTQ1LDcgKzk0NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxh
YmxlPElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdO
dWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ051
bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVExv
bmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJs
b25nTnVsbGFibGVBdHRyIik7CiB9CkBAIC05NTgsNyArOTU4LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVs
bGFibGU8SURMVW5zaWduZWRMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC51bnNpZ25lZExvbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVs
bGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHJH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdOdWxs
YWJsZUF0dHIiKTsKIH0KQEAgLTk3MSw3ICs5NzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJ
RExMb25nTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0xv
bmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9u
Z0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNU
ZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJsb25nTG9uZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtOTg0LDcgKzk4NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVs
bGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVuc2lnbmVkTG9uZ0xvbmc+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051
bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpz
VGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyIik7CiB9
CkBAIC05OTcsNyArOTk3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEZs
b2F0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRmxvYXQ+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZsb2F0TnVsbGFibGVBdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
RmxvYXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRy
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmxvYXROdWxsYWJsZUF0
dHIiKTsKIH0KQEAgLTEwMTAsNyArMTAxMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVu
cmVzdHJpY3RlZEZsb2F0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51
bnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3Rl
ZEZsb2F0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9h
dE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVu
cmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDIzLDcgKzEwMjMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExOdWxsYWJsZTxJRExEb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmRvdWJsZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9N
SklUPjo6Z2V0PGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvdWJsZU51bGxhYmxlQXR0ciIpOwogfQpAQCAtMTAz
Niw3ICsxMDM2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJp
Y3RlZERvdWJsZU51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5yZXN0cmljdGVkRG91Ymxl
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnJlc3RyaWN0ZWREb3Vi
bGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5y
ZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFi
bGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0
dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWRE
b3VibGVOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwNDksNyArMTA0OSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TE51bGxhYmxlPElETERPTVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuZG9tU3RyaW5nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
T01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG9tU3RyaW5nTnVsbGFibGVBdHRyIik7CiB9
CkBAIC0xMDYyLDcgKzEwNjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
Qnl0ZVN0cmluZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExCeXRlU3RyaW5n
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nTnVsbGFi
bGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdO
dWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RE
T01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtMTA3NSw3ICsxMDc1
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxl
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVVNWU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC51c3ZTdHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVXN2
U3RyaW5nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJs
ZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZTdHJpbmdO
dWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwODgsNyArMTA4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RET01KSVROb2RlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxh
YmxlPElETEludGVyZmFjZTxOb2RlPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm5vZGVOdWxsYWJsZUF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5v
ZGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHJHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJub2RlTnVsbGFibGVBdHRyIik7
CiB9CkBAIC0xMTA4LDcgKzExMDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVCb2R5KAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxs
YWJsZTxJRExET01TdHJpbmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5nZXRBdHRyaWJ1
dGUoV1RGTW92ZShuYW1lKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImdldEF0dHJpYnV0ZSIpOwogfQpAQCAtMTE0Nyw3ICsxMTQ3LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFByb3RvdHlw
ZUZ1bmN0aW9uSXRlbUJvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgaW1wbC5pdGVtKFdURk1vdmUoeCksIFdURk1vdmUoeSkpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25J
dGVtLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJpdGVtIik7CiB9CkBAIC0xMTgwLDcgKzExODAsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25I
YXNBdHRyaWJ1dGVCb2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLmhhc0F0dHJpYnV0ZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0
aW9uSGFzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFz
QXR0cmlidXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXNBdHRy
aWJ1dGUiKTsKIH0KQEAgLTEyMTQsNyArMTIxNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9k
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETEludGVyZmFjZTxFbGVtZW50Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSwgaW1wbC5nZXRFbGVtZW50QnlJZChXVEZNb3ZlKGVsZW1lbnRJZCkp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJnZXRFbGVtZW50QnlJZCIpOwogfQpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
R2V0RWxlbWVudHNCeU5hbWUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPE5vZGVMaXN0Pj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5nZXRFbGVtZW50c0J5TmFt
ZShXVEZNb3ZlKGVsZW1lbnROYW1lKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRF
bGVtZW50c0J5TmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01K
SVQ+OjpjYWxsPGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldEVsZW1lbnRzQnlOYW1l
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAKaW5kZXggZWM1MDlkYmRmZmE2ZjMy
ZGEwMzkzN2I2ZTIyMWJmZWYxNDk1M2NiZC4uNDM3NDY4MWFiNDQ3NGRmZTcyMDIyMjFkNWJjN2Yz
YzQxOGQ0NmRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OLmNwcApAQCAtNzAsNDUgKzcw
LDQ1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0
aW9uVG9KU09OKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25U
b0pTT04pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05D
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05Mb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkxv
bmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNpZiBFTkFC
TEUoVEVTVF9DT05ESVRJT05BTCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRv
SlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFs
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0
VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZv
dXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2l4
dGhUeXBlZGVmQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0
aFR5cGVkZWZBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRp
cmVjdGx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJ
bmRpcmVjdGx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFi
bGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0
VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdl
bGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05F
dmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RT
dHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05U
aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0
cmljdGVkRG91YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRo
TG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05T
aXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVu
dGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0
aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNP
Tk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3pl
bkFycmF5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVs
ZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdl
bGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGly
dGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNP
TlByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMjYxLDcgKzI2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERlZmF1bHRUb0pT
T04qIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Y2FzdChKCiAgICAgcmV0dXJu
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RGVmYXVsdFRvSlNPTio+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yNzEsNyArMjcxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNP
TkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERlZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5Miw3ICsyOTIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmxvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkxvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09O
Pjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
bG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2ln
bmVkU2hvcnQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5
U2V0dGluZ3NBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNl
dHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJs
ZWRCeVNldHRpbmdzQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5U2V0dGluZ3NB
dHRyaWJ1dGUiKTsKIH0KQEAgLTMxOSw3ICszMTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlR2V0dGVyKEpT
RwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExFbnVtZXJhdGlv
bjxUZXN0RGVmYXVsdFRvSlNPTkVudW0+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0
PGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlIik7CiB9CkBAIC0zMzIsNyAr
MzMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhh
bmRsZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gZXZlbnRIYW5kbGVy
QXR0cmlidXRlKHRoaXNPYmplY3Qud3JhcHBlZCgpLCBldmVudE5hbWVzKCkuZW50SGFuZGxlckF0
dHJpYnV0ZUV2ZW50LCB3b3JsZEZvckRPTU9iamVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVs
dFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImV2ZW50SGFuZGxl
ckF0dHJpYnV0ZSIpOwogfQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFs
T2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2
ZW50SGFuZGxlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pT
T05FdmVudEhhbmRsZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImV2ZW50SGFuZGxlckF0dHJpYnV0ZSIpOwogfQpAQCAtMzYw
LDcgKzM2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmly
c3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5maXJzdFN0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9K
U09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaXJzdFN0cmluZ0F0dHJp
YnV0ZSIpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3Ry
aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RT
dHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgImZpcnN0U3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0zOTEsNyArMzkxLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5zZWNvbmRMb25nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERl
ZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInNlY29uZExvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwOSw3
ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29u
ZExvbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09O
Pjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZWNvbmRMb25n
QXR0cmlidXRlIik7CiB9CkBAIC00MjIsNyArNDIyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNl
PFRlc3RFeGNlcHRpb24+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46
OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAidGhpcmRVbkpTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC00NDAsNyArNDQwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFi
bGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pT
T04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGhp
cmRVbkpTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC00NTMsNyArNDUzLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVB
dHRyaWJ1dGVHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMVW5yZXN0cmljdGVkRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9K
U09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUi
KTsKIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVm
YXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZVNldHRlcgogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0
ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJmb3VydGhVbnJl
c3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4NCw3ICs0ODQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExDbGFtcEFkYXB0b3I8SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRU
b0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVm
YXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWZ0
aExvbmdDbGFtcGVkQXR0cmlidXRlIik7CiB9CkBAIC01MDIsNyArNTAyLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRl
U2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZp
ZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxz
ZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZVNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmlmdGhMb25nQ2xh
bXBlZEF0dHJpYnV0ZSIpOwogfQpAQCAtNTE1LDcgKzUxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVyKEpTR2xv
YmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJs
ZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zaXh0aFR5cGVkZWZBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNpeHRo
VHlwZWRlZkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAic2l4dGhUeXBlZGVmQXR0cmlidXRlIik7CiB9CkBAIC01MzMsNyArNTMzLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZB
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0
VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZVNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2l4dGhUeXBlZGVm
QXR0cmlidXRlIik7CiB9CkBAIC01NDYsNyArNTQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0
dGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNl
PFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V2ZW50aERpcmVjdGx5
VG9KU09OYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05T
ZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0
RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJzZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC01NjQs
NyArNTY0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZl
bnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlU2V0dGUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9K
U09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V2ZW50aERpcmVjdGx5VG9KU09O
YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTc3LDcgKzU3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRlcihK
U0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVy
ZmFjZTxUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5laWdo
dGhJbmRpcmVjdGx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERl
ZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aElu
ZGlyZWN0bHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORWln
aHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVpZ2h0aEluZGlyZWN0bHlB
dHRyaWJ1dGUiKTsKIH0KQEAgLTU5NSw3ICs1OTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdo
dGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3Rs
eUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1
bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlaWdodGhJbmRpcmVjdGx5QXR0cmlidXRl
Iik7CiB9CkBAIC02MDgsNyArNjA4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERl
ZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXQKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJm
YWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm5pbnRoT3B0aW9u
YWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZh
dWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibmludGhPcHRpb25hbERpcmVjdGx5
VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjI2LDcgKzYyNiw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09O
YWJsZUF0dHJpYnV0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0
aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNP
TmFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExGcm96
ZW5BcnJheTxJRExCb29sZWFuPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5B
cnJheUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ0ZW50aEZyb3plbkFycmF5QXR0cmlidXRlIik7CiB9CkBAIC02NTcs
NyArNjU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50
aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJh
eUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAidGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSIpOwogfQpAQCAtNjcwLDcgKzY3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1
ZW5jZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETFNlcXVlbmNlPElETERPTVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmVsZXZlbnRo
U2VxdWVuY2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1
ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50
aFNlcXVlbmNlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZWxldmVudGhTZXF1ZW5jZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNjg4LDcgKzY4OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRo
U2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUiKTsK
IH0KQEAgLTcwMSw3ICs3MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZUdldHRlcgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudHdlbGZ0aEludGVyZmFj
ZVNlcXVlbmNlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1
bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVHdl
bGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVm
YXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSIpOwogfQpAQCAtNzE5LDcgKzcx
OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aElu
dGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlU2V0dGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2Vs
ZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNzMyLDcgKzczMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01T
dHJpbmcsIElETFVuc2lnbmVkU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50aGlydGVlbnRoUmVjb3JkQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05UaGlydGVl
bnRoUmVjb3JkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVm
YXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUiKTsKIH0KQEAg
LTc1MCw3ICs3NTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRo
UmVjb3JkQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJ0aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlIik7CiB9CkBAIC03ODcsNyAr
Nzg3LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09O
UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5KEpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVm
YXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTj46OmNhbGw8anNUZXN0
RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ0b0pTT04iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKaW5kZXggNjY0ZDcxZjFkM2Vj
OTg4MDY4YTk1N2I4YmMwNmM5YmRjZWRjOGMzZi4uNjI0M2FhZTY1ZmM1ODEzNzAyOTE0YzM3OGNm
YWIwYzczMGExMTkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKQEAgLTQ5LDE1ICs0OSwxNSBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90
b3R5cGVGdW5jdGlvblRvSlNPTik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBv
c2VkV2luZG93QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRX
b3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0xOTIsNyArMTkyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkKiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXUKICAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWROb3JtYWxBdHRyaWJ1dGVHZXR0ZXIoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
bm9ybWFsQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+Ojpn
ZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibm9ybWFsQXR0cmlidXRlIik7CiB9CkBAIC0yMzYsNyArMjM2LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZEZpbHRlcmVkQnlFeHBvc2VkV2luZG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2Vk
V2luZG93QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4
cG9zZWRXaW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Z2V0PGpz
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1
dGUiKTsKIH0KQEAgLTI0OSw3ICsyNDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJmaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSIpOwogfQpAQCAtMjcxLDcgKzI3MSw3
IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3RpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90
b3R5cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b0pTT04iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCmluZGV4IDRk
YzFkYzBkODFiMWI4OTZmYjA4YTI2YjVmNzg3MGFlNDVlMDFhYTIuLmZkZDY1MzUxYzcyMjQ1NTZk
Y2RjNDExZTEyZjczZGYyNzJiZTFlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcApAQCAtNDMsOCArNDMsOCBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xNDEsNyArMTQxLDcgQEAgSlNWYWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJl
Y3RJbmhlcml0YW5jZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0cKICAgICByZXR1
cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFu
Y2VDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVm
YXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCmluZGV4IDA2OTVhM2ExZTFh
YWU2ZTIwOTVlYjhiYzU1OGI3ZTBlYThlZGJlMzUuLjlmYzgwNGIxNjhmMzQ1YjFhNjQxMzQwMmE2
ZDg4OTk4ZmY4MzM0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
LmNwcApAQCAtNjYsMTQgKzY2LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0
aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTik7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdElu
aGVyaXRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODIsNyArMTgyLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQqIElETE9wZXJh
dGlvbjxKU1Rlc3REZWZhdWx0VG9KU09OSW4KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlR2V0dGVyKEpTR2xvCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaW5oZXJpdExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImluaGVyaXRMb25nQXR0cmlidXRlIik7CiB9CkBAIC0yMzEs
NyArMjMxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0SW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Pjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0SW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImluaGVyaXRMb25nQXR0cmlidXRlIik7CiB9CkBAIC0yNjks
NyArMjY5LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlv
blRvSlNPTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdD46OmNhbGw8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5j
dGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9KU09O
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5j
cHAKaW5kZXggZGQwMmM2ZWI1NDFjNjYwZTBmMGI2ZDE5ZWMzNzZmMmI0NzQ4YWY0ZS4uMTgxYTUy
MTJiNTcxMTgzY2M1Njk1MDdhNTc4NjcxNDJhMmI1YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNwcApAQCAtNjYsMTYgKzY2LDE2IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT04pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5h
bExvbmdBdHRyaWJ1dGVGb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJp
YnV0ZUJhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZv
byhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRy
aWJ1dGVCYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0xODUsNyArMTg1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbCogSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0oKICAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NSw3ICsxOTUsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjE2LDcgKzIxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vR2V0dGVyCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuZmluYWxMb25nQXR0cmlidXRlRm9vKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1
dGVGb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWw+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZp
bmFsTG9uZ0F0dHJpYnV0ZUZvb0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUZv
byIpOwogfQpAQCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vU2V0dGVyCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZp
bmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
Pjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1
dGVGb29TZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyIpOwogfQpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25n
QXR0cmlidXRlQmFyR2V0dGVyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmluYWxM
b25nQXR0cmlidXRlQmFyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpnZXQ8
anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUJhciIpOwogfQpAQCAtMjY1LDcgKzI2NSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
RmluYWxMb25nQXR0cmlidXRlQmFyU2V0dGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjo6c2V0PHNldEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUJh
ciIpOwogfQpAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlv
blRvSlNPTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpjYWxsPGpzVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9KU09OIik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2VjdXJp
dHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERv
bWFpblNlY3VyaXR5LmNwcAppbmRleCBiNWM1ODkzNjgyNzUxMmNiNmRiOGZkNDAyODQ4ZDMxZDhh
ZDEyMGU5Li4wZTNkOTM5M2E0OTFhMWZjMDQ3OGM4YThiMmYyNjgwYjE5NzlkYThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWlu
U2VjdXJpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAKQEAgLTUyLDE1ICs1MiwxNSBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rp
b25Qb3N0TWVzc2FnZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REb21haW5TZWN1cml0eVByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJp
dHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2Up
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlw
ZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REb21haW5T
ZWN1cml0eUV4Y2l0aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3REb21haW5TZWN1cml0eVBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERvbWFpblNlY3VyaXR5
KiBJRExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYXN0CiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RG9tYWluU2VjdXJpdHkqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMDEsNyArMjAxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJp
dHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERvbWFpblNlY3VyaXR5OjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNiw3ICsy
MjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGlu
Z0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmV4Y2l0aW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21h
aW5TZWN1cml0eUV4Y2l0aW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERvbWFpblNlY3Vy
aXR5Pjo6Z2V0PGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiZXhjaXRpbmdBdHRyIik7CiB9CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25F
eGNpdGluZ0YKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90
eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbiwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OmNhbGw8
anNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImV4Y2l0aW5nRnVuY3Rpb24iKTsK
IH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNz
YWdlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3Rv
dHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxsPGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25Qb3N0TWVzc2FnZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAicG9zdE1lc3NhZ2UiKTsKIH0KQEAgLTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERv
bWFpblNlY3VyaXR5Pjo6Y2FsbDxqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZy5jcHAKaW5kZXggMjU1OTQxY2NiZmJlZDQ0ZTU5NzcyZWVmNWE4ZmQwMWVhNjAx
NGEyYy4uNzNjNTY5MDk5YmNjZjA2YzQ1YzFlMDQ0MjI2ZjgyNjc0YjAyY2UyZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRC
eVNldHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcApAQCAtNTIsMjUgKzUyLDI1IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAvLyBGdW5jdGlvbnMKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1By
b3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlv
bik7CiAjZW5kaWYKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRp
bmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9i
akVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGlu
Z3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVu
YWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRh
bEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0yNjMsNyArMjYzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RW5h
YmxlZEJ5U2V0dGluZyogSURMT3BlcmF0aW9uPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjoKICAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3Myw3ICsyNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvCiAg
ICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJP
YmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAtMzA0LDcg
KzMwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVz
dFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIiksIHN0cmxlbigiVGVz
dFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmciKTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNH
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5U2V0dGluZ0F0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5n
RW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5n
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQnlTZXR0aW5nQXR0
cmlidXRlIik7CiB9CkBAIC0zMzksNyArMzM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlU2V0dGVyKEpTR2wK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNl
dHRpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEJ5U2V0dGlu
Z0F0dHJpYnV0ZSIpOwogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVHZXR0
ZXIoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbmFibGVkQnlUd29TZXR0
aW5nc0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxl
ZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJl
bmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQpAQCAtMzc2LDcgKzM3Niw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0
dGluZ3NBdHRyaWJ1dGVTZXR0ZXIoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5
VHdvU2V0dGluZ3NBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlIik7CiB9CkBA
IC0zOTEsNyArMzkxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNl
dHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRh
bDo6c3VwcGxlbWVudGFsQXR0cmlidXRlKGltcGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50
YWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwOSw3ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50
YWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUi
KTsKIH0KQEAgLTQzMiw3ICs0MzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5h
YmxlZEJ5U2V0dGluZ09wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
Pjo6Y2FsbDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlT
ZXR0aW5nT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJl
bmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JD
b250ZXh0LmNwcAppbmRleCAzZGViMDBjNGQ1MzBmMjUyOWZlNTJlZTk0ZWEzZmRiYWMwYThhZDRh
Li43MGM4MTI3MjI4N2U5YmMxN2RiM2UyMGE4NDk4NmNiZTNhMThjNGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHAKQEAgLTQ4LDEwICs0OCwxMCBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9y
Q29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRleHRU
ZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250
ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMTYyLDcgKzE2Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEVuYWJsZWRGb3JDb250
ZXh0KiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEZvckNvbnRleHQ+CiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RW5hYmxlZEZvckNvbnRleHQqPihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRl
eHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RW5hYmxlZEZvckNvbnRleHQ6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjCiAg
ICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dD46OmdldDxqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRl
c3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Iik7CiB9CkBA
IC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRGb3JD
b250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWMKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0IiksIHN0
cmxlbigiVGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRl
eHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dD46OnNldDxzZXRKU1Rl
c3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAppbmRleCAxNTA4ZDM1ZjBjZGNhNDY5YjljYzI5ZjdiZDIyYTliOTBmNjJhOGQ4
Li45YzhmODU1MWE3ZjY4NjhhMjUwZjU4MTVkYTFhZTQ0Njc2NDI3ZjE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC0xMjMsMTIgKzEyMywxMiBAQCB0ZW1wbGF0ZTw+
IFRlc3RFdmVudENvbnN0cnVjdG9yOjpJbml0IGNvbnZlcnREaWN0aW9uYXJ5PFRlc3RFdmVudENv
bnN0cnVjdG9yOjpJbgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEV2ZW50
Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RF
dmVudENvbnN0cnVjdG9yQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRy
MShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29u
c3RydWN0b3JBdHRyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lmIEVOQUJMRShTUEVDSUFMX0VWRU5UKQotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
ICNlbmRpZgogCiBjbGFzcyBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC0xNjUsNyArMTY1LDcgQEAgU1RBVElD
X0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3Rv
dHlwZSwgSlNUZXN0RXZlbnQKIAogdXNpbmcgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yID0gSlNET01Db25zdHJ1Y3RvcjxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPjsKIAotdGVtcGxh
dGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29u
c3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg4LDYgKzE4
OCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmNvbnN0CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9
CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3JDb25zdHJ1Y3QsIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3Ry
dWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjYyLDcgKzI2Myw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqIElETEF0dHJpYnV0ZTxKU1Rlc3RFdmVudENv
bnN0cnVjdG9yPjo6CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3Miw3ICsyNzMs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjkzLDcgKzI5NCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjFHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5h
dHRyMSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0
cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENv
bnN0cnVjdG9yQXR0cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyMSIpOwogfQpAQCAtMzA2LDcgKzMw
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5hdHRyMigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENv
bnN0cnVjdG9yQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxq
c1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyMiIpOwogfQpA
QCAtMzIwLDcgKzMyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyMygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1
Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJh
dHRyMyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggN2U2MTQ1NGZmNTlkZWU4
N2ZjOTZiMTk2MjA3ODA4NWQ1YzRmNzMxMy4uMDMyMTcyNDZkZGY2NTYxNWI0YTg5YmU3NjFlMmQ5
ZDkzMzExMmMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC01MCwxMiArNTAsMTIg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRl
bShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0pOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudFRhcmdldENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXZlbnRUYXJnZXRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMjYsNyAr
MjI2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXZlbnRUYXJnZXQqIElETE9wZXJhdGlv
bjxKU1Rlc3RFdmVudFRhcmdldD46OmNhc3QoSlNHbG8KICAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFdmVudFRhcmdldCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBj
YWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRh
cmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNiw3ICsyMzYs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHko
SlNDCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEludGVyZmFjZTxOb2RlPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSwgaW1wbC5pdGVtKFdURk1vdmUoaW5kZXgpKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0
aW9uSXRlbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RXZlbnRUYXJnZXRQcm90
b3R5cGVGdW5jdGlvbkl0ZW0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
RXZlbnRUYXJnZXQ+OjpjYWxsPGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVt
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpdGVtIik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhj
ZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwCmluZGV4IGUwN2I0ZWE1N2Q1ZDhjOGI3NDM2ZDRkYzA3MDNmZTE5ZmJh
YzdkYzcuLmI2MTAwMThjMjk0YjkxMjRmNTQ4YmM2MDRjMTNjMGY0MjYwNjRmNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwCkBAIC00Niw5ICs0Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFeGNlcHRpb25OYW1l
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CiAKIGNsYXNzIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIEpTVGVzdEV4Y2VwdGlvbiogSURMQXR0cmlidXRlPEpTVGVzdEV4Y2VwdGlv
bj46OmNhc3QoSlNHbG9iYWxPCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXhjZXB0
aW9uKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2OCw3ICsxNjgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXhjZXB0aW9u
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1l
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5uYW1lKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEV4Y2VwdGlvbk5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RFeGNlcHRpb25OYW1lKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV4Y2VwdGlvbj46OmdldDxqc1Rlc3RFeGNlcHRpb25O
YW1lR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibmFtZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUuY3BwCmluZGV4IDU2NGY2ZmRjZmQ2NWJhODBlMGE0MGNhNGIyMWQ4ZGE1NTBm
NDFkMWQuLmRiNWZkZDk4OTgzOWIzOTQzZDM3YmRmNTE1NzI2OTJjYTY1MDgxYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAog
Y2xhc3MgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTY4LDcgKzE2OCw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIElETEF0dHJpYnV0ZTxKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE3OCw3ICsxNzgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5hU2VjcmV0QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZT46OmdldDxqc1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFT
ZWNyZXRBdHRyaWJ1dGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKaW5kZXggYjQy
MDg2YTAxNWI1OTAwMjcyNDUzOTljYzVlZmUzNjUxMjA5ZDU5ZC4uYTE2NjQ3Mjc2YWIxZTU2MmM3
MTM2ZmFmYTdjODdkMGU1ZDhlMzhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKQEAg
LTEzNywxOTMgKzEzNywxOTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25z
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24pOwogI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9u
KTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKTsKICNlbmRp
ZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hl
blJ1bnRpbWVGZWF0dXJlRW5hYmxlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmpl
Y3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVy
ZXNFbmFibGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5h
YmxlZEluU3BlY2lmaWNXb3JsZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVG
ZWF0dXJlc0VuYWJsZWQpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRl
c3RQcml2YXRlRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25DYWxjdWxhdGVT
ZWNyZXRSZXN1bHQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VG
dW5jdGlvbkdldFNlY3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik7
CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNy
ZXRCb29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTsKICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQ
cml2YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5k
UHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJp
dmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxl
ZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlv
bnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFj
dGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxs
VHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RD
YWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShURVNUX0NPTkRJVElPTkFM
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2Fs
bGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1
ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklU
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2Nv
cmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlG
dW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uRGVy
aXZlZCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlv
bkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25k
aXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2Vu
ZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJl
YWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlD
b3N0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiB1c2luZyBKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0
b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEdsb2JhbE9iamVjdD47CiAKQEAgLTgyNyw3ICs4Mjcs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RHbG9iYWxPYmplY3QqIElETE9wZXJhdGlvbjxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpjYXN0KEpTRwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpT
VGVzdEdsb2JhbE9iamVjdCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxs
RnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODM3LDcgKzgzNyw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RHbG9iYWxPYmplY3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC04NTgsNyArODU4LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlZ3VsYXJBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWd1bGFyQXR0
cmlidXRlIik7CiB9CkBAIC04NzYsNyArODc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFy
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJy
ZWd1bGFyQXR0cmlidXRlIik7CiB9CkBAIC04ODksNyArODg5LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9N
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnB1YmxpY0FuZFBy
aXZhdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZh
dGVBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdWJs
aWNBbmRQcml2YXRlQXR0cmlidXRlIik7CiB9CkBAIC05MDcsNyArOTA3LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJs
aWNBbmRQcml2YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdWJsaWNBbmRQcml2YXRl
QXR0cmlidXRlIik7CiB9CkBAIC05MjEsNyArOTIxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdl
dHQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnB1YmxpY0FuZFByaXZhdGVD
b25kaXRpb25hbEF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQ
dWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVDb25kaXRp
b25hbEF0dHJpYnV0ZSIpOwogfQpAQCAtOTQyLDcgKzk0Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1
dGVTZXR0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQ
dWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25h
bEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAicHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlIik7CiB9CkBAIC05
NTgsNyArOTU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEVu
YWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9
CkBAIC05NzksNyArOTc5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CkBAIC05OTIsNyAr
OTkyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERPTVdpbmRv
d0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNET01XaW5kb3c6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJET01XaW5kb3ciKTsKIH0KQEAg
LTEwMDQsNyArMTAwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RET01XaW5kb3dDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkRPTVdpbmRvdyIpLCBzdHJsZW4oIkRPTVdpbmRvdyIp
KSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIkRPTVdpbmRvdyIpOwogfQpAQCAtMTAxNSw3ICsxMDE1LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JHZXQKICAgICByZXR1cm4gSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3REZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIik7CiB9
CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldAogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIp
LCBzdHJsZW4oIkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGUiKTsKIH0KQEAgLTEwMzgsNyArMTAzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVy
CiAgICAgcmV0dXJuIEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEds
b2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpOwogfQpAQCAtMTA1MCw3ICsxMDUwLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiKSwgc3RybGVuKCJQYWludFdvcmtsZXRHbG9i
YWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlBh
aW50V29ya2xldEdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpA
QCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiksIHN0
cmxlbigiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBA
IC0xMDg0LDcgKzEwODQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiBK
U1Rlc3RDRVJlYWN0aW9uczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0aW9ucyIpOwogfQpAQCAtMTA5Niw3ICsxMDk2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9u
c0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdENFUmVhY3Rpb25zIiksIHN0cmxlbigiVGVzdENFUmVhY3Rpb25zIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VS
ZWFjdGlvbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdENFUmVhY3Rpb25zIik7CiB9CkBAIC0xMTA3LDcgKzExMDcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldAogICAgIHJldHVybiBKU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXIiKTsKIH0KQEAgLTExMTksNyArMTExOSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0
cnVjdG9yU2V0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyIiksIHN0cmxlbigiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIpOwogfQpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gSlNUZXN0Q2FsbFRyYWNlcjo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDYWxsVHJh
Y2VyIik7CiB9CkBAIC0xMTQyLDcgKzExNDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbAog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2FsbFRyYWNlciIpLCBz
dHJsZW4oIlRlc3RDYWxsVHJhY2VyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdENhbGxUcmFjZXIi
KTsKIH0KQEAgLTExNTQsNyArMTE1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKCiAgICAg
cmV0dXJuIEpTVGVzdENhbGxiYWNrSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENhbGxi
YWNrSW50ZXJmYWNlIik7CiB9CkBAIC0xMTY5LDcgKzExNjksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JT
ZXR0ZXIoSgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2FsbGJh
Y2tJbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKTsKIH0K
QEAgLTExODIsNyArMTE4Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1CiAgICAgcmV0dXJu
IEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yIik7CiB9CkBAIC0xMTk0LDcgKzExOTQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3IiKTsKIH0KQEAgLTEyMDUsNyArMTIwNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yR2V0dGVy
CiAgICAgcmV0dXJuIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25h
bEluY2x1ZGVzQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIpOwogfQpAQCAtMTIxNyw3ICsxMjE3LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbElu
Y2x1ZGVzQ29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKSwgc3RybGVuKCJUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlcyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RD
b25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25k
aXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RDb25kaXRpb25hbEluY2x1ZGVzIik7CiB9CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1Rlc3RET01KSVQ6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RE9NSklUIik7CiB9CkBAIC0xMjQwLDcgKzEy
NDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJ
VENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0RE9NSklUIiksIHN0cmxlbigiVGVzdERPTUpJVCIpKSwgdmFsdWUp
OwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RET01KSVQiKTsKIH0KQEAgLTEyNTEsNyArMTI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yR2V0dGVyKEpT
R2xvCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNP
TiIpOwogfQpAQCAtMTI2Myw3ICsxMjYzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG8KICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT04iKSwg
c3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3REZWZhdWx0VG9KU09OIik7CiB9CkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVy
aXRhbmNlQ29ucwogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0
YW5jZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZSIpOwogfQpAQCAt
MTI4Niw3ICsxMjg2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnMKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZh
dWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRh
bmNlIik7CiB9CkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3JHZXR0ZQog
ICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdDo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdCIpOwogfQpAQCAtMTMwOSw3ICsxMzA5LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OSW5oZXJpdENvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0IiksIHN0cmxlbigiVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iik7CiB9CkBAIC0xMzIwLDcgKzEzMjAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcgogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEZpbmFsOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiKTsKIH0KQEAgLTEzMzIsNyArMTMzMiw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbENvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsIiksIHN0cmxlbigiVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWwiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIp
OwogfQpAQCAtMTM0Myw3ICsxMzQzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yR2V0dGVyKEpTR2wKICAgICBy
ZXR1cm4gSlNUZXN0RG9tYWluU2VjdXJpdHk6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpn
ZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RG9tYWluU2VjdXJpdHkiKTsK
IH0KQEAgLTEzNTUsNyArMTM1NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvclNldHRlcihKU0dsCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REb21haW5TZWN1cml0eSIpLCBzdHJs
ZW4oIlRlc3REb21haW5TZWN1cml0eSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3REb21haW5TZWN1cml0eSIpOwogfQpAQCAtMTM2Niw3ICsxMzY2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3JHZXR0ZXIoSlMKICAgICByZXR1cm4gSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3RFbmFibGVkQnlTZXR0aW5nIik7CiB9CkBAIC0xMzc4LDcgKzEzNzgsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvclNldHRlcihKUwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJUZXN0RW5hYmxlZEJ5U2V0dGluZyIpLCBzdHJsZW4oIlRlc3RFbmFibGVkQnlTZXR0aW5nIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEVuYWJsZWRCeVNldHRpbmci
KTsKIH0KQEAgLTEzODksNyArMTM4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvckdldHRlcihKCiAgICAg
cmV0dXJuIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEVuYWJs
ZWRGb3JDb250ZXh0Iik7CiB9CkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JT
ZXR0ZXIoSgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RW5hYmxl
ZEZvckNvbnRleHQiKSwgc3RybGVuKCJUZXN0RW5hYmxlZEZvckNvbnRleHQiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RW5hYmxlZEZvckNvbnRleHQiKTsKIH0K
QEAgLTE0MTIsNyArMTQxMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyKEpTCiAgICAgcmV0dXJu
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RXZlbnRDb25zdHJ1Y3Rv
ciIpOwogfQpAQCAtMTQyNCw3ICsxNDI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXIoSlMKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEV2ZW50Q29uc3RydWN0b3Ii
KSwgc3RybGVuKCJUZXN0RXZlbnRDb25zdHJ1Y3RvciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVj
dG9yQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RFdmVudENvbnN0cnVjdG9yIik7CiB9CkBAIC0xNDM1LDcgKzE0MzUs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiBKU1Rlc3RFdmVudFRhcmdl
dDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRU
YXJnZXRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IlRlc3RFdmVudFRhcmdldCIpOwogfQpAQCAtMTQ0Nyw3ICsxNDQ3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yU2V0
dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEV2
ZW50VGFyZ2V0IiksIHN0cmxlbigiVGVzdEV2ZW50VGFyZ2V0IikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdEV2ZW50VGFyZ2V0Iik7CiB9CkBAIC0xNDU4LDcgKzE0NTgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiBKU1Rlc3RFeGNlcHRpb246OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RXhjZXB0aW9uIik7CiB9CkBA
IC0xNDcwLDcgKzE0NzAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdEV4
Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFeGNlcHRpb24iKTsKIH0KQEAgLTE0ODEsNyAr
MTQ4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZSIpOwogfQpAQCAtMTQ5Myw3ICsxNDkzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JTZXR0ZXIK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUiKSwgc3RybGVuKCJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIik7
CiB9CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYgogICAgIHJl
dHVybiBKU1Rlc3RHbG9iYWxPYmplY3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0R2xvYmFsT2JqZWN0Iik7CiB9CkBAIC0xNTE2
LDcgKzE1MTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEdsb2JhbE9iamVjdENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0R2xvYmFsT2JqZWN0IiksIHN0cmxlbigiVGVzdEdsb2Jh
bE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RH
bG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVj
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RHbG9iYWxPYmplY3QiKTsKIH0K
QEAgLTE1MjcsNyArMTUyNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJu
IEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAt
MTUzOSw3ICsxNTM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSwg
c3RybGVuKCJUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xNTUwLDcgKzE1NTAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cgogICAgIHJldHVybiBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xNTYyLDcg
KzE1NjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cgogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiksIHN0
cmxlbigiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE1NzMs
NyArMTU3Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0CiAgICAgcmV0dXJuIEpTVGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAg
LTE1ODUsNyArMTU4NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0CiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIi
KSwgc3RybGVuKCJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMTU5Nyw3ICsxNTk3LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gSlNUZXN0SW50ZXJmYWNlOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEludGVy
ZmFjZSIpOwogfQpAQCAtMTYxMiw3ICsxNjEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE8K
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEludGVyZmFjZSIpLCBz
dHJsZW4oIlRlc3RJbnRlcmZhY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNlIik7CiB9
CkBAIC0xNjI1LDcgKzE2MjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0bwogICAgIHJldHVy
biBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSIpOwog
fQpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG8KICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlIiksIHN0cmxlbigiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIik7CiB9CkBAIC0xNjQ4LDcgKzE2NDgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29u
c3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1Rlc3RJdGVyYWJsZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJdGVyYWJsZSIp
OwogfQpAQCAtMTY2MCw3ICsxNjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2IKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEl0ZXJhYmxlIiksIHN0cmxlbigi
VGVzdEl0ZXJhYmxlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEl0ZXJhYmxlIik7CiB9CkBAIC0xNjcxLDcg
KzE2NzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvciIpOwogfQpAQCAtMTY4Myw3ICsxNjgzLDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
U2V0dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yIik7CiB9CkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
R2V0dAogICAgIHJldHVybiBKU1Rlc3Q6OmdldExlZ2FjeUZhY3RvcnlGdW5jdGlvbihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVu
Y3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpOwogfQpAQCAtMTcwNiw3ICsxNzA2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb25Db25zdHJ1Y3RvclNldHQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpLCBzdHJsZW4oIlRlc3RMZWdhY3lG
YWN0b3J5RnVuY3Rpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
bkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIik7CiB9CkBAIC0xNzE3LDcgKzE3
MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25z
dHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiBKU1Rlc3RMZWdhY3lG
YWN0b3J5RnVuY3Rpb246OmdldExlZ2FjeUZhY3RvcnlGdW5jdGlvbihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RB
dWRpb0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0Nv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiQXVkaW8i
KTsKIH0KQEAgLTE3MjksNyArMTcyOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkF1ZGlvIiksIHN0cmxlbigiQXVkaW8i
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJBdWRpbyIp
OwogfQpAQCAtMTc0MCw3ICsxNzQwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXQKICAgICBy
ZXR1cm4gSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0xNzUyLDcgKzE3
NTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpLCBzdHJsZW4oIlRlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAg
LTE3NjMsNyArMTc2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpT
VGVzdE1hcExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBM
aWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBM
aWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TWFwTGlrZSIpOwogfQpAQCAtMTc3NSw3ICsxNzc1LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE1hcExpa2Ui
KSwgc3RybGVuKCJUZXN0TWFwTGlrZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RN
YXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RNYXBMaWtlIik7CiB9CkBAIC0x
Nzg2LDcgKzE3ODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdAogICAgIHJldHVybiBKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAgLTE3OTgsNyArMTc5OCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiksIHN0cmxlbigiVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwogfQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb24KICAgICByZXR1cm4gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ciIpOwogfQpAQCAtMTgyMSw3ICsxODIxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb24KICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xODMyLDcgKzE4MzIsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aQogICAgIHJldHVybiBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMTg0NCw3ICsxODQ0LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGkKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigi
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xODU1LDcgKzE4NTUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyQwogICAgIHJldHVybiBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllciIpOwogfQpAQCAtMTg2Nyw3ICsxODY3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xODc4LDcg
KzE4NzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yRwogICAgIHJldHVybiBKU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xODkwLDcgKzE4OTAsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yUwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxl
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIiKTsK
IH0KQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1CiAgICAgcmV0
dXJuIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xOTEzLDcgKzE5MTMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24iKTsKIH0KQEAgLTE5MjQsNyArMTkyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyIik7CiB9CkBAIC0xOTM2LDcgKzE5MzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0bwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZp
ZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE5
NDcsNyArMTk0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1CiAgICAgcmV0dXJuIEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyIik7CiB9CkBAIC0xOTU5LDcgKzE5NTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydQog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIiKSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIi
KTsKIH0KQEAgLTE5NzAsNyArMTk3MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yR2V0dGVyCiAgICAg
cmV0dXJuIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGg6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxX
aXRoQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpOwogfQpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRo
Q29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiKSwgc3RybGVuKCJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0
aCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRl
ckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1l
ZEdldHRlckNhbGxXaXRoIik7CiB9CkBAIC0xOTkzLDcgKzE5OTMsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3JHZQogICAgIHJldHVybiBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ciIpOwogfQpAQCAtMjAwNSw3ICsyMDA1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2UKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkR2V0dGVyTm9JZGVu
dGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0yMDE2LDcgKzIwMTYsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcgogICAgIHJldHVybiBKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIwMjgsNyArMjAyOCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjAz
OSw3ICsyMDM5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yR2UKICAgICByZXR1cm4gSlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTIwNTEsNyArMjA1MSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvclNlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAt
MjA2Miw3ICsyMDYyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWMKICAgICByZXR1cm4gSlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Iik7CiB9CkBAIC0yMDc0LDcgKzIwNzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1YwogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAg
LTIwODUsNyArMjA4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjA5
Nyw3ICsyMDk3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3Ry
bGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0yMTA4LDcgKzIxMDgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsKIH0KQEAgLTIxMjAsNyArMjEyMCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyIiksIHN0cmxlbigiVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAtMjEzMSw3ICsyMTMxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGUKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyIik7CiB9CkBAIC0yMTQzLDcgKzIxNDMsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXIiKTsKIH0KQEAgLTIxNTQsNyArMjE1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluCiAg
ICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
cyIpOwogfQpAQCAtMjE2Niw3ICsyMTY2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW4KICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnMiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
T3ZlcnJpZGVCdWlsdElucyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0y
MTc3LDcgKzIxNzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcAogICAgIHJldHVybiBKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzIik7CiB9CkBAIC0yMTg5LDcgKzIxODksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzIiksIHN0cmxlbigiVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiKTsKIH0KQEAgLTIyMDAsNyArMjIwMCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdElucyIpOwogfQpAQCAtMjIxMiw3ICsyMjEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3AKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMi
KSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zIik7CiB9CkBAIC0yMjI0LDcgKzIyMjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3JHZXR0ZQog
ICAgIHJldHVybiBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbDo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWxDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlRlc3RPcGVyYXRpb25Db25kaXRpb25hbCIpOwogfQpAQCAtMjIzOSw3ICsyMjM5LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25D
b25kaXRpb25hbENvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIiksIHN0cmxlbigiVGVzdE9wZXJhdGlv
bkNvbmRpdGlvbmFsIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIik7CiB9CkBAIC0yMjUyLDcgKzIyNTIsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDbwogICAgIHJldHVybiBKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dp
dGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UiKTsKIH0KQEAgLTIyNjQsNyArMjI2NCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhT
ZXF1ZW5jZUNvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlIiksIHN0cmxlbigiVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIpOwogfQpAQCAtMjI3NSw3
ICsyMjc1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKU0cKICAgICByZXR1cm4gSlNUZXN0UGx1
Z2luSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFBsdWdpbkludGVyZmFjZSIpOwogfQpAQCAtMjI4
Nyw3ICsyMjg3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKU0cKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFBsdWdpbkludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RQ
bHVnaW5JbnRlcmZhY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQ
bHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UGx1
Z2luSW50ZXJmYWNlIik7CiB9CkBAIC0yMjk4LDcgKzIyOTgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yR2V0
dGVyKEpTRwogICAgIHJldHVybiBKU1Rlc3RSZWFkT25seU1hcExpa2U6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5
TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtl
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
UmVhZE9ubHlNYXBMaWtlIik7CiB9CkBAIC0yMzEwLDcgKzIzMTAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9y
U2V0dGVyKEpTRwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UmVh
ZE9ubHlNYXBMaWtlIiksIHN0cmxlbigiVGVzdFJlYWRPbmx5TWFwTGlrZSIpKSwgdmFsdWUpOwog
fQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVh
ZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RSZWFkT25seU1hcExpa2UiKTsKIH0KQEAgLTIzMjEs
NyArMjMyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVzdFJl
YWRPbmx5U2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RSZWFkT25seVNldExpa2UiKTsKIH0KQEAgLTIz
MzMsNyArMjMzMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RSZWFkT25seVNldExpa2UiKSwgc3RybGVuKCJUZXN0
UmVhZE9ubHlTZXRMaWtlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFJl
YWRPbmx5U2V0TGlrZSIpOwogfQpAQCAtMjM0NCw3ICsyMzQ0LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1
Y3RvckdldHQKICAgICByZXR1cm4gSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpOwogfQpAQCAt
MjM1Niw3ICsyMzU2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvclNldHQKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpLCBzdHJs
ZW4oIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Iik7CiB9
CkBAIC0yMzY4LDcgKzIzNjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cgogICAgIHJldHVy
biBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlIik7CiB9CkBAIC0yMzgzLDcgKzIzODMsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNvbnN0cgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIiksIHN0cmxlbigiVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UiKTsKIH0KQEAgLTIzOTYsNyArMjM5Niw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVy
KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVGVzdFNldExpa2U6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U2V0TGlrZSIpOwogfQpAQCAtMjQwOCw3ICsy
NDA4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdFNldExpa2UiKSwgc3RybGVuKCJUZXN0U2V0TGlrZSIpKSwgdmFs
dWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3RTZXRMaWtlIik7CiB9CkBAIC0yNDE5LDcgKzI0MTksNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdAogICAgIHJldHVybiBKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAgLTI0MzEs
NyArMjQzMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0CiAgICAgcmV0dXJuIHRoaXNPYmpl
Y3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiks
IHN0cmxlbigiVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwogfQpA
QCAtMjQ0Miw3ICsyNDQyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4g
SlNUZXN0U3RyaW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXIiKTsKIH0KQEAgLTI0NTQsNyArMjQ1NCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllciIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllciIpKSwg
dmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllciIpOwogfQpAQCAtMjQ2NSw3ICsyNDY1
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKTsKIH0K
QEAgLTI0NzcsNyArMjQ3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1CiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbiIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIpKSwgdmFs
dWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIpOwogfQpAQCAt
MjQ4OCw3ICsyNDg4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IKICAgICByZXR1cm4gSlNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIik7CiB9CkBAIC0yNTAw
LDcgKzI1MDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiIpLCBzdHJs
ZW4oIlRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb24iKTsKIH0KQEAgLTI1MTEsNyArMjUxMSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1l
bnRlZEFzQ29uCiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiKTsKIH0K
QEAgLTI1MjMsNyArMjUyMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXMiKSwgc3RybGVuKCJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcyIpOwogfQpAQCAtMjUzNCw3ICsyNTM0LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmdDb24KICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpOwogfQpA
QCAtMjU0Niw3ICsyNTQ2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb24KICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZyIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmci
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nIik7CiB9CkBAIC0yNTU3LDcgKzI1NTcsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVD
b25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKTsKIH0KQEAgLTI1NjksNyArMjU2OSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZUNvbnN0cnVjCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIiksIHN0cmxlbigiVGVzdFN0cmluZ2lm
aWVyUmVhZE9ubHlBdHRyaWJ1dGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZSIpOwogfQpAQCAtMjU4MCw3ICsyNTgwLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTI1OTIsNyArMjU5Miw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpLCBzdHJsZW4oIlRlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMjYwMyw3ICsyNjAzLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNUZXN0VHlwZWRlZnM6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5
cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0VHlwZWRlZnMiKTsKIH0K
QEAgLTI2MTUsNyArMjYxNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RUeXBlZGVmcyIpLCBzdHJsZW4oIlRlc3RU
eXBlZGVmcyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RU
eXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RUeXBlZGVmcyIpOwogfQpAQCAtMjYyNiw3ICsyNjI2
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gSlNXb3JrZXJHbG9iYWxT
Y29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0V29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIldvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0yNjM4LDcgKzI2MzgsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvclNldHRlcihKU0dsbwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJXb3JrZXJHbG9iYWxTY29wZSIpLCBzdHJsZW4oIldvcmtlckdsb2JhbFNjb3BlIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiV29ya2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTI2NDks
NyArMjY0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsCiAgICAgcmV0dXJuIEpTV29ya2xl
dEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiV29ya2xldEdsb2JhbFNjb3BlIik7CiB9CkBAIC0yNjYxLDcg
KzI2NjEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJXb3JrbGV0R2xvYmFsU2NvcGUiKSwgc3RybGVuKCJXb3JrbGV0R2xv
YmFsU2NvcGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJXb3JrbGV0R2xvYmFsU2Nv
cGUiKTsKIH0KQEAgLTI2ODMsNyArMjY4Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVn
dWxhck9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAicmVndWxhck9wZXJhdGlvbiIpOwogfQpAQCAtMjc0Niw3ICsyNzQ2LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25FbmFibGVkQXRSdW4KICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRo
cm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxP
YmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uT3Zlcmxv
YWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb24iKTsKIH0KQEAgLTI3NzAsNyArMjc3MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0
aW9uRW5hYmxlZEF0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RDb25z
dHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVu
YWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbFN0YXRpYzxqc1Rlc3RHbG9iYWxPYmplY3RD
b25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpY0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlv
blN0YXRpYyIpOwogfQpAQCAtMjc5NCw3ICsyNzk0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5T
cGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rp
b25FbmFibGVkSW5TcGVjaWZpY1dvcmxkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkSW5TcGVjaWZpY1dv
cmxkIik7CiB9CkBAIC0yODE2LDcgKzI4MTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVu
YWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxl
ZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxP
YmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVh
dHVyZUVuYWJsZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJs
ZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIik7CiB9CkBAIC0yODM4
LDcgKzI4MzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29y
bGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRX
aGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWRCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRJblNwZWNpZmljV29y
bGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCIpOwogfQpAQCAtMjg1Niw3ICsyODU2LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdFByaXZh
dGVGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0
ZUZ1bmN0aW9uQm9keSwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJpdmF0ZUZ1bmN0aW9uIik7CiB9CkBAIC0y
ODc1LDcgKzI4NzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkNhbGN1bGF0ZVNlYwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJl
c3VsdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsK
IH0KQEAgLTI4OTAsNyArMjg5MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xl
YW4+KGltcGwuZ2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRCb29s
ZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJnZXRTZWNyZXRCb29sZWFuIik7CiB9CkBAIC0yOTA2LDcgKzI5MDYsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5j
dGlvblRlc3RGZWF0dXJlRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLnRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9v
bGVhbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2Jh
bE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25U
ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCBmNDg3
OTc0NDJlYmY4ZmE1YTk3ZjkxMjExZGE5ZDQzOTJmMzY0ZTAyLi4wNWNhYTMxNmJlZTgzMWFmNTcx
MGExM2YyNDc1NjI0NTZkYjllNGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0yNDEsNyArMjQxLDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBKU0dsb2IKICAg
ICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUx
LDcgKzI1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCmluZGV4IGZiOTk2M2U2NGEwMDI2NjJhNDQ5OGY1YzU2NjhhOWExOWQy
YjE5NDEuLjJhMzIzMzdjY2IyZDJmZmI3M2M2NDZlOWRkMjdjMWM2MjdlNjU3ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMjQxLDcgKzI0MSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBK
CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxH
bG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNTEsNyArMjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggNTYyMWJjYmMwYzgx
MjRkYjhjYTE0ZjAyZjdkYTJmMjc3NjUwZmVjMS4uNjM3ODBmYmE5M2MzNzZjOTdhNmZkZmQ2YTI0
NWZlNzgyNmZhYTk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKQEAgLTQ4LDEyICs0OCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNl
dHRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25JbmRleGVkU2V0dGVyKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNTMsNyArMjUzLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBJ
RExPcGVyYXRpb248SlNUZXN0SW5kZXhlZFMKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjk2
LDcgKzI5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+Ojpj
YWxsPGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5k
ZXhlZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaW5kZXhl
ZFNldHRlciIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBlMTA4NDQ0NDBlNjM5YzY0
YzFkZWI4NjY3OGI3YjdhYzVhMWQxYjhiLi4zNTcxYTIyOThkOTEyMTkzNjYzOGRhNTJhNjYxZTdj
NDgzYjRmMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtNzUsOTEgKzc1LDkxIEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAvLyBGdW5jdGlvbnMKIAogI2lmIEVOQUJMRShDb25kaXRpb24y
MikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21P
cGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5D
dXN0b21PcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMSkgJiYgRU5B
QkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5D
b25kaXRpb25hbE9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0Nv
bmRpdGlvbmFsT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVz
dWx0RmllbGRPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRp
dGlvbjIyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMzMpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlh
bCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMSk7CiAjZW5kaWYKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1l
bnRhbE1ldGhvZDIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3Vw
cGxlbWVudGFsTWV0aG9kMik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMyk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
ckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQpOwogI2VuZGlmCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25T
eW1ib2xJdGVyYXRvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25T
eW1ib2xJdGVyYXRvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
KTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25s
eUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRl
cmZhY2VNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0
b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1p
eGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VQYXJ0
aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lm
IEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0
aWNBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRp
Y0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VT
dXBwbGVtZW50YWxTdHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsTm9kZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUmVm
bGVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRl
cmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKIAogY2xhc3MgSlNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljX2Fzc2VydChUZXN0U3VwcGxlbWVudGFsOjpTVVBQ
TEVNRU5UQUxDT05TVEFOVDEgPT0gMSwgIlNVUFBMRU1FTlRBTENPTlNUQU4KIHN0YXRpY19hc3Nl
cnQoVGVzdFN1cHBsZW1lbnRhbDo6Q09OU1RfSU1QTCA9PSAyLCAiQ09OU1RfSU1QTCBpbiBUZXN0
U3VwcGxlbWVudGFsIGRvZXMgbm90IG1hdGNoIHZhbHVlIGZyb20gSURMIik7CiAjZW5kaWYKIAot
dGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4NCw2ICsyODQsNyBAQCB0
ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OmNvbnN0cnVjdChKUwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQorSlNDX0FO
Tk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JDb25zdHJ1Y3Qs
IEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpT
VmFsdWUgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShK
U0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAg
LTUxNiw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RJbnRlcmZhY2UqIElETE9w
ZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYXN0KEpTR2xvYmFsTwogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTI2LDcgKzUy
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC01NDgsNyArNTQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluUmVhZE9ubHlBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25s
eUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpz
VGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhp
blJlYWRPbmx5QXR0cmlidXRlIik7CiB9CkBAIC01NjQsNyArNTY1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQXR0
cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFj
ZU1peGluQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KQEAg
LTU4NSw3ICs1ODYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4
aW5BdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRl
cmZhY2VNaXhpbkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0
SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01OTksNyArNjAw
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0aGlzT2JqZWN0Lm1peGlu
Q3VzdG9tQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9t
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7CiB9CkBAIC02MTQsNyAr
NjE1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9t
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZh
Y2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNU
ZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7CiB9
CkBAIC02MzAsNyArNjMxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZU1peGluTm9kZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC5taXhpbk5vZGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFj
ZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTY1MSw3ICs2NTIsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVy
ZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjY3LDcgKzY2OCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9t
UGFydGlhbEdldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wYXJ0
aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVBh
cnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZh
Y2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBhcnRp
YWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsIik7CiB9CkBAIC02ODIsNyArNjgzLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljUmVhZE9ubHlBdHRyR2UKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljUmVhZE9ubHlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNS
ZWFkT25seUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0U3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
U3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyIik7CiB9CkBAIC02
OTcsNyArNjk4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0ckdldHRlcihKU0cKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0
aWNBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JT
dXBwbGVtZW50YWxTdGF0aWNBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic3VwcGxlbWVudGFsU3RhdGljQXR0ciIpOwogfQpAQCAtNzE3LDcgKzcxOCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRh
bFN0YXRpY0F0dHJTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJm
YWNlPjo6c2V0U3RhdGljPHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic3VwcGxlbWVudGFsU3RhdGljQXR0ciIpOwogfQpAQCAtNzMzLDcgKzczNCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
V2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RyMShpbXBsKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdHIxIik7CiB9CkBAIC03NDksNyAr
NzUwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdHIyKGltcGwp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRhbFN0cjIiKTsKIH0KQEAg
LTc3MCw3ICs3NzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMlNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpT
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1cHBsZW1lbnRhbFN0cjIiKTsKIH0KQEAgLTc4
NCw3ICs3ODUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyM0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnN1cHBsZW1lbnRhbFN0cjMobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxTdHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsU3RyMyIpOwogfQpAQCAtNzk5LDcgKzgwMCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyM1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic3VwcGxlbWVudGFsU3RyMyIpOwogfQpAQCAtODE1LDcgKzgxNiw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1
cHBsZW1lbnRhbE5vZGUoaW1wbCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46Omdl
dDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxl
bWVudGFsTm9kZSIpOwogfQpAQCAtODM2LDcgKzgzNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsTm9kZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJ
bnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVu
dGFsTm9kZSIpOwogfQpAQCAtODUyLDcgKzg1Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0dHJpYnV0ZUF0dHIpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50
ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlUmVmbGVj
dEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTg3
Myw3ICs4NzQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVj
dEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVy
ZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVz
dEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTg5Myw3
ICs4OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9wZXJhdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9w
ZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+
OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluT3BlcmF0aW9uIik7CiB9
CkBAIC05MjIsNyArOTIzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3AKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNl
PFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQ29tcGxleE9wZXJhdGlvbigqY29udGV4dCwgV1RG
TW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlv
bihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
bk1peGluQ29tcGxleE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWl4aW5Db21wbGV4T3BlcmF0aW9uIik7CiB9CkBAIC05MzksNyArOTQwLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uTWl4aW5DdXN0b21PcGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5taXhpbkN1c3RvbU9wZXJhdGlvbigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJh
dGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uTWl4aW5DdXN0b21PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1peGluQ3VzdG9tT3BlcmF0aW9uIik7CiB9CkBAIC05NTksNyArOTYwLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uTWl4aW5Db25kaXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRp
dGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdElu
dGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRp
dGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
aXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uIik7CiB9CkBAIC05NzksNyArOTgwLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uTWl4aW5TZXR0aW5nc0MKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGlu
U2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsK
IH0KQEAgLTk5OCw3ICs5OTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExTZXF1ZW5j
ZTxJRExJbnRlcmZhY2U8Tm9kZT4+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKGltcGxSZXN1bHQubm9kZXMpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9u
TWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpblJlc3VsdEZpZWxkT3Bl
cmF0aW9uIik7CiB9CkBAIC0xMDE4LDcgKzEwMTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5P
cAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Q
YXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25G
cm9tUGFydGlhbCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZh
Y2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3Bl
cmF0aW9uRnJvbVBhcnRpYWxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
InBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsIik7CiB9CkBAIC0xMDM4LDcgKzEwMzks
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1l
bnRhbE1ldGhvZDEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJm
YWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDFCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN1cHBsZW1lbnRh
bE1ldGhvZDEiKTsKIH0KQEAgLTEwNjcsNyArMTA2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRh
bE1lCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRh
bDo6c3VwcGxlbWVudGFsTWV0aG9kMihpbXBsLCAqY29udGV4dCwgV1RGTW92ZShzdHJBcmcpLCAq
b2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFs
TWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+
OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9k
MkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0
aG9kMiIpOwogfQpAQCAtMTA4NCw3ICsxMDg1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWUK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0
ZWRUaGlzLT5zdXBwbGVtZW50YWxNZXRob2QzKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+Ojpj
YWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kM0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9k
MyIpOwogfQpAQCAtMTEwMyw3ICsxMTA0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRob2Q0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsU3RhdGljPGpzVGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Q0Qm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdXBwbGVtZW50YWxNZXRob2Q0Iik7CiB9CkBAIC0x
MTY1LDYgKzExNjYsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiB9OwogCiB1c2luZyBUZXN0SW50
ZXJmYWNlSXRlcmF0b3JQcm90b3R5cGUgPSBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPEpTVGVzdElu
dGVyZmFjZSwgVGVzdEludGVyZmFjZUl0ZXJhdG9yVHJhaXRzPjsKK0pTQ19BTk5PVEFURV9IT1NU
X0ZVTkNUSU9OKFRlc3RJbnRlcmZhY2VJdGVyYXRvclByb3RvdHlwZU5leHQsIFRlc3RJbnRlcmZh
Y2VJdGVyYXRvclByb3RvdHlwZTo6bmV4dCk7CiAKIHRlbXBsYXRlPD4KIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIFRlc3RJbnRlcmZhY2VJdGVyYXRvckJhc2U6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZh
Y2UgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKFRlc3RJbnRlcmZhY2VJdGVyYXRvckJhc2UpIH07CkBAIC0xMTc4LDcgKzExODAs
NyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uRW50cmllc0NhbGxlcihKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
aXRlcmF0b3JDcmVhdGU8VGVzdEludGVyZmFjZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0
aW9uS2luZDo6RW50cmllcykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJ
bnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0Nh
bGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBA
IC0xMTg4LDcgKzExOTAsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcihKU0dsb2JhbAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEludGVyZmFjZUl0ZXJhdG9yPigqdGhp
c09iamVjdCwgSXRlcmF0aW9uS2luZDo6S2V5cykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25LZXlzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5
c0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBA
IC0xMTk4LDcgKzEyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpTR2xvYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEludGVyZmFjZUl0ZXJhdG9yPigqdGhp
c09iamVjdCwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVl
cyIpOwogfQpAQCAtMTIwOCw3ICsxMjEwLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXIoSlNHbG8KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yRm9yRWFjaDxUZXN0SW50ZXJmYWNlSXRl
cmF0b3I+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqdGhpc09iamVjdCkpOwog
fQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVy
c2NvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcAppbmRleCAzNjI4Y2Q2NjI3Y2M4ZWZmNzUz
NGI5NjQ2ZjhiZWY1YTkyOTE0OGRmLi4wYTY5ZGZiN2ViYzAwZmMxZDUzMWIzMjMxZWE1MmY4NGFj
NDA3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZS5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBj
bGFzcyBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTU4LDcgKzE1OCw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKiBJRExB
dHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2OCw3ICsxNjgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VM
ZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg5LDcg
KzE4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZVJlYWRvbmx5R2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5yZWFkb25seSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2Nv
cmVSZWFkb25seShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VM
ZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZG9ubHkiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJdGVyYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SXRlcmFibGUuY3BwCmluZGV4IDE0NGZhMDFlMWMzNDU0NGE3NDBlODhiZTUyNmY5MTUw
NGUzMDE3OGUuLjdiNDVjNjY3MWEwMDAwZjI4N2YwYmY1MzMyOWI3Y2RmMDU3MWE2ZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVy
YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEl0ZXJhYmxlLmNwcApAQCAtNDksMTYgKzQ5LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblN5bWJvbEl0ZXJhdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0
ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXMp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJdGVy
YWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEl0ZXJhYmxl
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0xNzIsNyArMTcyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0SXRlcmFibGUqIElE
TE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhc3QoSlNHbG9iYWxPYmoKICAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3RJdGVyYWJsZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4Miw3ICsx
ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0SXRlcmFibGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjUwLDYgKzI1MCw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKIH07CiAK
IHVzaW5nIFRlc3RJdGVyYWJsZUl0ZXJhdG9yUHJvdG90eXBlID0gSlNET01JdGVyYXRvclByb3Rv
dHlwZTxKU1Rlc3RJdGVyYWJsZSwgVGVzdEl0ZXJhYmxlSXRlcmF0b3JUcmFpdHM+OworSlNDX0FO
Tk9UQVRFX0hPU1RfRlVOQ1RJT04oVGVzdEl0ZXJhYmxlSXRlcmF0b3JQcm90b3R5cGVOZXh0LCBU
ZXN0SXRlcmFibGVJdGVyYXRvclByb3RvdHlwZTo6bmV4dCk7CiAKIHRlbXBsYXRlPD4KIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIFRlc3RJdGVyYWJsZUl0ZXJhdG9yQmFzZTo6c19pbmZvID0geyAiVGVz
dEl0ZXJhYmxlIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShUZXN0SXRlcmFibGVJdGVyYXRvckJhc2UpIH07CkBAIC0yNjMsNyAr
MjY0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcihKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGl0ZXJhdG9yQ3JlYXRlPFRlc3RJdGVyYWJsZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRl
cmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJ
dGVyYWJsZT46OmNhbGw8anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxs
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAt
MjczLDcgKzI3NCw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFi
bGVQcm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0SXRlcmFibGVJdGVyYXRvcj4oKnRoaXNPYmpl
Y3QsIEl0ZXJhdGlvbktpbmQ6OktleXMpKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlv
bktleXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEl0
ZXJhYmxlPjo6Y2FsbDxqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yODMsNyAr
Mjg0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpTR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGl0ZXJhdG9yQ3JlYXRlPFRlc3RJdGVyYWJsZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRl
cmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZh
bHVlcywgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRl
cmFibGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0yOTMs
NyArMjk0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcihKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGl0ZXJhdG9yRm9yRWFjaDxUZXN0SXRlcmFibGVJdGVyYXRvcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICp0aGlzT2JqZWN0KSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2hDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9y
RWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5k
ZXggMWMxMWJjNmJmYjk2YmZiYmQ3YjkwN2E5Y2JjYzU4MDUyOTZiMjhkNS4uMmE3YTY2ZjRhZGM4
MTJjYTAyNjFlZGY2OTYyNGMwOTQ1NzRiYjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3IuY3BwCkBAIC00MywxNSArNDMsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbUZ1bmN0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9u
VGVzdEN1c3RvbUZ1bmN0aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
clRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJX
Q3VzdG9tKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTcxLDcgKzE3MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yKiBJRExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGluQ29uc3Ry
CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODEsNyArMTgxLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMCw3ICsyMDAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0
cmlidXRlQ3VzdG9tR2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0aGlzT2JqZWN0LnRlc3RBdHRy
aWJ1dGVDdXN0b20obGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b21HZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0
ZXN0QXR0cmlidXRlQ3VzdG9tIik7CiB9CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9t
R2V0dGVyKEpTR2wKICAgICByZXR1cm4gdGhpc09iamVjdC50ZXN0QXR0cmlidXRlUldDdXN0b20o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0
QXR0cmlidXRlUldDdXN0b20oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpnZXQ8anNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0
cmlidXRlUldDdXN0b20iKTsKIH0KQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21TZXR0
ZXIoSlNHbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
clRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcj46
OnNldDxzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVz
dEF0dHJpYnV0ZVJXQ3VzdG9tIik7CiB9CkBAIC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBl
RnVuY3Rpb25UZXMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6
OmVuY29kZShjYXN0ZWRUaGlzLT50ZXN0Q3VzdG9tRnVuY3Rpb24oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rp
b24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
UHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I+OjpjYWxsPGpzVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb25Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RDdXN0b21GdW5jdGlvbiIpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcAppbmRleCAzNGIy
ZjU1YjUyYTUyYjk3ZDdjZTllNmVkYzI1NzZmMDNiNjNjMThkLi5hZGU3YTQ2OGJjZWY5NzI3NzVk
NmM0YjM1OTU4ODRhYWFlNjI4NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uLmNwcApAQCAtNDgsOCArNDgsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0
aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Qcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEwMSw3ICsxMDEsNyBA
QCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3I6
OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJgogCiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBK
U1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3Ip
IH07CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RMZWdh
Y3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OmNvbnN0cnVjdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1w
bGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RMZWdh
Y3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OmNvbnN0cnVjdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAg
ICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzMiw2ICsxMzIsNyBAQCB0ZW1wbGF0
ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0
aW9uTGVnYWN5RmFjdG9yeQogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQorSlNDX0FOTk9UQVRF
X0hPU1RfRlVOQ1RJT04oSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0LCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5
RnVuY3Rpb246OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RMZWdhY3lG
YWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsK
QEAgLTIwNiw3ICsyMDcsNyBAQCB2b2lkIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6ZGVz
dHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb246On5KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24oKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNiw3ICsyMTcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TGVnYWN5RmFj
dG9yeUZ1bmN0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVn
YWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
bkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdC5jcHAKaW5kZXggYWFhOGJlNjE3ZDdlN2NlMjhlY2FlZTBlOGJm
NGU4YTM2YjI4MDFlNy4uOGNjYTE0ZTQyZDUxYWU4YmNlMzdmNjllODY0YjlhODUyMjA2ZmRlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwCkBAIC01
MiwyMiArNTIsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVyYXRp
b24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5
cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb24oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3Bl
cmF0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5j
dGlvbkN1c3RvbU9wZXJhdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpY09wZXJhdGlvbik7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRl
U3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJT
dHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5n
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0
ZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3ROb2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
U3RhdGljU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzUsNyAr
MTc1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlT
dHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkb25seVN0cmluZ0F0dHJpYnV0ZSIp
OwogfQpAQCAtMTg4LDcgKzE4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZUdldHRlCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFk
V3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmlu
Z0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRX
cml0ZVN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0
dHJpYnV0ZVNldHRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAg
LTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaQogICAgIHJldHVybiB0aGlz
T2JqZWN0LmN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RD
dXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1
c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46Omdl
dDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0
ZSIpOwogfQpAQCAtMjI5LDcgKzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RD
dXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdB
dHRyaWJ1dGUiKTsKIH0KQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8
Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLm5vZGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFs
TwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Tm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOwogfQpA
QCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmliCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0OjpzdGF0aWNTdHJp
bmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3Q+OjpnZXRTdGF0aWM8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rv
clN0YXRpY1N0cmluZ0F0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInN0YXRpY1N0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjg5LDcgKzI4OSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cmliCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OnNldFN0YXRpYzxz
ZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJzdGF0aWNTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3RQcm90b3R5cGVGdW5jdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9J
bnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVu
Y3Rpb25Wb2lkT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAidm9pZE9wZXJhdGlvbiIpOwogfQpAQCAtMzMyLDcgKzMzMiw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC50aHJvd2luZ09wZXJhdGlvbigqY29udGV4dCwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVyYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVu
Y3Rpb25UaHJvd2luZ09wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNhbGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0aHJvd2luZ09wZXJhdGlvbiIpOwogfQpAQCAtMzQ2
LDcgKzM0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+Y3VzdG9tT3BlcmF0
aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlw
ZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Pjo6Y2FsbDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0
aW9uQ3VzdG9tT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJjdXN0b21PcGVyYXRpb24iKTsKIH0KQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1
Y3RvckZ1bmN0aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rp
b25TdGF0aWNPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpjYWxsU3RhdGljPGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpY09wZXJhdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3RhdGljT3BlcmF0aW9uIik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKaW5kZXggZGYxZmZmYjQ3OTA4
NjQ1Zjg0NzdkZDAzZWUyODFjNzlkODMyNWE2Ni4uYzNmNGQ0ZDkxNDVlNGE3Yjg5YWE1OGQzOTFl
ZTFjYjI3YzNhYjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zLmNwcApAQCAtNTAsMTIgKzUwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1
bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0pOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKIAogY2xhc3MgSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjE1LDcgKzIx
NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMqIElE
TE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lPdmVycmlkCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMjUsNyArMjI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlw
ZUZ1bmN0aW9uTgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwubmFtZWRJdGVtKFdURk1vdmUobmFtZSkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJ
dGVtLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnM+OjpjYWxsPGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5j
dGlvbk5hbWVkSXRlbUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibmFt
ZWRJdGVtIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAKaW5kZXggN2RhNzA1OGU3N2IyMDMyNDhjMmUx
ZThkZmQ4NTdjZjAwNjIyM2E0ZC4uNzNkNDMzZTUxOTk4YjMyNWI5NmUxN2ExNTA2NWQ3YWZiOWFk
YTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcApAQCAtNTAsMjEgKzUwLDIxIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkRlbGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
R2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xl
YXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VTaXplKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TWFwTGlrZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtl
U2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RNYXBMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODksNyArMTg5LDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0TWFwTGlrZSogSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+
OjpjYXN0KEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RNYXBM
aWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFs
dWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExp
a2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OSw3ICsxOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TWFwTGlrZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE5LDcgKzIxOSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2Fy
ZFNpemVUb01hcExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVNpemUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFwTGlrZT46OmdldDxq
c1Rlc3RNYXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InNpemUiKTsKIH0KQEAgLTIzOCw3ICsyMzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keShKU0M6OkpTRwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmRHZXRUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZ2V0Iik7CiB9CkBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlND
OjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhh
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxq
c1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzQm9keShKU0M6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNUb01hcExpa2UoKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+Ojpj
YWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI4NSw3ICsyODUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9NYXBMaWtlKCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
S2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtl
Pjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yOTksNyArMjk5LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlc0JvZHkoSlNDOjoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
VmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFw
TGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTMxOCw3ICsz
MTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9N
YXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RG
TW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiZm9yRWFjaCIpOwogfQpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5KEpT
Qzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZFNldFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvblNldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uU2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldEJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic2V0Iik7CiB9CkBAIC0zNTYsNyArMzU2
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6OkoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25DbGVhckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xl
YXIiKTsKIH0KQEAgLTM3NSw3ICszNzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keShKU0M6OgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExB
bnk+KGZvcndhcmREZWxldGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKaW5kZXggZDkwMzNjNjlkZjhl
YjI2OWIwMmRjMjlkZmEyYjNkNWUyM2ExMmRkMS4uYjlmYmVhN2NmN2U1OWIyY2YyNzEyNThkMTQx
MTFiNjQwNDA4OWVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcApAQCAtNTEsMjIgKzUxLDIyIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uR2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhcik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkdldCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhh
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3Rv
dHlwZUZ1bmN0aW9uRm9yRWFjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1NpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0xOTEsNyArMTkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdE1hcEwKICAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFs
dWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIy
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTZXRHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5zZXQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1NldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zU2V0R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0Iik7CiB9CkBAIC0yNDAsNyArMjQw
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTZXRTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnM+OjpzZXQ8c2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1NldFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic2V0Iik7CiB9CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplR2V0dGVyKEpTR2xv
YmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3Rv
dHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7CiB9CkBAIC0yODgsNyArMjg4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkR2V0VG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbkdldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImdldCIpOwogfQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJoYXMiKTsKIH0KQEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uRW50cmllcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Pjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRy
aWVzIik7CiB9CkBAIC0zMzUsNyArMzM1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkS2V5c1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMzQ5LDcg
KzM0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1Rv
TWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0zNjgsNyArMzY4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2Fs
bGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KQEAgLTM4
Nyw3ICszODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxl
dGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
LCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpz
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0
ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCmluZGV4IGJkZDk0NTFlYTJhNzgyNDgzOWU0YTE5NGQ3MWJmMWUwNDllZGMzYTgu
LmY5ODBjOTcxMTM2YzIyYzIwNzk0ZTg4YTVkODBhMjY1MGI2MWI3NjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
CkBAIC00Nyw4ICs0Nyw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzE1LDcgKzMxNSw3IEBAIGJvb2wgSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShK
U09iamVjdCogb2JqZWN0CiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNj
cmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjUsNyArMzI1LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29s
IHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IDBiNDg1OGM3MTdmZDVlNDZj
YjMxMTVmYmRmZmZhZjFkZGZhOGZmZmYuLmQ2MTEzMGJmNGNlYTM0MDBiNzc3MGYyMWEzOWE3Nzky
YmVhMDI0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDcsOCArNDcsOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMTUsNyArMzE1LDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJv
cGVydHkoSlNPYmplY3QqIG8KICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5
KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURl
c2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjUsNyArMzI1LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmlu
ZGV4IGQ2MWQwY2YxMGNhMDQ3OTNhOWM0NDZiYWJhMTE5ZTYyYmU1MDBkMmQuLjIwZTAyMzNlY2Y5
NzRmYzg2Y2E4NWEyMmZmOTExNDcyMGRhZDMzODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtNDks
MTMgKzQ5LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVu
Y3Rpb25JbmRleGVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMyOSw3ICszMjksNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURM
T3BlcmF0aW9uPEpTVGVzdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzM5LDcgKzMzOSw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6
Y2FsbDxqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1
bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im5hbWVkU2V0dGVyIik7CiB9CkBAIC0zOTcsNyArMzk3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
UHJvdG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbklu
ZGV4ZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImluZGV4
ZWRTZXR0ZXIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllci5jcHAKaW5kZXggNmZlMDBkMWI1OGQ3ZjA3ODA5ZGEwYTI1YWZmZThhNmIyNGQ3OTMzYi4u
MWQ1MmE2NDY0YTFkYTU5N2E5NWFhNGQ5M2JiNTQ4YWZkMzFkODA3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKQEAgLTQ2LDggKzQ2LDggQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFt
ZWREZWxldGVyTm9JZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXI6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGws
IEpTR2xvYmEKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxs
LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
cHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IGI4NTYwZmExYzljOWVi
YTdhOGMwZGJhYjIzOGRmNjE0OTE1MDBkNzYuLmIyOTA0NGVhMDBmZGJiNWZjMDM2NzNlOGQ0N2I1
NTFjM2JmMjI2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxl
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxl
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6
SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBKU1Rl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpT
Q2VsbCogY2VsbCwgSlMKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRl
eChjZWxsLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RO
YW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1i
b29sIHNldEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
LmNwcAppbmRleCAyYmJhY2JjM2I4ZDFmODU3NjIyZDJlZjRmMjZmZTE5ZDI4OWJiNGEyLi4yNzQ3
MWVkZTllZWY0NzJkMmJiMWQ4MTkwZjc4M2YxMDMxYmFjNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTQ3LDEyICs0NywxMiBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlRnVuY3Rpb25OYW1lZERlbGV0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZERlbGV0ZXIpOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0y
MzQsNyArMjM0LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGUKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9u
TmFtZWREZWxldGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWREZWxldGVyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyPjo6
Y2FsbDxqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFt
ZWREZWxldGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZERl
bGV0ZXIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IDZiYTQyM2Y2ZjIyNjcxZjU4MmY5MzBiNjRkOGUxMjA3YTNk
M2NkODEuLjAwYzk2MzRhNDRkYzgwMmUyNWRkYWU0MWYxZDcwYzQ1Mjg3YWRjNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApA
QCAtNDcsOCArNDcsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0yNDEsNyArMjQxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlcjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlMKICAgICBy
ZXR1cm4gIWltcGwuaXNTdXBwb3J0ZWRQcm9wZXJ0eUluZGV4KGluZGV4KTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5h
bWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTEsNyArMjUx
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcApp
bmRleCAwYzg5OTMxMjQzNmI5ZDIxYzgzMjQyNTJkMWQ5ZWYxYjM0YzJjMjJkLi5lNGI5NWE0NjI0
MzZmNjk3MTQ4ZGQ1ODk1ODUwZWU1ZTRmNzNhMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGguY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9p
ZCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0
KiBvYmplY3QsIEpTR2xvYmFsT2IKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhv
YmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTEsNyArMjExLDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGg6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDE3YmNmNzkyNWIwZDU2MTFiNDNkNjczMjhhNWUxY2Nl
ZTI1ZThlOTkuLmVlYTc0ZWNkNjU0ODdjZDUyNWM3NWVmMmEzODYwMDgzMjg2OGQyMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNDYsOCAr
NDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBKU1Rlc3RO
YW1lZEdldHRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2Jq
ZWN0LCBKU0dsb2IKICAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGxl
eGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsRwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RO
YW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGVmMTMyNjc0YzQ3M2Q0MTU1
Nzk2Y2ExZTM3NjdlNDU5ZDI2ZWE3MzQuLjY2ZWE3MmM4MzI1MjFhMTZhYjcxZDYwN2M3NjhjNWVk
ZTNjZmM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBG
dW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5h
bWUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMjEyLDcgKzIxMiw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEdldHRlCiAg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjIs
NyArMjIyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2EKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI1MCw3ICsyNTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExE
T01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmdldHRlck5hbWUoV1RGTW92ZShu
YW1lKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uR2V0dGVyTmFtZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZUZ1bmN0aW9uR2V0dGVyTmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25HZXR0ZXJOYW1lQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJnZXR0ZXJOYW1lIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCBlZjAzOWRiNmZlMzkxOGZhZDlhNzYz
NDc3MzA2ZjkzNGYzNDAyOGQ3Li5iZTg2ZWY3MDc4NzFiZjU0OTQxMmY1MzBiMGFhZGM2ZTY2ZTdm
Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAK
QEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBj
bGFzcyBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjcwLDcgKzI3MCw3IEBAIGJv
b2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2Jq
ZWN0KiBvYmplY3QsIEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9w
ZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVy
dHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjgwLDcgKzI4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
cjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggMmM3OWUzZDMxMzMxZWM3ZjNiNWM2Y2M2
ZjA1YjM2Y2U5YmE1YjBlZS4uMjlmNjVhNmM4NGVlMTQ0ZjQwNjAxOGY0NjU1NmZiOGZiZGJlOTNi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMjcwLDcgKzI3MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHCiAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJv
dyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI4MCw3ICsyODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDE0NmI0MTRiMWRmOWNkNzRiYzA5YTY0MTQ0NGE1
ZDIwOWZmNzVmNDIuLmZiYzlhOWQwOTE1NTAxYWQ0MjQwYTk4ZWIxNzk1MzE1ODhhODVlZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAg
LTQ3LDEyICs0NywxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7CiAKIC8v
IEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0yODEsNyArMjgxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGUKICAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5MSw3ICsyOTEsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1i
b29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3RpCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25O
YW1lZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0
ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ci5jcHAKaW5kZXggZGIwODJlOWY3YTM3ZmFjMDVkOWU5NGUyMGNkZmZhMmRjMjRlNGU2NS4uMzAz
NjEwNWMwZDc5ZjA0ZWYzNThhMzA0NmM5Zjk5OTkyZTU1NzVhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApAQCAtNDksMTMgKzQ5
LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
clByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0
aW9uTmFtZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMwNiw3ICszMDYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFt
ZWRTZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMzE2LDcgKzMxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNDksNyArMzQ5LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJQcm90b3R5cGVGdW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJv
dG90eXBlRnVuY3Rpb25OYW1lZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyPjo6Y2FsbDxqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlckJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibmFtZWRTZXR0ZXIiKTsKIH0KQEAgLTM2
OSw3ICszNjksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bgogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBpbXBsLmluZGV4ZWRTZXR0ZXIoV1RGTW92ZShpbmRleCkpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVG
dW5jdGlvbkluZGV4ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaW5kZXhlZFNldHRlciIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXIuY3BwCmluZGV4IGFhMThlMmRiODhmNzc1MzJlMTYwMzNiNGUxM2JkY2I4MjBmY2Q2
MzAuLmYyMGY1ZjdlYWQxODZkMTM1NTRhZTYwOTMzMGE2NWIyZTY5NDBjMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFu
ZFNldHRlci5jcHAKQEAgLTQ5LDEzICs0OSwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVk
U2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5h
bWVkU2V0dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0zMjksNyArMzI5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlciogSURMT3BlcmF0aW9uPEpTVGUKICAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50
aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzOSw3ICszMzksNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1i
b29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyUHJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNl
dHRlclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OmNh
bGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1
bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im5hbWVkU2V0dGVyIik7CiB9CkBAIC00MjQsNyArNDI0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0
ZXJQcm8KICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckFuZFNldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlck92ZXJsb2FkRGlzcGF0Y2hl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
T3ZlcnJpZGVCdWlsdElucy5jcHAKaW5kZXggNjI3NWVjMmJmNjg2NmI5OWI5ZThjMzhmYWE2OTll
OTZkNjg0Yjg3NC4uMjBmYjI0NGRmZTIyYTAxMzhlMjQzMjM1NDY0MzE5OWYyY2Y1YTQ1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMjUxLDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iCiAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJv
dyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2MSw3ICsyNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlZWIyNmFi
MjI0YmZiM2E4Yjc4MTU4ZDQ4NjQwMTBiYjRjYTExYTMyLi5lMzM3NjMzY2Q3MjZmMjFjNWQ0Nzg4
YTcyMzE3MGM3MGY4NGViOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcApAQCAt
NDgsMTMgKzQ4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb24pOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAK
IGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1By
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMzExLDcgKzMxMSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyogSURMT3BlcmF0aW9uCiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFs
dWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3Jn
ZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjEsNyArMzIxLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
Q29uc3RydWN0b3IoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllczo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM0Miw3ICszNDIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwudW5mb3JnZWFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFi
bGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNVbmZv
cmdlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+
OjpnZXQ8anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5m
b3JnZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bmZvcmdlYWJsZUF0dHJpYnV0ZSIp
OwogfQpAQCAtMzU5LDcgKzM1OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb24oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXM+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zLmNwcAppbmRleCA1MTZjNmQ5NTI5YTFmYTUzOGZjN2ViYzQwYjhmYWQ4
ZjI3ZWVkNTQ1Li41ZTdjMWQ5ZGUxNTkzOGU4M2YzY2M0YjA4ZjBjMTJlY2UxNDI2ZjUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVC
dWlsdElucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnMuY3BwCkBAIC00OCwxMyArNDgsMTMgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0
aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFi
bGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBj
bGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yOTIsNyArMjkyLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnIKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKj4oSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTMwMiw3ICszMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzIzLDcgKzMy
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC51bmZvcmdlYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFi
bGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdElucz46OmdldDxqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bmZvcmdlYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzQw
LDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlv
blVuZm9yZ2VhYmxlT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnM+OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZUZ1bmN0aW9uVW5m
b3JnZWFibGVPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
InVuZm9yZ2VhYmxlT3BlcmF0aW9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXggZjczOWY2OTA0YWRj
ZWViMzFjYjZjOThjOWEyNzIxZThiZjE1NTc5MC4uOTg4YmI1YzRhZmYwN2Q2ZWIzODY1ZDViZWY2
MzdjNWJjMzU3ODlkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtNTQsMjUgKzU0LDI1IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2UoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0
UmVzdWx0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkdldFNl
Y3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RXb3Jr
ZXJQcm9taXNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlw
ZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik7CiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
bik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90
eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5j
dGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25G
b3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJ
dGVyYXRvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9k
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9k
ZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Tm9kZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Tm9kZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3ROb2RlTmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5vZGVQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTEwOCw3ICsxMDgsNyBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rl
c3ROb2RlUHJvdG90eXBlLCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpCYQogCiB1c2luZyBKU1Rlc3RO
b2RlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yPEpTVGVzdE5vZGU+OwogCi10ZW1wbGF0
ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpj
b25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJ
QlVURVMgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9
IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjMsNiArMTIzLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpT
R2xvYmEKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNU
SU9OKEpTVGVzdE5vZGVDb25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0Tm9kZUNvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Tm9kZUNvbnN0cnVjdG9y
Ojpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yNjQsNyArMjY1LDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0Tm9kZSogSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYXN0KEpTR2xvYmFsT2Jq
ZWN0JiBsZXgKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI3NCw3ICsyNzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0Tm9kZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjk1LDcgKzI5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RO
b2RlTmFtZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm5hbWUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROb2RlTmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2RlPjo6Z2V0PGpzVGVzdE5vZGVOYW1lR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAibmFtZSIpOwogfQpAQCAtMzEzLDcgKzMxNCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3ROb2RlTmFtZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROb2RlTmFtZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Tm9kZT46OnNldDxzZXRKU1Rlc3ROb2RlTmFtZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibmFt
ZSIpOwogfQpAQCAtMzMwLDcgKzMzMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZUJvCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJv
bWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0
aW9uVGVzdFdvcmtlclByb21pc2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlv
blRlc3RXb3JrZXJQcm9taXNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0V29ya2VyUHJvbWlzZSIpOwogfQpAQCAtMzQ3LDcgKzM0OCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxh
dGVTZWNyZXRSZXN1CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVu
Y3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0Tm9kZT46OmNhbGw8
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsK
IH0KQEAgLTM2Miw3ICszNjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbkJvZAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFu
PihpbXBsLmdldFNlY3JldEJvb2xlYW4oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNy
ZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+Ojpj
YWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldFNlY3JldEJvb2xlYW4iKTsKIH0KQEAg
LTM3OCw3ICszNzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBs
LnRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2Vj
cmV0Qm9vbGVhbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlv
blRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIik7CiB9CkBAIC0zOTYsNyAr
Mzk3LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25Ub0pTT05Cb2R5KEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9k
ZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09O
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b0pTT04iKTsKIH0KQEAg
LTQ1Niw2ICs0NTcsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiB9OwogCiB1c2luZyBUZXN0Tm9k
ZUl0ZXJhdG9yUHJvdG90eXBlID0gSlNET01JdGVyYXRvclByb3RvdHlwZTxKU1Rlc3ROb2RlLCBU
ZXN0Tm9kZUl0ZXJhdG9yVHJhaXRzPjsKK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKFRlc3RO
b2RlSXRlcmF0b3JQcm90b3R5cGVOZXh0LCBUZXN0Tm9kZUl0ZXJhdG9yUHJvdG90eXBlOjpuZXh0
KTsKIAogdGVtcGxhdGU8PgogY29uc3QgSlNDOjpDbGFzc0luZm8gVGVzdE5vZGVJdGVyYXRvckJh
c2U6OnNfaW5mbyA9IHsgIlRlc3ROb2RlIEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZXN0Tm9kZUl0ZXJhdG9yQmFzZSkgfTsK
QEAgLTQ2OSw3ICs0NzEsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdE5vZGVJdGVyYXRvcj4oKnRoaXNPYmpl
Y3QsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVu
dHJpZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5v
ZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtNDc5LDcgKzQ4
MSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1
bmN0aW9uS2V5c0NhbGxlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShpdGVyYXRvckNyZWF0ZTxUZXN0Tm9kZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9u
S2luZDo6S2V5cykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQ
cm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAia2V5cyIpOwogfQpAQCAtNDg5LDcgKzQ5MSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpTR2xvYmFs
T2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0Tm9kZUl0
ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblZhbHVl
c0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0K
QEAgLTQ5OSw3ICs1MDEsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JGb3JFYWNoPFRlc3ROb2RlSXRlcmF0b3I+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqdGhpc09iamVjdCkpOwogfQogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2gsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hD
YWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAppbmRleCAxMzViMDVlMGZiNjFlNmVjMGM2NDk3MTkxZWE0N2NjOTBmNjYzMjNlLi5j
Yjg1NWU3OGZmZTRmODUxMTQyNzI0OTdlZGYzODk1OGI0ZTM1NGUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAt
MTQyMiwzNzUgKzE0MjIsMzc1IEBAIHRlbXBsYXRlPD4gVGVzdE9iajo6Q29uZGl0aW9uYWxEaWN0
aW9uYXJ5QyBjb252ZXJ0RGljdGlvbmFyeTxUZXN0T2JqOjpDb25kaXRpb25hCiAvLyBGdW5jdGlv
bnMKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVP
cGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxl
ZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMpOwogI2VuZGlmCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNNZXRob2QoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1
bHQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRC
b29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNp
ZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxh
dGVTZWNyZXRSZXN1bHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4pOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTsKICNlbmRpZgotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5k
ZWZpbmVkTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25CeXRlTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU1ldGhvZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1N0YXRpY01ldGhv
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3Ry
aW5nU3BlY2lhbE1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhFbnVtQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVu
dW1BcmdBbmREZWZhdWx0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJs
ZVVTVlN0cmluZ0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdB
cmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
TnVsbGFibGVCeXRlU3RyaW5nQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aFJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3Qo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2Qo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RX
aXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZh
dGVNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJs
aWNBbmRQcml2YXRlTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmooSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlvbihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpF
eGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdp
dGhTcGFjZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
RG9jdW1lbnRBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlcldpbmRvd0FyZ3VtZW50KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
QXJnQW5kRGVmYXVsdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmcoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdB
bmRUd29PcHRpb25hbEFyZ3MoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmcoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3Ry
aW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRW
YWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZ0lzTnVsbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0
cmluZ0lzTnVsbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5
U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bEZsb2F0SXNOYU4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWdu
ZWRMb25nTG9uZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmdJc1plcm8oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFNlcXVlbmNlSXNFbXB0eShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNGYWxzZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFu
eShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklz
TnVsbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tB
cmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Tm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVu
Y3Rpb25BcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Z1bmN0aW9uQXJnKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25B
bmRPcHRpb25hbEFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0Fy
ZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2QpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVm
aW5lZE1ldGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3Rl
dE1ldGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9k
V2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpJbnN0YW5jZUZ1
bmN0aW9uVW5mb3JnZWFibGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25O
dWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoRW51bUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVt
QXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWly
ZXNBbGxBcmdzQW5kVGhyb3dzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVV
U1ZTdHJpbmdBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0cmluZ0FyZyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhSZWNvcmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5p
bmdMb25nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1l
dGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aG9kKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3Rl
bmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25SZW1vdmVFdmVudExpc3RlbmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iaik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4
ZWNTdGF0ZVZvaWRFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpFeGNlcHRpb24pOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxs
ZXJEb2N1bWVudEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnQpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRPcHRpb25hbEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxB
cmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXRvbVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZh
bHVlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc051bGwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5
U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4p
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9u
Zyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVybyk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
U2VxdWVuY2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eSk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
Qm9vbGVhbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFu
eSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXIp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBh
dGhOU1Jlc29sdmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21p
c2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tB
cmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlv
bkFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tB
bmRPcHRpb25hbEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcpOwogI2lmIEVOQUJMRShD
b25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyKTsKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsTWV0aG9kMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE1ldGhvZDMpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRp
b25hbFBhcmFtZXRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1
aXNoaW5nVW5pb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGluZ1VuaW9uKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9w
dGlvbmFsVW5pb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9u
YWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0
aG9kMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERp
c3Rpbmd1aXNoaW5nVW5pb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25z
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24pOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxh
YmxlVW5pb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlz
dGluZ3Vpc2hpbmdQYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
Q2xhc3NNZXRob2QyKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1l
dGhvZDEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kMSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFs
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RX
aXRoRW5mb3JjZVJhbmdlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5j
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5
RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21T
dHJpbmdMaXN0RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlvblBhcmFtZXRlcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVT
ZXF1ZW5jZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldEVs
ZW1lbnRCeUlkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0
U1ZHRG9jdW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0MShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZl
cnQyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdN
ZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRp
Y0RvdWJsZU1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZhcmlhZGljTm9kZU1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblZhcmlhZGljVW5pb25NZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25BbnkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50KEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldp
dGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlv
bihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRp
Y1Byb21pc2VGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9u
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGlj
Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuc093blByb21pc2VBbmRQ
cm9taXNlUHJveHlGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
bGFzc01ldGhvZFdpdGhDbGFtcCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhFbmZvcmNlUmFuZ2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1
bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlvblBhcmFtZXRlcik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhv
dXROdWxsYWJsZVNlcXVlbmNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0
Mik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29udmVydDMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQ0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhv
ZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VmFyaWFkaWNEb3VibGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhvZCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFs
SW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNl
RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Q
cm9taXNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25z
dHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJl
dHVybnNPd25Qcm9taXNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94
eUZ1bmN0aW9uKTsKICNpZiBFTkFCTEUoQ09ORElUSU9OMSkgfHwgRU5BQkxFKENPTkRJVElPTjIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbE92ZXJsb2FkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWQpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92
ZXJsb2FkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNo
U2hhZG93Um9vdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9w
ZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZXIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25MZWdhY3lDYWxsZXJOYW1lZChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9w
dGltaXphdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVu
Y3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyRnVu
Y3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
ZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92
ZXJsb2FkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25BdHRhY2hTaGFkb3dSb290KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1l
dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25CdWZmZXJTb3VyY2VQYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRp
bWl6YXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0
aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyRnVuY3Rpb24pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsK
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFk
b25seU9iaihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RPYmpFbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakJ5dGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9iak9jdGV0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqRW5m
b3JjZVJhbmdlU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
VW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVz
dnN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFi
bGVPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRl
c3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialVz
dnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0xvbmdS
ZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFi
bGVEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFu
bm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRU
eXBlSW5VbmlvbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbm5v
dGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVk
VHlwZUluU2VxdWVuY2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
SW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRh
dGlvbkVudW1BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTWVkaWFE
ZXZpY2VzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJM
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVS
TEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5n
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJl
YWRPbmx5VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5
T2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRW51
bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbnVtQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQnl0ZUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VT
aG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbmZvcmNlUmFu
Z2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakxvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTGVuaWVu
dFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTGVuaWVu
dFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0xv
bmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3Ry
aW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJl
Y29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZURpY3Rp
b25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVE
aWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBl
SW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpNZWRpYURldmljZXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ3JlYXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVNWU3Ry
aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVT
VlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21C
b29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW5hYmxlZEF0
UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVu
YWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpD
dXN0b21BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT25mb28oSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqT25mb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpPbndlYmtpdGZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxX
aXRoQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRl
ckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPbmZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iak9uZm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpPbndlYmtpdGZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aENhbGxXaXRoQW5k
U2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRp
b24xKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJM
RShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlm
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRy
aWJ1dGUyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKENPTkRJVElPTikKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqQW55QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT2Jq
ZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqU3RyYXdiZXJyeShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqSWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqSWQoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpIYXNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51
bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9i
ak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRp
b25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5k
V29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQ29udGVudERvY3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyYXdiZXJyeShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRGVzY3JpcHRpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpJZChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iaklkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpIYXNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJs
ZUxvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ1Nl
dHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVs
bGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFi
bGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRlV2l0
aFJlc2VydmVkRW51bVR5cGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpB
dHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVh
ZE9ubHlQcm9taXNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVs
bGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3RPYmpQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTE5MzcsNyArMTkzNyw3IEBAIHN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1Rf
VkFMVUVfMTQgPT0gMHgxYWJjLCAiQ09OU1RfVkFMVUVfMTQgaW4gVGVzdE9iaiBkb2VzCiBzdGF0
aWNfYXNzZXJ0KFRlc3RPYmo6OkNPTlNUX0lNUEwgPT0gMTUsICJDT05TVF9JTVBMIGluIFRlc3RP
YmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKIHN0YXRpY19hc3NlcnQoVGVzdE9i
ajo6cmVhZG9ubHkgPT0gMCwgInJlYWRvbmx5IGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFs
dWUgZnJvbSBJREwiKTsKIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTVGVzdE9iakNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0
cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NjUsNiArMTk2
NSw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9
CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RPYmpDb25zdHJ1Y3RvckNvbnN0cnVj
dCwgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZt
LCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjU0Niw3ICsy
NTQ3LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjYWxsSlNUZXN0T2JqMyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxKU1Rlc3RPYmooSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1Rlc3RPYmosIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTgyLDcgKzI1ODMsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RPYmoqIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1Zh
bHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjU5Miw3ICsyNTkzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWQK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2MTMsNyArMjYxNCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExv
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhZE9ubHlMb25nQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
UmVhZE9ubHlMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVhZE9ubHlMb25nQXR0ckdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInJlYWRPbmx5TG9uZ0F0dHIiKTsKIH0KQEAgLTI2MjYsNyArMjYyNyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5yZWFkT25seVN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVhZE9ubHlTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpS
ZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkT25seVN0cmluZ0F0dHIiKTsK
IH0KQEAgLTI2MzksNyArMjY0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWFkT25seVRlc3RPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwucmVhZE9ubHlUZXN0T2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRPbmx5VGVz
dE9iakF0dHIiKTsKIH0KQEAgLTI2NTEsNyArMjY1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHJHZXR0ZXIoSlNHbG9i
YWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3RPYmo6OnN0YXRpY1JlYWRPbmx5TG9u
Z0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0
aWNSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHJHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdGF0aWNSZWFkT25seUxvbmdB
dHRyIik7CiB9CkBAIC0yNjYzLDcgKzI2NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0Jgog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFRlc3RPYmo6OnN0YXRpY1N0cmluZ0F0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJp
bmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RP
YmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdGF0aWNTdHJpbmdBdHRyIik7CiB9CkBAIC0yNjgwLDcgKzI2ODEsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNl
dEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3RydWN0
b3JTdGF0aWNTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldFN0YXRpYzxzZXRKU1Rlc3RP
YmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHIiKTsKIH0KQEAgLTI2
OTEsNyArMjY5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
clRlc3RTdWJPYmpHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIEpTVGVz
dFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3Rh
dGljPGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iakdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJPYmoiKTsKIH0KQEAgLTI3MDgsNyArMjcwOSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFk
b25seU9iakdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKmpz
Q2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhyb3dTY29w
ZSwgVGVzdE9iajo6dGVzdFN0YXRpY1JlYWRvbmx5T2JqKGRvY3VtZW50KSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmooSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
b25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29u
c3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmpHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ0ZXN0U3RhdGljUmVhZG9ubHlPYmoiKTsKIH0KQEAgLTI3MjEsNyArMjcy
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbnVtQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVudW1BdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpF
bnVtQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVudW1BdHRyIik7CiB9CkBAIC0yNzQyLDcgKzI3NDMs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW51bUF0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IHNldEpTVGVzdE9iakVudW1BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbnVtQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqRW51bUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVudW1BdHRyIik7CiB9CkBAIC0yNzU1LDcgKzI3NTYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExCeXRlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmJ5dGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqQnl0ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakJ5dGVBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0
ZUF0dHIiKTsKIH0KQEAgLTI3NzMsNyArMjc3NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpCeXRlQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQnl0ZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9iakJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpCeXRlQXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnl0
ZUF0dHIiKTsKIH0KQEAgLTI3ODYsNyArMjc4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpPY3RldEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE9jdGV0PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm9jdGV0QXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPY3RldEF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9iak9jdGV0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0QXR0ciIpOwogfQpAQCAtMjgwNCw3
ICsyODA1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9jdGV0QXR0clNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9jdGV0QXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqT2N0ZXRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJvY3RldEF0dHIiKTsKIH0KQEAgLTI4
MTcsNyArMjgxOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialNob3J0QXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInNob3J0QXR0ciIpOwogfQpAQCAtMjgzNSw3ICsyODM2LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9ialNob3J0QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RP
YmpTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqU2hvcnRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJzaG9ydEF0dHIiKTsKIH0KQEAgLTI4NDgsNyArMjg0OSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExTaG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwuY2xhbXBlZFNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqQ2xhbXBlZFNob3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNsYW1wZWRTaG9ydEF0dHIi
KTsKIH0KQEAgLTI4NjYsNyArMjg2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpDbGFtcGVkU2hvcnRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
Q2xhbXBlZFNob3J0QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiY2xhbXBlZFNob3J0QXR0ciIpOwogfQpAQCAtMjg3OSw3ICsyODgwLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExTaG9ydD4+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5mb3JjZVJhbmdlU2hvcnRBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVuZm9y
Y2VSYW5nZVNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZW5mb3JjZVJhbmdlU2hvcnRBdHRyIik7CiB9CkBAIC0yODk3LDcgKzI4
OTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRW5mb3JjZVJh
bmdlU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpFbmZvcmNlUmFu
Z2VTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImVuZm9yY2VSYW5nZVNob3J0QXR0ciIpOwogfQpAQCAtMjkxMCw3ICsyOTExLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMVW5zaWduZWRTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC51bnNpZ25lZFNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpVbnNpZ25lZFNob3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRy
Iik7CiB9CkBAIC0yOTI4LDcgKzI5MjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbAogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRyIik7CiB9CkBAIC0yOTQxLDcgKzI5
NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmxvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakxvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
bG9uZ0F0dHIiKTsKIH0KQEAgLTI5NTksNyArMjk2MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpMb25nQXR0
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
bG9uZ0F0dHIiKTsKIH0KQEAgLTI5NzIsNyArMjk3Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmdMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdMb25nQXR0cigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpMb25nTG9uZ0F0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iakxvbmdMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdMb25n
QXR0ciIpOwogfQpAQCAtMjk5MCw3ICsyOTkxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakxvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakxvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTG9u
Z0xvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJsb25nTG9uZ0F0dHIiKTsKIH0KQEAgLTMwMDMsNyArMzAwNCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFVuc2lnbmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwudW5zaWduZWRMb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdM
b25nQXR0ciIpOwogfQpAQCAtMzAyMSw3ICszMDIyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdM
b25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0PHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIp
OwogfQpAQCAtMzAzNCw3ICszMDM1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
alN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDUy
LDcgKzMwNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ0F0dHIiKTsKIH0K
QEAgLTMwNjUsNyArMzA2Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3Zz
dHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51c3ZzdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpVc3ZzdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nQXR0ciIpOwog
fQpAQCAtMzA4Myw3ICszMDg0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVz
dnN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWwKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpV
c3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdB
dHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJ1c3ZzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDk2LDcgKzMwOTcsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJ
bnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RPYmpBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVzdE9iakF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialRlc3RPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdE9iakF0dHIiKTsKIH0KQEAgLTMx
MTQsNyArMzExNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialRlc3RPYmpBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdE9iakF0dHIi
KTsKIH0KQEAgLTMxMjcsNyArMzEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpUZXN0TnVsbGFibGVPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEludGVy
ZmFjZTxUZXN0T2JqPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRlc3ROdWxsYWJsZU9iakF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3ROdWxsYWJs
ZU9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ0ZXN0TnVsbGFibGVPYmpBdHRyIik7CiB9CkBAIC0zMTQ1LDcgKzMxNDYsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0clNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3ROdWxs
YWJsZU9iakF0dHIiKTsKIH0KQEAgLTMxNTgsNyArMzE1OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVy
ZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwubGVuaWVudFRlc3RPYmpBdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakxlbmllbnRUZXN0T2Jq
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJsZW5pZW50VGVzdE9iakF0dHIiKTsKIH0KQEAgLTMxNzYsNyArMzE3Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0clNldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJldHVybkVhcmx5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJsZW5pZW50VGVzdE9iakF0dHIiKTsKIH0KQEAgLTMx
ODksNyArMzE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbmZvcmdlYWJs
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC51bmZvcmdlYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqVW5mb3JnZWFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5mb3JnZWFibGVBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bmZvcmdlYWJsZUF0dHIi
KTsKIH0KQEAgLTMyMDIsNyArMzIwMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlcihKU0dsb2JhCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
alN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyMjAsNyArMzIyMSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyMzMsNyArMzIzNCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZ0dldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3RyaW5nQWRhcHRvcjxJRExVU1ZTdHJpbmc+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVzdnN0cmluZ0F0dHJUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVz
dnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyNTEsNyArMzI1Miw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmlu
Z1NldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVXN2
c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyNjQsNyArMzI2NSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmdHZXR0ZXIoSlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3RyaW5nQWRhcHRvcjxJRExCeXRlU3RyaW5nPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0
ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlU3RyaW5nQXR0clRyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTMyODIsNyArMzI4Myw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmdTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2Jq
Qnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlU3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnl0ZVN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC0zMjk1LDcgKzMyOTYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3Ry
aW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3Ry
aW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
U3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdMb25nUmVjb3JkQXR0
ciIpOwogfQpAQCAtMzMxMyw3ICszMzE0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpA
QCAtMzMyNiw3ICszMzI3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETFVTVlN0cmluZywgSURM
TG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLnVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzNDQsNyArMzM0
NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3Jk
QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmlu
Z0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJp
bmdMb25nUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzNTcsNyAr
MzM1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVj
b3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExCeXRlU3RyaW5nLCBJRExMb25nPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwudXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAtMzM3NSw3ICszMzc2LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNv
cmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAtMzM4OCw3ICszMzg5LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURMSW50ZXJmYWNlPFRlc3RPYmo+Pj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwuc3RyaW5nT2JqUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ09ialJl
Y29yZEF0dHIiKTsKIH0KQEAgLTM0MDYsNyArMzQwNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVj
b3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpz
ZXQ8c2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nT2JqUmVjb3JkQXR0ciIpOwog
fQpAQCAtMzQxOSw3ICszNDIwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0
cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywg
SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ051bGxh
YmxlT2JqUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJp
bmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ciIpOwogfQpAQCAtMzQzNyw3ICszNDM4LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ051bGxh
YmxlT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5n
TnVsbGFibGVPYmpSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIiKTsKIH0KQEAg
LTM0NTAsNyArMzQ1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdW
b2lkQ2FsbGJhY2tSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01TdHJpbmcsIElETENh
bGxiYWNrRnVuY3Rpb248SlNWb2lkQ2FsbGJhY2s+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nVm9pZENhbGxi
YWNrUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdW
b2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIiKTsKIH0KQEAgLTM0NjgsNyArMzQ2OSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nVm9p
ZENhbGxiYWNrUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3Ry
aW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ciIpOwog
fQpAQCAtMzQ4MSw3ICszNDgyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakRp
Y3Rpb25hcnlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRGljdGlvbmFyeTxUZXN0T2JqOjpE
aWN0aW9uYXJ5Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIGltcGwuZGljdGlvbmFyeUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqRGljdGlvbmFyeUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkaWN0aW9uYXJ5QXR0ciIpOwog
fQpAQCAtMzQ5OSw3ICszNTAwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakRp
Y3Rpb25hcnlBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
RGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakRpY3Rpb25h
cnlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJkaWN0aW9uYXJ5QXR0ciIpOwogfQpAQCAtMzUxMiw3ICszNTEzLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTnVsbGFibGU8SURMRGljdGlvbmFyeTxUZXN0T2JqOjpEaWN0aW9uYXJ5Pj4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
Lm51bGxhYmxlRGljdGlvbmFyeUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJs
ZURpY3Rpb25hcnlBdHRyIik7CiB9CkBAIC0zNTMwLDcgKzM1MzEsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak51bGxh
YmxlRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxl
RGljdGlvbmFyeUF0dHIiKTsKIH0KQEAgLTM1NDMsNyArMzU0NCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVu
aW9uPElETERPTVN0cmluZywgSURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuYW5u
b3RhdGVkVHlwZUluVW5pb25BdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYW5u
b3RhdGVkVHlwZUluVW5pb25BdHRyIik7CiB9CkBAIC0zNTYxLDcgKzM1NjIsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9i
akFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5Vbmlv
bkF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImFubm90YXRlZFR5cGVJblVuaW9uQXR0ciIpOwogfQpAQCAtMzU3NCw3ICszNTc1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMU2VxdWVuY2U8SURMQ2xhbXBBZGFwdG9yPElETExvbmc+Pj4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
YW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVl
bmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyIik7CiB9CkBAIC0zNTkyLDcg
KzM1OTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUlu
U2VxdWVuY2VBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
QW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0
ciIpOwogfQpAQCAtMzYwNSw3ICszNjA2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakltcGxlbWVudGF0aW9uRW51bUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248QWx0
ZXJuYXRlRW51bU5hbWU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmlt
cGxlbWVudGF0aW9uRW51bUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
SW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpbXBsZW1lbnRh
dGlvbkVudW1BdHRyIik7CiB9CkBAIC0zNjI2LDcgKzM2MjcsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0clNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakltcGxlbWVu
dGF0aW9uRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHJTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImltcGxlbWVudGF0
aW9uRW51bUF0dHIiKTsKIH0KQEAgLTM2MzksNyArMzY0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpNZWRpYURldmljZXNHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVy
ZmFjZTxNZWRpYURldmljZXM+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tZWRpYURldmljZXMoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqTWVkaWFEZXZpY2VzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTWVkaWFEZXZpY2VzKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpNZWRpYURldmljZXNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtZWRpYURldmljZXMiKTsKIH0K
QEAgLTM2NTIsNyArMzY1Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpYTUxP
YmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwueG1sT2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpYTUxP
YmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqWE1MT2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqWE1MT2JqQXR0ckdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIlhNTE9iakF0dHIiKTsKIH0KQEAgLTM2NzAsNyArMzY3MSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqWE1M
T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNU
ZXN0T2JqWE1MT2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiWE1MT2JqQXR0ciIpOwogfQpAQCAtMzY4Myw3ICszNjg0LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5p
c0NyZWF0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDcmVh
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iakNyZWF0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNyZWF0ZSIpOwogfQpA
QCAtMzcwMSw3ICszNzAyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNyZWF0
ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNyZWF0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ3JlYXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjcmVhdGUiKTsKIH0KQEAgLTM3MTQs
NyArMzcxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5nYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxl
Y3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM3MzIsNyArMzczMyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0
ciIpOwogfQpAQCAtMzc0NSw3ICszNzQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1c3ZzdHJpbmdhdHRyQXR0cikp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJp
bmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVVNWU3RyaW5nQXR0ciIpOwogfQpAQCAt
Mzc2Myw3ICszNzY0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZFVTVlN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyIik7CiB9CkBAIC0z
Nzc2LDcgKzM3NzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
SW50ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVk
SW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zNzk0LDcgKzM3OTUsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEludGVn
cmFsQXR0ciIpOwogfQpAQCAtMzgwNyw3ICszODA4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRM
b25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBzdGQ6Om1heCgwLCBpbXBsLmdl
dEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRp
bnRlZ3JhbGF0dHJBdHRyKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAicmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM4MjUsNyArMzgy
Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJl
ZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVW5zaWduZWRJbnRlZ3Jh
bEF0dHIiKTsKIH0KQEAgLTM4MzgsNyArMzgzOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaGFzQXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0
cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5B
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQm9vbGVhbkF0dHIiKTsKIH0KQEAgLTM4NTYs
NyArMzg1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29s
ZWFuQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRCb29sZWFuQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAicmVmbGVjdGVkQm9vbGVhbkF0dHIiKTsKIH0KQEAgLTM4NjksNyArMzg3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxh
dHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVVJMQXR0ciIpOwogfQpAQCAtMzg4Nyw3ICszODg4LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRV
UkxBdHRyIik7CiB9CkBAIC0zOTAwLDcgKzM5MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVU1ZTdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZ2V0VVJMQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkdXN2dXJsYXR0ckF0dHIpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVNWVVJM
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0ckdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InJlZmxlY3RlZFVTVlVSTEF0dHIiKTsKIH0KQEAgLTM5MTgsNyArMzkxOSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVVNW
VVJMQXR0ciIpOwogfQpAQCAtMzkzMSw3ICszOTMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0
ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5n
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM5NDks
NyArMzk1MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVk
U3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwogfQpAQCAtMzk2Miw3ICszOTYzLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5n
ZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRl
Z3JhbEF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZs
ZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM5ODAsNyArMzk4MSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEN1
c3RvbUludGVncmFsQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zOTkz
LDcgKzM5OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tQm9vbGVhbkF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRCb29sZWFuQXR0ckF0dHIpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFu
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIik7CiB9CkBA
IC00MDExLDcgKzQwMTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tQm9vbGVhbkF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0clNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVh
bkF0dHIiKTsKIH0KQEAgLTQwMjQsNyArNDAyNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRVUkxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0ckF0dHIpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIiKTsKIH0KQEAgLTQwNDIsNyArNDA0Myw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRy
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIpOwogfQpAQCAtNDA1Niw3ICs0MDU3LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CkBAIC00MDc3LDcgKzQw
NzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakVu
YWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKTsKIH0KQEAg
LTQwOTIsNyArNDA5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWNHZXR0ZXIoCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgVGVzdE9iajo6ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRp
YygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRB
dFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGVTdGF0aWMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVu
dGltZUF0dHJpYnV0ZVN0YXRpY0dldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMiKTsKIH0KQEAgLTQxMTIsNyArNDEx
Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRB
dFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWNTZXR0ZXIoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGlj
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0U3RhdGljPHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0
UnVudGltZUF0dHJpYnV0ZVN0YXRpY1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyIpOwog
fQpAQCAtNDEyNyw3ICs0MTI4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialR5
cGVkQXJyYXlBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRmxvYXQzMkFycmF5PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC50eXBlZEFycmF5QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBl
ZEFycmF5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpUeXBlZEFycmF5QXR0
ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInR5cGVkQXJyYXlBdHRyIik7CiB9CkBAIC00MTQ1LDcgKzQxNDYs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHJTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInR5cGVkQXJyYXlBdHRy
Iik7CiB9CkBAIC00MTU2LDcgKzQxNTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQ3VzdG9tQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAg
IHJldHVybiB0aGlzT2JqZWN0LmN1c3RvbUF0dHIobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpDdXN0b21BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY3VzdG9tQXR0ciIpOwogfQpAQCAt
NDE2OCw3ICs0MTY5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakN1c3RvbUF0
dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDdXN0b21BdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDdXN0b21BdHRyU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjdXN0b21BdHRyIik7
CiB9CkBAIC00MTc5LDcgKzQxODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
T25mb29HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0
dXJuIGV2ZW50SGFuZGxlckF0dHJpYnV0ZSh0aGlzT2JqZWN0LndyYXBwZWQoKSwgZXZlbnROYW1l
cygpLmZvb0V2ZW50LCB3b3JsZEZvckRPTU9iamVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT25mb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9uZm9vR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAib25mb28iKTsKIH0KQEAgLTQxOTQsNyArNDE5NSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPbmZvb1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpP
bmZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqT25mb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9u
Zm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJvbmZvbyIpOwogfQpAQCAtNDIwNSw3ICs0MjA2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iak9ud2Via2l0Zm9vR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2IKICAgICByZXR1cm4gZXZlbnRIYW5kbGVyQXR0cmlidXRlKHRoaXNPYmplY3Qud3JhcHBlZCgp
LCBldmVudE5hbWVzKCkuZm9vRXZlbnQsIHdvcmxkRm9yRE9NT2JqZWN0KHRoaXNPYmplY3QpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT253ZWJraXRmb28oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPbndlYmtpdGZvbyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqT253ZWJraXRmb29HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJvbndlYmtpdGZvbyIp
OwogfQpAQCAtNDIyMCw3ICs0MjIxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
ak9ud2Via2l0Zm9vU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
T253ZWJraXRmb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9ud2Via2l0Zm9v
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJv
bndlYmtpdGZvbyIpOwogfQpAQCAtNDIzMyw3ICs0MjM0LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC53aXRoRXhlY1N0YXRlQXR0cmli
dXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
V2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhFeGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQy
NTEsNyArNDI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0
YXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
V2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
V2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDI2
NCw3ICs0MjY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0
aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC53aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSgqanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ3aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIpOwogfQpAQCAtNDI4
Miw3ICs0MjgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0
aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxX
aXRoQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJ3aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIpOwogfQpA
QCAtNDI5OCw3ICs0Mjk5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSgqY29udGV4dCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzMTksNyArNDMy
MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzMzUsNyArNDMzNiw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZUdlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4
ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4
ZWNTdGF0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CkBAIC00MzU2LDcgKzQzNTcsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVBdHRyaWJ1dGVTZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRFeGVjU3RhdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
QXR0cmlidXRlIik7CiB9CkBAIC00MzcyLDcgKzQzNzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3Bh
Y2VzQQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZh
Y2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0
YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCAqY2FsbEZyYW1lLCAqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0
aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRl
V2l0aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlIik7
CiB9CkBAIC00MzkzLDcgKzQzOTQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0
YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIpOwogfQpAQCAtNDQwNyw3ICs0NDA4LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjFHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRp
b25hbEF0dHIxKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIx
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMSIpOwogfQpAQCAtNDQyOCw3ICs0NDI5
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjFTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIx
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRp
b25hbEF0dHIxIik7CiB9CkBAIC00NDQ0LDcgKzQ0NDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsQXR0cjIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJjb25kaXRpb25hbEF0dHIyIik7CiB9CkBAIC00NDY1LDcgKzQ0NjYsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMlNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIiKTsK
IH0KQEAgLTQ0ODEsNyArNDQ4Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHIzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxBdHRyMygpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyM0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlv
bmFsQXR0cjMiKTsKIH0KQEAgLTQ1MDIsNyArNDUwMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyM1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMyIpOwogfQpAQCAtNDUxNiw3
ICs0NTE3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0T2Jq
ZWN0QTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjQiKTsKIH0KQEAgLTQ1
MzEsNyArNDUzMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsQXR0cjQiKSwgc3RybGVuKCJjb25kaXRp
b25hbEF0dHI0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyNCIpOwogfQpAQCAtNDU0NSw3ICs0NTQ2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcihKU0ds
b2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0T2JqZWN0Qjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImNvbmRpdGlvbmFsQXR0cjUiKTsKIH0KQEAgLTQ1NjAsNyArNDU2MSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3JTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNv
bmRpdGlvbmFsQXR0cjUiKSwgc3RybGVuKCJjb25kaXRpb25hbEF0dHI1IikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNSIpOwogfQpA
QCAtNDU3NCw3ICs0NTc1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjZDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4g
SlNUZXN0T2JqZWN0Qzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjYiKTsK
IH0KQEAgLTQ1ODksNyArNDU5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsQXR0cjYiKSwgc3RybGVu
KCJjb25kaXRpb25hbEF0dHI2IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNiIpOwogfQpAQCAtNDYwOSw3ICs0NjEwLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTFHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZEF0dHJpYnV0
ZTEiKTsKIH0KQEAgLTQ2MjcsNyArNDYyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpDYWNoZWRBdHRyaWJ1dGUyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRBdHRyaWJ1dGUyIik7CiB9CkBAIC00NjQ2LDcgKzQ2
NDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlM0dl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1
dGUzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2Fj
aGVkQXR0cmlidXRlMyIpOwogfQpAQCAtNDY2MSw3ICs0NjYyLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFueUF0dHJpYnV0ZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbnlBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iakFueUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFueUF0dHJp
YnV0ZSIpOwogfQpAQCAtNDY3OSw3ICs0NjgwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iakFueUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakFueUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQW55
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJhbnlBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ2OTIsNyArNDY5Myw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETE9iamVjdD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vYmplY3RB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT2JqZWN0QXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJvYmplY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ3MTAsNyArNDcxMSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGVTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAib2JqZWN0QXR0cmlidXRl
Iik7CiB9CkBAIC00NzIzLDcgKzQ3MjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
T2JqQ29udGVudERvY3VtZW50R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8RG9jdW1l
bnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhy
b3dTY29wZSwgQmluZGluZ1NlY3VyaXR5OjpjaGVja1NlY3VyaXR5Rm9yTm9kZShsZXhpY2FsR2xv
YmFsT2JqZWN0LCBpbXBsLmNvbnRlbnREb2N1bWVudCgpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29udGVudERvY3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29udGVudERvY3VtZW50KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpDb250ZW50RG9jdW1lbnRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb250ZW50RG9jdW1lbnQiKTsK
IH0KQEAgLTQ3MzYsNyArNDczNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpN
dXRhYmxlUG9pbnRHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxTVkdQb2ludD4+
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLm11dGFibGVQb2ludCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpNdXRhYmxlUG9pbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak11dGFibGVQb2lu
dEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm11dGFibGVQb2ludCIpOwogfQpAQCAtNDc1NCw3ICs0NzU1LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak11dGFibGVQb2ludFNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak11dGFibGVQb2ludChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50U2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJtdXRhYmxlUG9pbnQiKTsKIH0KQEAg
LTQ3NjcsNyArNDc2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2Jl
cnJ5R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuYmx1ZWJlcnJ5KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialN0cmF3YmVycnkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJhd2JlcnJ5
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAic3RyYXdiZXJyeSIpOwogfQpAQCAtNDc4NSw3ICs0Nzg2LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmF3YmVycnlTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpTdHJhd2JlcnJ5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJhd2JlcnJ5Iik7CiB9CkBAIC00Nzk4LDcgKzQ3
OTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb25HZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmRlc2NyaXB0aW9uKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRl
c2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakRlc2NyaXB0aW9uR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiZGVzY3JpcHRpb24iKTsKIH0KQEAgLTQ4MTEsNyArNDgxMiw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpJZEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNUCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaWQoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSWQoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpJZChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
SWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJpZCIpOwogfQpAQCAtNDgyOSw3ICs0ODMwLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iaklkU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RP
YmpJZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqSWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iaklkU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpZCIp
OwogfQpAQCAtNDg0Miw3ICs0ODQzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
akhhc2hHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEoKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmhhc2goKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqSGFzaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9iakhhc2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakhhc2hHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJoYXNoIik7CiB9CkBAIC00ODU1LDcgKzQ4NTYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlcGxhY2VhYmxlQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVwbGFjZWFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4
NjcsNyArNDg2OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJs
ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oInJlcGxhY2VhYmxlQXR0cmlidXRlIiksIHN0cmxlbigicmVw
bGFjZWFibGVBdHRyaWJ1dGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZXBs
YWNlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZXBsYWNlYWJsZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNDg4MCw3ICs0ODgxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8
SURMVW5yZXN0cmljdGVkRG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5udWxsYWJsZURvdWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im51bGxhYmxlRG91YmxlQXR0cmlidXRlIik7CiB9CkBAIC00ODkzLDcgKzQ4OTQsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExOdWxsYWJsZTxJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5udWxsYWJsZUxvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxs
YWJsZUxvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5MDYsNyArNDkwNyw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TE51bGxhYmxlPElETEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSIpOwogfQpAQCAtNDkxOSw3ICs0OTIwLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3Ry
aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIm51bGxhYmxlU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC00OTMyLDcgKzQ5
MzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFi
bGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJs
ZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRh
YmxlQXR0cmlidXRlIik7CiB9CkBAIC00OTUwLDcgKzQ5NTEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFi
bGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00OTYzLDcg
KzQ5NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0
YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJu
dWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00OTgxLDcgKzQ5ODIsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNl
dEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxh
YmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTQ5OTQsNyArNDk5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xv
YmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxl
PElETFVTVlN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVs
bGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVV
U1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVVU1ZTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUwMTIsNyArNTAxMyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVy
KEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFi
bGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFi
bGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZSIpOwogfQpAQCAtNTAyNSw3ICs1MDI2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmEK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURM
Qnl0ZVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFi
bGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUJ5
dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVCeXRlU3Ry
aW5nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZUJ5dGVTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTA0Myw3ICs1MDQ0LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0
dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpOdWxs
YWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3Ry
aW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51
bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTA1Niw3ICs1MDU3LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9iakF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9iakF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZSIpOwogfQpA
QCAtNTA2OSw3ICs1MDcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakF0dHJp
YnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6T3B0
aW9uYWw+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdp
dGhSZXNlcnZlZEVudW1UeXBlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0
dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5
cGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUiKTsKIH0KQEAgLTUwOTAsNyAr
NTA5MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZVNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
akF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2VydmVk
RW51bVR5cGUiKTsKIH0KQEAgLTUxMDMsNyArNTEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZUdldHRlcihKU0dsb2Jh
bE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8
SURMVW5kZWZpbmVkPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21p
c2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTUxMTYsNyAr
NTExNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9t
aXNlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RSZWFkT25s
eVByb21pc2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRy
aWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0
ZSIpOwogfQpAQCAtNTEyOSw3ICs1MTMwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ialB1dEZvcndhcmRzQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RO
b2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwucHV0Rm9yd2FyZHNBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpnZXQ8anNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJw
dXRGb3J3YXJkc0F0dHJpYnV0ZSIpOwogfQpAQCAtNTE1Miw3ICs1MTUzLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpQ
dXRGb3J3YXJkc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdXRGb3J3YXJk
c0F0dHJpYnV0ZSIpOwogfQpAQCAtNTE2NSw3ICs1MTY2LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxP
YmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFi
bGU8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnB1dEZvcndhcmRzTnVsbGFibGVB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNO
dWxsYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdXRG
b3J3YXJkc051bGxhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MTg4LDcgKzUxODksNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZVNl
dHRlcihKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVs
bGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialB1dEZvcndh
cmRzTnVsbGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAg
LTUyMDEsNyArNTIwMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdp
ZmllckF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdpZmllckF0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ2lmaWVy
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CkBAIC01MjE5LDcgKzUyMjAsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0
cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CkBAIC01MjMyLDcgKzUyMzMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0
ZUdldHRlcihKU0dsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QXR0cmlidXRlIik7CiB9CkBAIC01MjUwLDcgKzUyNTEsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJp
YnV0ZVNldHRlcihKU0dsbwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyNjMsNyArNTI2NCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0
cmlidXRlR2V0dGVyKEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0
aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9u
YWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyODEsNyArNTI4Miw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2Vy
QXR0cmlidXRlU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9u
YWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIpOwogfQpAQCAtNTI5NCw3ICs1Mjk1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5j
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRX
b3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29y
a2VyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0FuZFdvcmtlckF0dHJpYnV0ZSIpOwogfQpAQCAtNTMxMiw3ICs1MzEzLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3Jr
ZXJBdHRyaWJ1dGVTZXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29y
a2VyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRl
Iik7CiB9CkBAIC01Mzc1LDcgKzUzNzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcgogICAg
IHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxP
YmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25PdmVybG9hZERpc3Bh
dGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGlt
ZU9wZXJhdGlvbiIpOwogfQpAQCAtNTM5OSw3ICs1NDAwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50
aW1lT3AKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25F
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0
YXRpYywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3Rh
dGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9u
U3RhdGljQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uU3RhdGljIik7CiB9CkBAIC01NDIzLDcgKzU0MjQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFi
bGVkSW5TcGVjaWZpY1dvcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWRCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRJblNwZWNpZmljV29y
bGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIik7CiB9CkBAIC01NDQ1LDcgKzU0NDYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Xb3JsZFNwZWNpZmljTWV0aG9kQgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNNZXRob2QsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIndvcmxkU3BlY2lmaWNNZXRob2QiKTsKIH0KQEAgLTU0NjIsNyArNTQ2
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRS
ZXN1bHQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRS
ZXN1bHRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNhbGN1bGF0ZVNl
Y3JldFJlc3VsdCIpOwogfQpAQCAtNTQ3Nyw3ICs1NDc4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVh
bkJvZHkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMQm9vbGVhbj4oaW1wbC5nZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNy
ZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkdldFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xl
YW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldFNlY3JldEJvb2xl
YW4iKTsKIH0KQEAgLTU0OTMsNyArNTQ5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0CiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEJvb2xlYW4+KGltcGwudGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0
RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpOwogfQpA
QCAtNTUxMiw3ICs1NTEzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kQm9keSgKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5l
ZE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmRlZmluZWRNZXRob2QiKTsKIH0KQEAgLTU1NDAs
NyArNTU0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZFdpdGhBCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZFdpdGhBcmdzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5l
ZE1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2RXaXRoQXJn
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidW5kZWZpbmVkTWV0aG9k
V2l0aEFyZ3MiKTsKIH0KQEAgLTU1NTUsNyArNTU1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RCb2R5KEpT
Qzo6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEJ5dGU+KGltcGwuYnl0ZU1ldGhvZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9k
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJieXRlTWV0aG9kIik7CiB9CkBAIC01NTgxLDcgKzU1ODIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25C
eXRlTWV0aG9kV2l0aEFyZ3NCbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExCeXRlPihpbXBsLmJ5dGVNZXRob2RXaXRoQXJncyhXVEZN
b3ZlKGJ5dGVBcmcpLCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhv
ZFdpdGhBcmdzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdp
dGhBcmdzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJieXRlTWV0aG9k
V2l0aEFyZ3MiKTsKIH0KQEAgLTU1OTYsNyArNTU5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kQm9keShK
U0M6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETE9jdGV0PihpbXBsLm9jdGV0TWV0aG9kKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1l
dGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm9jdGV0TWV0aG9kIik7CiB9CkBAIC01NjIyLDcgKzU2MjMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzQgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExPY3RldD4oaW1wbC5vY3RldE1ldGhvZFdpdGhB
cmdzKFdURk1vdmUob2N0ZXRBcmcpLCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2N0ZXRNZXRob2RXaXRoQXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
Y3RldE1ldGhvZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJvY3RldE1ldGhvZFdpdGhBcmdzIik7CiB9CkBAIC01NjM3LDcgKzU2MzgsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25n
TWV0aG9kQm9keShKU0M6OgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExMb25nPihpbXBsLmxvbmdNZXRob2QoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdN
ZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTG9uZ01ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibG9uZ01ldGhvZCIpOwogfQpAQCAtNTY2Myw3ICs1
NjY0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzQm8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTG9uZz4oaW1wbC5sb25nTWV0aG9k
V2l0aEFyZ3MoV1RGTW92ZShsb25nQXJnKSwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkxvbmdNZXRob2RXaXRoQXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkxvbmdNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibG9uZ01ldGhvZFdpdGhBcmdzIik7CiB9CkBAIC01Njc4LDcgKzU2NzksNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpN
ZXRob2RCb2R5KEpTQzo6SgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwub2JqTWV0aG9kKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PYmpNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT2JqTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9iak1ldGhvZCIpOwogfQpAQCAtNTcwNCw3
ICs1NzA1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3NCb2QKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBs
Lm9iak1ldGhvZFdpdGhBcmdzKFdURk1vdmUobG9uZ0FyZyksIFdURk1vdmUoc3RyQXJnKSwgKm9i
akFyZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm9iak1ldGhvZFdpdGhBcmdzIik7CiB9CkBAIC01NzE5LDcgKzU3MjAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSW5zdGFuY2VGdW5jdGlv
blVuZm9yZ2VhYmxlTWV0aG9kQm9keQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExMb25nPihpbXBsLnVuZm9yZ2VhYmxlTWV0aG9kKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqSW5zdGFuY2VG
dW5jdGlvblVuZm9yZ2VhYmxlTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9u
VW5mb3JnZWFibGVNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
InVuZm9yZ2VhYmxlTWV0aG9kIik7CiB9CkBAIC01NzQxLDcgKzU3NDIsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQXJnVHJlYXRpbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1Ry
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC01
NzYzLDcgKzU3NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1JlcwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVy
UGFyYW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXJCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIi
KTsKIH0KQEAgLTU3NzgsNyArNTc3OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE51
bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLm51bGxhYmxl
U3RyaW5nTWV0aG9kKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ01l
dGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2RCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU3RyaW5nTWV0aG9kIik7CiB9CkBA
IC01NzkyLDcgKzU3OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJsZTxJ
RExET01TdHJpbmc+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgVGVzdE9iajo6bnVsbGFibGVTdHJp
bmdTdGF0aWNNZXRob2QoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxs
YWJsZVN0cmluZ1N0YXRpY01ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJs
ZVN0cmluZ1N0YXRpY01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QiKTsKIH0KQEAgLTU4MTIsNyArNTgxMyw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBpbXBsLm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChXVEZNb3Zl
KGluZGV4KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdT
cGVjaWFsTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRo
b2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU3RyaW5n
U3BlY2lhbE1ldGhvZCIpOwogfQpAQCAtNTgzNCw3ICs1ODM1LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVu
dW1BcmdCb2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEVudW1BcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhFbnVtQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRo
b2RXaXRoRW51bUFyZyIpOwogfQpAQCAtNTg1Niw3ICs1ODU3LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0
YW5kYWxvbmUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJnQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmciKTsK
IH0KQEAgLTU4NzYsNyArNTg3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVuCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bEVudW1BcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsRW51bUFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyIpOwogfQpAQCAtNTg5Niw3ICs1ODk3LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVs
dFZhbHVlIik7CiB9CkBAIC01OTE5LDcgKzU5MjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNB
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWV0aG9kVGhhdFJlcXVpcmVzQWxs
QXJnc0FuZFRocm93cyhXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhh
dFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dz
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzIik7CiB9CkBAIC01OTQxLDcgKzU5NDIsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
VVNWU3RyaW5nQQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoVVNWU3RyaW5nQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmcsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhVU1ZTdHJpbmdBcmciKTsKIH0KQEAgLTU5NjMsNyArNTk2
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxs
YWJsZVVTVlN0cmluZ0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5nQXJnIik7CiB9CkBAIC01OTg1LDcgKzU5ODYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhV
U1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC02MDA3LDcgKzYw
MDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0
ZVN0cmluZ0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhCeXRlU3RyaW5n
QXJnIik7CiB9CkBAIC02MDI5LDcgKzYwMzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVCeQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
TnVsbGFibGVCeXRlU3RyaW5nQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmdCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdB
cmciKTsKIH0KQEAgLTYwNTEsNyArNjA1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhC
eXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0Fy
Z1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhC
eXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nIik7CiB9CkBAIC02MDczLDcgKzYwNzQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFs
dWVCb2R5KAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25T
ZXJpYWxpemVkVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVk
VmFsdWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNlcmlhbGl6ZWRW
YWx1ZSIpOwogfQpAQCAtNjA5NSw3ICs2MDk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZEJvZHkK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aFJlY29yZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoUmVjb3JkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3Jk
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoUmVjb3Jk
Iik7CiB9CkBAIC02MTEyLDcgKzYxMTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uQgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNl
cHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhF
eGNlcHRpb24iKTsKIH0KQEAgLTYxMjcsNyArNjEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRp
b25SCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETExvbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1ldGhv
ZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9u
UmV0dXJuaW5nTG9uZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nIik7
CiB9CkBAIC02MTQyLDcgKzYxNDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUgogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRl
cmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09i
amVjdCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
RXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uUmV0dXJuaW5nT2JqZWN0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0Iik7CiB9CkBAIC02MTU2LDcg
KzYxNTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RCb2R5KEpTQwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmN1c3RvbU1ldGhvZCgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9t
TWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImN1c3RvbU1ldGhvZCIpOwogfQpAQCAtNjE3MCw3ICs2MTcx
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5jdXN0b21NZXRob2RXaXRoQXJn
cygqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RX
aXRoQXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DdXN0b21NZXRob2RXaXRoQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9k
V2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImN1c3RvbU1l
dGhvZFdpdGhBcmdzIik7CiB9CkBAIC02MTkwLDcgKzYxOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9k
Qm9keShKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnByaXZhdGVN
ZXRob2QoV1RGTW92ZShhcmd1bWVudCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9k
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9kQm9keSwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwcml2YXRl
TWV0aG9kIik7CiB9CkBAIC02MjEwLDcgKzYyMTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0
aAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnB1YmxpY0FuZFByaXZh
dGVNZXRob2QoV1RGTW92ZShhcmd1bWVudCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhv
ZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Q
dWJsaWNBbmRQcml2YXRlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRl
TWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwdWJsaWNBbmRQ
cml2YXRlTWV0aG9kIik7CiB9CkBAIC02MjM5LDcgKzYyNDAsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3Rl
bmVyQm9keQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25B
ZGRFdmVudExpc3RlbmVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50
TGlzdGVuZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImFkZEV2ZW50
TGlzdGVuZXIiKTsKIH0KQEAgLTYyNjgsNyArNjI2OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVu
ZXJCCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92
ZUV2ZW50TGlzdGVuZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3Zl
RXZlbnRMaXN0ZW5lckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicmVt
b3ZlRXZlbnRMaXN0ZW5lciIpOwogfQpAQCAtNjI4NSw3ICs2Mjg2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNT
dGF0ZVZvaWRCb2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aEV4ZWNTdGF0ZVZvaWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldp
dGhFeGVjU3RhdGVWb2lkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3
aXRoRXhlY1N0YXRlVm9pZCIpOwogfQpAQCAtNjMwMCw3ICs2MzAxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNT
dGF0ZU9iakJvZHkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLndpdGhFeGVjU3RhdGVPYmooKmpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhF
eGVjU3RhdGVPYmooSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iaiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0
ZU9iakJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0
ZU9iaiIpOwogfQpAQCAtNjMxNyw3ICs2MzE4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGMK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNT
dGF0ZVZvaWRFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhFeGVjU3RhdGVWb2lkRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJ3aXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlvbiIpOwogfQpAQCAtNjMzMiw3
ICs2MzMzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2UKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBpbXBsLndpdGhFeGVjU3RhdGVPYmpFeGNlcHRpb24oKmpzQ2FzdDxKU0RPTUdsb2Jh
bE9iamVjdCo+KGxleGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4
ZWNTdGF0ZU9iakV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAid2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiIpOwogfQpAQCAtNjM1Miw3ICs2MzUzLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0Qm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCIpOwogfQpAQCAtNjM3Miw3ICs2MzczLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlv
bkMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRFeGVjU3RhdGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSIpOwogfQpAQCAtNjM5MCw3ICs2Mzkx
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9u
KCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihsZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxG
cmFtZSwgKmNvbnRleHQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVj
U3RhdGVPYmpFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpF
eGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
RXhlY1N0YXRlT2JqRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiIp
OwogfQpAQCAtNjQwOCw3ICs2NDA5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkMKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50
ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0
aFNwYWNlcygqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVjdCks
ICpjYWxsRnJhbWUsICpjb250ZXh0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZVdpdGhTcGFjZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzIik7
CiB9CkBAIC02NDMwLDcgKzY0MzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRG9jdW1lbnRBcmd1bWVudAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRG9jdW1lbnRBcmd1
bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRG9jdW1lbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJn
dW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhEb2N1bWVu
dEFyZ3VtZW50Iik7CiB9CkBAIC02NDUwLDcgKzY0NTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1l
bnRBcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
Q2FsbGVyRG9jdW1lbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIndpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50Iik7CiB9CkBAIC02
NDY3LDcgKzY0NjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aENhbGxlcldpbmRvd0FyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93
QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhDYWxs
ZXJXaW5kb3dBcmd1bWVudCIpOwogfQpAQCAtNjQ4Nyw3ICs2NDg4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsQXIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBcmciKTsKIH0KQEAgLTY1MDcsNyArNjUwOCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVlIik7CiB9
CkBAIC02NTMyLDcgKzY1MzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRPcHRpb25hbEFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25PcHRp
b25hbEFyZ0FuZE9wdGlvbmFsQXJnIik7CiB9CkBAIC02NTYwLDcgKzY1NjEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTm9uT3B0aW9uYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3NCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlv
bmFsQXJncyIpOwogfQpAQCAtNjU4MCw3ICs2NTgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
U3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmciKTsKIH0KQEAgLTY2MDAsNyArNjYw
MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxVU1ZTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVT
VlN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsVVNWU3RyaW5nIik7CiB9CkBAIC02NjIwLDcgKzY2MjEsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxBdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJp
bmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21T
dHJpbmciKTsKIH0KQEAgLTY2NDAsNyArNjY0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmRE
ZWZhdWx0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0Fu
ZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlIik7CiB9CkBAIC02NjYwLDcgKzY2
NjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVm
YXVsdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWVC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25h
bEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUiKTsKIH0KQEAgLTY2ODAsNyArNjY4MSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmdJc051bGwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z0lzTnVsbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNOdWxsIik7CiB9CkBAIC02NzAwLDcgKzY3MDEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmdJc1VuZGVmaW5lZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
U3RyaW5nSXNVbmRlZmluZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkIik7CiB9CkBAIC02NzIwLDcgKzY3
MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxs
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwiKTsKIH0KQEAg
LTY3NDAsNyArNjc0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmlu
Z0lzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZ0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNFbXB0eVN0cmluZyIpOwogfQpAQCAtNjc2MCw3ICs2NzYxLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsVVMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxV
U1ZTdHJpbmdJc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nIik7CiB9CkBA
IC02NzgwLDcgKzY3ODEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9t
U3RyaW5nSXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmlu
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlT
dHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhP
cHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nIik7CiB9CkBAIC02ODAwLDcgKzY4MDEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxEb3VibGVJc05hTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91
YmxlSXNOYU5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhPcHRpb25hbERvdWJsZUlzTmFOIik7CiB9CkBAIC02ODIwLDcgKzY4MjEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxGbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0
SXNOYU4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU5Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEZs
b2F0SXNOYU4iKTsKIH0KQEAgLTY4NDAsNyArNjg0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bExvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbExvbmdMb25nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmciKTsKIH0KQEAgLTY4
NjAsNyArNjg2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25n
SXNaZXJvKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVyb0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmdJc1plcm8iKTsKIH0KQEAg
LTY4ODAsNyArNjg4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2ln
bmVkTG9uZ0xvbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9u
ZyIpOwogfQpAQCAtNjkwMCw3ICs2OTAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW4KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVybyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdM
b25nSXNaZXJvLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExv
bmdMb25nSXNaZXJvQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRo
b2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvIik7CiB9CkBAIC02OTIwLDcgKzY5
MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxTZXF1ZW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2Vx
dWVuY2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhP
cHRpb25hbFNlcXVlbmNlIik7CiB9CkBAIC02OTQwLDcgKzY5NDEsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxTZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVu
Y2VJc0VtcHR5LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlz
RW1wdHlCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhP
cHRpb25hbFNlcXVlbmNlSXNFbXB0eSIpOwogfQpAQCAtNjk2MCw3ICs2OTYxLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFu
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuIik7
CiB9CkBAIC02OTgwLDcgKzY5ODEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCbwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxCb29sZWFuSXNGYWxzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNGYWxzZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2VCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNl
Iik7CiB9CkBAIC03MDAwLDcgKzcwMDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxBbnkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBbnlCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhPcHRpb25hbEFueSIpOwogfQpAQCAtNzAyMCw3ICs3MDIxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE9iamVjdCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0Qm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxPYmplY3QiKTsKIH0KQEAgLTcw
NDAsNyArNzA0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxl
V3JhcHBlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyIik7CiB9
CkBAIC03MDYwLDcgKzcwNjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxO
dWxsYWJsZVdyYXBwZXJJc051bGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxs
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051
bGxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCIpOwogfQpAQCAtNzA4MCw3ICs3MDgxLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsWFAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFhQYXRoTlNSZXNvbHZlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
WFBhdGhOU1Jlc29sdmVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
ZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIiKTsKIH0KQEAgLTcxMDAsNyArNzEwMSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxSZWNvcmQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsUmVj
b3JkIik7CiB9CkBAIC03MTIwLDcgKzcxMjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UiKTsKIH0KQEAgLTcxNDIsNyArNzE0
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJh
Y2tBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZ0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aENhbGxiYWNrQXJnIik7CiB9
CkBAIC03MTY3LDcgKzcxNjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhYwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJh
Y2tBcmdBbmRDYWxsYmFja0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25DYWxs
YmFja0FyZ0FuZENhbGxiYWNrQXJnIik7CiB9CkBAIC03MTg3LDcgKzcxODgsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQ2FsbGJhY2tBbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tB
bmRPcHRpb25hbEFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0
aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIik7CiB9CkBAIC03MjA5LDcgKzcyMTAsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQ2FsbGJhY2tGdQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tG
dW5jdGlvbkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+Ojpj
YWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25B
cmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDYWxs
YmFja0Z1bmN0aW9uQXJnIik7CiB9CkBAIC03MjM0LDcgKzcyMzUsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Tm9uQ2FsbGJhYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Z1bmN0aW9uQXJnKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmdCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENh
bGxiYWNrRnVuY3Rpb25BcmciKTsKIH0KQEAgLTcyNTQsNyArNzI1NSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhDYWxsYmFja0Z1CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxBcmcoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxi
YWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENh
bGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyIpOwog
fQpAQCAtNzI3Myw3ICs3Mjc0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2EKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRo
Q2FsbGJhY2tBbmRPcHRpb25hbEFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFs
QXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0
aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0Fu
ZE9wdGlvbmFsQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdGF0
aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyIpOwogfQpAQCAtNzI5NCw3ICs3Mjk1
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNN
ZXRob2RXaXRoQ2FsbGJhY2tBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0
aG9kV2l0aENhbGxiYWNrQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmciKTsKIH0KQEAgLTczMTAsNyArNzMxMSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNvbmRpdGlvbmFsTWV0aG9kMUJvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIGltcGwuY29uZGl0aW9uYWxNZXRob2QxKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
ZGl0aW9uYWxNZXRob2QxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDFCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFsTWV0aG9kMSIp
OwogfQpAQCAtNzMzMCw3ICs3MzMxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyQm8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRo
b2QyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsTWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2Qy
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbE1ldGhv
ZDIiKTsKIH0KQEAgLTczNTAsNyArNzM1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kM0JvCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFs
TWV0aG9kMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbE1ldGhvZDMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0
aG9kM0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxN
ZXRob2QzIik7CiB9CkBAIC03NjA0LDcgKzc2MDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3Zl
cgogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRob2QiKTsKIH0KQEAgLTc2NzEsNyArNzY3
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEg
PyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRl
ck92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJv
dmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyIik7CiB9CkBAIC03NzI2LDcgKzc3
MjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHJldHVybiBhcmdzQ291bnQgPCAx
ID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGlu
Z1VuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNo
aW5nVW5pb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uIik7CiB9CkBAIC03
NzgzLDcgKzc3ODQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aAogICAgIHJldHVybiBhcmdz
Q291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRo
cm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJE
aXN0aW5ndWlzaGluZ1VuaW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdp
dGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnNPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdV
bmlvbnMiKTsKIH0KQEAgLTc4NDEsNyArNzg0Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRo
CiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDIgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbk92ZXJsb2FkRGlzcGF0
Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9k
V2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24iKTsKIH0KQEAgLTc4OTgsNyArNzg5OSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkV2l0aE51bGxhYmxlCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZN
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5p
b24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRo
TnVsbGFibGVVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJvdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uIik7CiB9CkBAIC03OTU2LDcgKzc5
NTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbAogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoT3B0
aW9uYWxVbmlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZFdpdGhPcHRpb25hbFVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24iKTsKIH0KQEAgLTgw
MTUsNyArODAxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlCiAgICAgcmV0dXJuIGFyZ3ND
b3VudCA8IDIgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhy
b3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFi
bGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRX
aXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZFdpdGhOdWxsYWJsZU5v
bkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyIik7CiB9CkBAIC04MDMxLDcgKzgwMzIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bkNsYXNzTWV0aG9kQm9keShKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uQ2xhc3NNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImNsYXNzTWV0aG9kIik7CiB9CkBAIC04MDQ4LDcgKzgwNDksNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9k
V2l0aE9wdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExMb25nPihUZXN0T2JqOjpjbGFzc01ldGhvZFdpdGhPcHRpb25hbChXVEZNb3Zl
KGFyZykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhPcHRpb25hbChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9w
dGlvbmFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxT
dGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFs
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhP
cHRpb25hbCIpOwogfQpAQCAtODA2Miw3ICs4MDYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDJCb2R5
KEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RPYmo6OmNsYXNzTWV0aG9kMigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvbkNsYXNzTWV0aG9kMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25DbGFzc01ldGhvZDJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImNsYXNzTWV0aG9kMiIpOwogfQpAQCAtODEyMyw3ICs4MTI0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kMU8KICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Qx
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8
anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxT3ZlcmxvYWREaXNw
YXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRo
b2QxIik7CiB9CkBAIC04MTUwLDcgKzgxNTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhDbGFtcChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRo
b2RXaXRoQ2xhbXBCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNz
TWV0aG9kV2l0aENsYW1wIik7CiB9CkBAIC04MTcwLDcgKzgxNzEsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhDbGFtcAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlv
bmFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWxCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kV2l0aENsYW1w
T25PcHRpb25hbCIpOwogfQpAQCAtODE5NSw3ICs4MTk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRo
RW5mb3IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xh
c3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UiKTsKIH0K
QEAgLTgyMTUsNyArODIxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9y
Y2VSYW5nZU9uT3B0aW9uYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xhc3NNZXRob2RXaXRoRW5mb3Jj
ZVJhbmdlT25PcHRpb25hbCIpOwogfQpAQCAtODIzNyw3ICs4MjM4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aFVuc2lnbmVkTG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1
ZW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoVW5zaWduZWRM
b25nU2VxdWVuY2UiKTsKIH0KQEAgLTgyNTcsNyArODI1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVu
Y3Rpb25CCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETFNlcXVlbmNlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nQXJyYXlG
dW5jdGlvbihXVEZNb3ZlKHZhbHVlcykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdB
cnJheUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdHJpbmdBcnJheUZ1bmN0aW9uIik7
CiB9CkBAIC04Mjc3LDcgKzgyNzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3RpbwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRl
cmZhY2U8RE9NU3RyaW5nTGlzdD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuZG9tU3RyaW5nTGlzdEZ1bmN0aW9uKCp2
YWx1ZXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJkb21TdHJpbmdMaXN0RnVuY3Rpb24iKTsKIH0KQEAgLTgy
OTcsNyArODI5OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9u
UGFyYW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxVbmlvblBhcmFtZXRlckJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0
ZXIiKTsKIH0KQEAgLTgzMjIsNyArODMyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhB
bmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVu
Y2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5j
ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEFuZFdp
dGhvdXROdWxsYWJsZVNlcXVlbmNlIik7CiB9CkBAIC04MzQyLDcgKzgzNDMsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRF
bGVtZW50QnlJZEJvZHkoSgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8RWxlbWVudD4+PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmdldEVs
ZW1lbnRCeUlkKFdURk1vdmUoZWxlbWVudElkKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVt
ZW50QnlJZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldEVsZW1lbnRCeUlkIik7CiB9CkBAIC04MzU3LDcg
KzgzNTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudEJvZHkoSgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8RG9jdW1lbnQ+
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJv
d1Njb3BlLCBCaW5kaW5nU2VjdXJpdHk6OmNoZWNrU2VjdXJpdHlGb3JOb2RlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCBpbXBsLmdldFNWR0RvY3VtZW50KCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0
U1ZHRG9jdW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRTVkdEb2N1bWVudCIpOwogfQpAQCAtODM3
OSw3ICs4MzgwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDFCb2R5KEpTQzo6SlMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDEsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQxQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJj
b252ZXJ0MSIpOwogfQpAQCAtODQwMSw3ICs4NDAyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDJCb2R5KEpTQzo6
SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVy
dDIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29udmVydDIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJjb252ZXJ0MiIpOwogfQpAQCAtODQyMyw3ICs4NDI0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDNCb2R5KEpTQzo6SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29udmVydDMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb252ZXJ0MyIpOwogfQpA
QCAtODQ0NSw3ICs4NDQ2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDRCb2R5KEpTQzo6SlMKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQ0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJjb252ZXJ0NCIpOwogfQpAQCAtODQ2MCw3ICs4NDYxLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50
RnVuY3Rpb24KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMSW50ZXJmYWNlPFNWR1BvaW50Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5tdXRhYmxlUG9pbnRGdW5jdGlvbigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtdXRhYmxlUG9pbnRGdW5jdGlvbiIpOwogfQpAQCAtODQ3Nyw3ICs4NDc4LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3JhbmdlQm9keShKU0M6OkpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9yYW5nZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvcmFuZ2UiKTsKIH0KQEAgLTg1
MDEsNyArODUwMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
U3RyaW5nTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNTdHJpbmdNZXRob2Qi
KTsKIH0KQEAgLTg1MjUsNyArODUyNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91Ymxl
TWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZhcmlhZGljRG91YmxlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJs
ZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNE
b3VibGVNZXRob2QiKTsKIH0KQEAgLTg1NDksNyArODU1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1l
dGhvZEJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZh
cmlhZGljTm9kZU1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlh
ZGljTm9kZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFy
aWFkaWNOb2RlTWV0aG9kIik7CiB9CkBAIC04NTczLDcgKzg1NzQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1Vu
aW9uTWV0aG9kQgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25WYXJpYWRpY1VuaW9uTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRob2QsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZhcmlhZGljVW5pb25NZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgInZhcmlhZGljVW5pb25NZXRob2QiKTsKIH0KQEAgLTg1OTgsNyArODU5OSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFu
eUJvZHkoSlNDOjpKU0dsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkFueShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25BbnksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueUJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiYW55Iik7CiB9CkBAIC04NjE1LDcgKzg2MTYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uQgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uIik7CiB9CkBA
IC04NjM3LDcgKzg2MzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uVwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEZsb2F0QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFy
Z3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQiKTsKIH0KQEAgLTg2NTQsNyArODY1NSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blRlc3RQcm9taXNlRnVuY3Rpb25XCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVu
Y3Rpb25XaXRoRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJu
aW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uIik7CiB9CkBAIC04
Njc0LDcgKzg2NzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uVwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9w
dGlvbmFsSW50QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldp
dGhPcHRpb25hbEludEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQiKTsKIH0KQEAg
LTg3MjcsNyArODcyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlCiAgICAgcmV0dXJuIGFy
Z3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDog
dGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVu
Y3Rpb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24iKTsKIH0KQEAgLTg3NDMsNyArODc0NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQ
cm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQ
cm9taXNlPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
blRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24iKTsKIH0KQEAgLTg3NTksNyArODc2
MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNl
cHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFN0YXRp
Yzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldp
dGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RT
dGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uIik7CiB9CkBAIC04NzczLDcgKzg3NzQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnRlc3RDdXN0b21Qcm9taXNlRnVu
Y3Rpb24oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsIFdURk1vdmUocHJvbWlzZSkp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5j
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVBy
b21pc2VGdW5jdGlvbiIpOwogfQpAQCAtODc4Nyw3ICs4Nzg4LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGlj
Q3VzdG9tUHIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RPYmo6OnRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsIFdURk1vdmUocHJvbWlzZSkpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0
U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0
T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1
c3RvbVByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbiIpOwogfQpAQCAtODgwMSw3ICs4ODAy
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNPd24KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT50ZXN0Q3VzdG9tUmV0dXJuc093
blByb21pc2VGdW5jdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blBy
b21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1By
b21pc2U8SlNUZXN0T2JqPjo6Y2FsbFJldHVybmluZ093blByb21pc2U8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNl
RnVuY3Rpb24iKTsKIH0KQEAgLTg4MTYsNyArODgxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5zT3duUHJv
bWlzCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETFByb21pc2U8SURMVW5kZWZpbmVkPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0
ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC50ZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9t
aXNlUHJveHlGdW5jdGlvbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlz
ZVByb3h5RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9i
aj46OmNhbGxSZXR1cm5pbmdPd25Qcm9taXNlPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQ
cm94eUZ1bmN0aW9uIik7CiB9CkBAIC04ODc5LDcgKzg4ODAsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE92
ZXJsb2FkTwogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE92ZXJsb2FkKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWRPdmVybG9hZERpc3BhdGNoZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxPdmVybG9hZCIp
OwogfQpAQCAtODkzNyw3ICs4OTM4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmUKICAgICBy
ZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkT3ZlcmxvYWREaXNwYXRj
aGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNpbmdsZUNvbmRpdGlvbmFs
T3ZlcmxvYWQiKTsKIH0KQEAgLTg5NTksNyArODk2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3RC
b2R5CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFj
aFNoYWRvd1Jvb3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93
Um9vdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYXR0YWNoU2hhZG93
Um9vdCIpOwogfQpAQCAtODk4MSw3ICs4OTgyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aEV4dGVybmEK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9u
V2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9u
YXJ5UGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0
aW9uYXJ5UGFyYW1ldGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJv
cGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyIik7CiB9CkBAIC05MDAzLDcg
KzkwMDQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZQogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyU291cmNl
UGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZXJCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImJ1ZmZlclNvdXJjZVBhcmFtZXRlciIp
OwogfQpAQCAtOTAyNSw3ICs5MDI2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVyTmFtZWRCb2QKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVyTmFt
ZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TGVnYWN5Q2FsbGVyTmFtZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJsZWdhY3lDYWxsZXJOYW1lZCIp
OwogfQpAQCAtOTA1MCw3ICs5MDUxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW0KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFyZ3VtZW50MC52YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5W
YWx1ZU9wdGltaXphdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uIik7CiB9CkBAIC05MDc1
LDcgKzkwNzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXJndW1lbnQwLnZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0
aW9uV2l0aEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UmV0dXJuVmFsdWVP
cHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uIik7CiB9CkBAIC05MDkyLDcgKzkwOTMsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b25kaXRpb25hbGx5RXhwb3NlZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbiIpOwogfQpAQCAtOTEw
OSw3ICs5MTEwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWQKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtl
ckZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVu
Y3Rpb24iKTsKIH0KQEAgLTkxMjYsNyArOTEyNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2Vk
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QW5kV29ya2VyRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0
aW9uIik7CiB9CkBAIC05MTQxLDcgKzkxNDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHkoSlNDOjpKUwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExVU1ZTdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnN0cmluZ2lmaWVyQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcAppbmRleCA0YjRiYTczODNm
YjkwNWYyZTM3OTkzYWI5OTMwYTFmMDUxMGU2M2YyLi5kOTExNDg5ZGQ3OWU5NTJlMjVmNWUxM2Fl
YjViMjNhNTJmZmQzZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bC5jcHAKQEAgLTQ5LDE2ICs0OSwxNiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogLy8gRnVuY3Rp
b25zCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uQmFzZSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uTm9u
Q29uZGl0aW9uYWxPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
UHJvdG90eXBlRnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ29uZGl0aW9uQmFzZSkgJiYgRU5BQkxFKENvbmRpdGlvbk9wZXJhdGlvbikKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFBy
b3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJh
dGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbik7CiAj
ZW5kaWYKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9wZXJh
dGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTc3LDcgKzE3
Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsKiBJRExP
cGVyYXRpb248SlNUZXN0T3BlcmF0aW9uQ29uZGl0CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xODcsNyArMTg3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVG
dW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uTm9uQ29uZGl0aW9u
YWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWw+OjpjYWxsPGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibm9uQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KQEAgLTIzMyw3ICsy
MzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3BlcmF0
aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw+OjpjYWxsPGpzVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxPcGVyYXRp
b24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApp
bmRleCA1YTJhODIwYzc1NmY2YTRkNTdiZjc4Njg3ZDc0MzFhOGEzYmUyMzAxLi5iODY5YTM1Zjg3
MzA0NGNkMWIzMDkzMjU4ZjUyYTdhMjNjOWJkZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC01MCw4ICs1MCw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0xODEsNyArMTgxLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzNShKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVU
RVMgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQog
ewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDQsNiArMjA0LDcgQEAgdGVt
cGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNDb25zdHJ1Y3RvcjoKICAgICB9CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9G
VU5DVElPTihKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3JDb25zdHJ1Y3Qs
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAog
dGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rv
cjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjczLDcgKzI3NCw3IEBAIHZvaWQgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yczo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlz
T2JqZWN0LT5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjp+SlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycygpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yODMsNyArMjg0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCBhOTIwMjI0NGE1YTMxMjNhOWZhYmYyNjc3YzJjMDMy
OGU2ZmU5MmUwLi45MDdiMDEwNjA3NjNjZTg4ODc2ZDE3YmVmNTIxMTRjMjBhNTJlZDQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2UuY3BwCkBAIC00OSw4ICs0OSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBj
bGFzcyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMjQsNyAr
MTI0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlMigKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVmFsdWUpOwogfQogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yOjpj
b25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJ
QlVURVMgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDMs
NiArMTQzLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UKICAgICB9CiAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CitKU0Nf
QU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQogewpAQCAtMjEyLDcgKzIxMyw3IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAg
ICB0aGlzT2JqZWN0LT5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjp+
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSgpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MjIsNyArMjIzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdp
bkludGVyZmFjZS5jcHAKaW5kZXggYWQ0ZGMzNDYwOWQwYjAzZjJjZjdjMzhjMWY5MzhhY2MyYzQy
MGExZS4uYjExM2IwYTI4ODkxZDNkNjI3NzY3MzZiODg0NjU2ZWFlNTY4NjVmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbklu
dGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFBs
dWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFBsdWdpbkludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3Mg
SlNUZXN0UGx1Z2luSW50ZXJmYWNlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMTEsNyArMjExLDcgQEAgQ2FsbERhdGEgSlNUZXN0
UGx1Z2luSW50ZXJmYWNlOjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwpCiAgICAgcmV0dXJuIHBs
dWdpbkVsZW1lbnRDdXN0b21HZXRDYWxsRGF0YSh0aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIyMSw3ICsyMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQbHVn
aW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iagog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0UGx1Z2luSW50ZXJmYWNlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAppbmRleCAwZmUzYTgw
OTY1MGJjMzA4NDI3ZTI2NzdmYjAxYjJmNGZiM2NhMzE4Li44ZTVjNmJhMjM5MTRmNzA3OWI3NmU0
OWJmYWMyNDk5OTUzZTlmNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50LmNwcApAQCAtMTI3LDEwICsxMjcsMTAgQEAgdGVtcGxhdGU8PiBUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50OjpJbml0IGNvbnZlcnREaWN0aW9uYXJ5PFRlc3RQcm9taXNlUmVqZWN0aW8K
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNs
YXNzIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTY2LDcgKzE2Niw3IEBAIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dFByb3RvdHlwZSwgSlNUZXN0CiAKIHVzaW5nIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3RvcjxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+
OwogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTg5LDYgKzE4OSw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcjo6CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNWYWx1ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1
ZSBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0
KQogewpAQCAtMjU4LDcgKzI1OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudCogSURMQXR0cmlidXRlPEpTVGVzdFByb21pc2VSZWplY3RpCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Kj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2OCw3ICsyNjksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg5LDcgKzI5MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9t
aXNlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMQW55Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucHJvbWlzZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZp
b3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwcm9t
aXNlIik7CiB9CkBAIC0zMDIsNyArMzAzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYXNvbigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb24oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRSZWFzb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Pjo6Z2V0PGpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFJlYXNvbkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYXNvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlr
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVh
ZE9ubHlNYXBMaWtlLmNwcAppbmRleCBkYzI3M2YzYjQ3OTM4ZGM1YjcxYmIyNTQwNjQ0ZGViNzg4
NjZlM2M5Li45MjA1NzZhNDEzNjFlNjRlN2QwNzQxMzAwMTNjMzMyMTZlYzZiYzBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9u
bHlNYXBMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcApAQCAtNTAsMTggKzUwLDE4IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uR2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9u
bHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVNpemUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seU1hcExpa2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RSZWFkT25seU1hcExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTgzLDcgKzE4Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFJlYWRPbmx5
TWFwTGlrZSogSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0UmVhZE9ubHlNYXBMaWtlKj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlNYXBMaWtlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xOTMsNyArMTkzLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UmVh
ZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFJlYWRPbmx5TWFwTGlrZTo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIxMyw3ICsyMTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0UmVhZE9ubHlN
YXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGZvcndhcmRTaXplVG9NYXBMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VT
aXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpnZXQ8anNUZXN0UmVhZE9ubHlN
YXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUi
KTsKIH0KQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXRCb2R5KAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+
KGZvcndhcmRHZXRUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bkdldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExp
a2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXQiKTsKIH0KQEAgLTI1MSw3ICsy
NTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb01hcExp
a2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3Zl
KGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzQgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImVudHJpZXMiKTsKIH0KQEAgLTI3OSw3ICsyNzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9k
eQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExBbnk+KGZvcndhcmRLZXlzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtl
Pjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0KQEAgLTI5Myw3ICsy
OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRWYWx1ZXNUb01h
cExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0zMTIsNyArMzEyLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaEIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlT
ZXRMaWtlLmNwcAppbmRleCBkZTAyNWE2YjRhM2QzNDYwZTFiYjExNmI2NmZhOGRmMmNmMGExNjhm
Li5jMzJkNzc0ZWQ1MDYzZjlmZmZjNzU1MzAzZjhkYTUwOGQzZjBmZWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRM
aWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0UmVhZE9ubHlTZXRMaWtlLmNwcApAQCAtNTAsMTcgKzUwLDE3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RSZWFkT25seVNldExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4MSw3ICsxODEsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RSZWFkT25seVNldExpa2UqIElETE9wZXJhdGlvbjxK
U1Rlc3RSZWFkT25seVNldExpa2U+OjpjYQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVz
dFJlYWRPbmx5U2V0TGlrZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxs
RnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNl
dExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTkxLDcg
KzE5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RSZWFkT25seVNldExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UmVhZE9ubHlTZXRM
aWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTEsNyArMjExLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6
ZVRvU2V0TGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0UmVh
ZE9ubHlTZXRMaWtlPjo6Z2V0PGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CkBAIC0yMzAsNyArMjMwLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkp
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0yNDQsNyArMjQ0LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllc0IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmll
cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRy
aWVzIik7CiB9CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkS2V5c1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNh
bGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yNzIsNyArMjcyLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9TZXRMaWtl
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRP
bmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2hCCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4
dHJhTWVtb3J5Q29zdC5jcHAKaW5kZXggNDYyMTRjODMwNjAwOTA1OWNjMjhkMzYxYzI2ZWViNGE5
YmY1Mjk4Ny4uM2VkZDAxZmNhYjI0OWVmNWVmODliOTc1YmY1OGZmM2UxNTU3OGEzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdC5jcHAKQEAgLTQ0LDggKzQ0LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9y
eUNvc3Q6OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0Ojp+SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0KCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjAsNyArMTYwLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYzE1
NTY3ZTI0NjMxMjkzNDNkMTkwYjVhYTQ1NDE1NmViODQ2MDEzNC4uZjBhZGM4M2YwNDZjNzJjMWQ2
NjI4ZTlmMTM0OTRmMTRjZDMxN2EyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTU2LDIwICs1NiwyMCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25G
dW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25SZXR1cm5pbmcpOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJl
YWRvbmx5VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VD
YWNoZWRSZWFkb25seVZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNh
Y2hlZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUgZmluYWwgOiBwdWJs
aWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE5MCw3ICsxOTAsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIElE
TE9wZXJhdGlvbjxKU1Rlc3RTZXJpYQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAwLDcgKzIwMCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlR2V0dGVyKEpTR2xvYmFsT2IKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZh
bHVlPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnZhbHVlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidmFsdWUiKTsKIH0KQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVTZXR0ZXIo
SlNHbG9iYWxPYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+
OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlIik7
CiB9CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWVHZXR0ZXIoSlMKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVl
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRvbmx5VmFsdWUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVh
ZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVJlYWRvbmx5VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWFkb25seVZhbHVlIik7
CiB9CkBAIC0yNzAsNyArMjcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlR2V0dGVyKEpTR2wKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hl
ZFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZFZh
bHVlIik7CiB9CkBAIC0yODgsNyArMjg4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlU2V0dGVyKEpTR2wKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDYWNoZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FjaGVkVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6
c2V0PHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjYWNo
ZWRWYWx1ZSIpOwogfQpAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0c0dldHRlcihKU0dsb2JhbE9i
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNlcXVlbmNlPElE
TEludGVyZmFjZTxNZXNzYWdlUG9ydD4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5wb3J0cygpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0c0dldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInBvcnRzIik7CiB9CkBAIC0zMTksNyArMzE5LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5
VmFsdWVHZXQKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkUmVhZG9ubHlWYWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZFJlYWRvbmx5VmFsdWUiKTsK
IH0KQEAgLTM0MSw3ICszNDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25GdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2U+OjpjYWxsPGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImZ1bmN0aW9uIik7CiB9CkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlw
ZUYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwuZnVuY3Rp
b25SZXR1cm5pbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9u
UmV0dXJuaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uUmV0dXJuaW5nLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT46OmNhbGw8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90
eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZnVuY3Rpb25SZXR1cm5pbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAppbmRl
eCAzZGFmNTA3OWUyNTIwYWJmODA1MjI0ODE2Nzk3NzQwMDhhZjFkYjk4Li5iZjQyOTkxYTU2NDcw
ZTg1ZDE5Y2ZhMjE5MWI3NWI3OWNkYTc2OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwCkBAIC01MCwy
MCArNTAsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkFkZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXRMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0U2V0TGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0U2V0TGlrZVBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMTg3LDcgKzE4Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFNldExpa2UqIElETE9w
ZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
ZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTcsNyArMTk3LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdFNldExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXRM
aWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2V0TGlr
ZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplYwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGZvcndhcmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlU2l6ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNl
dExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdFNldExpa2U+OjpnZXQ8anNUZXN0U2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CkBAIC0yMzYsNyArMjM2LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkhhc0JvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RT
ZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMjUwLDcgKzI1MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzQm9keShKU0M6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNUb1NldExp
a2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAg
LTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKUwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRL
ZXlzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhp
cykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0y
NzgsNyArMjc4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHkoSlNDOjoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFs
dWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhp
cykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
VmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsK
IH0KQEAgLTI5Nyw3ICsyOTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZv
cndhcmRGb3JFYWNoVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAq
Y2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8
anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25BZGRCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEFkZFRvU2V0TGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uQWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25BZGQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJhZGQiKTsKIH0KQEAgLTMzMiw3ICszMzIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uQ2xlYXJCb2R5KEpTQzo6SgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkNsZWFyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGVh
ciIpOwogfQpAQCAtMzUxLDcgKzM1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5KEpTQzo6CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFu
eT4oZm9yd2FyZERlbGV0ZVRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcAppbmRleCA3M2M0ZWZjMTYxOGYy
MWE0YWM2M2QxZTczMmM3NmVmMjg5MGU5ODNmLi4xNzNhOTY3MjM3M2Y1ZDEyNTkzMThjZTQzNjk2
MWRhZjUzYmQ2ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCkBAIC01MSwyMSArNTEsMjEgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25EZWxldGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xl
YXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1NpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTg5LDcgKzE4OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RT
ZXRMCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUu
dGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIw
LDcgKzIyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQWRkR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuYWRkKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
QWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpnZXQ8anNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0FkZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFkZCIpOwogfQpAQCAtMjM4
LDcgKzIzOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQWRkU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6c2V0PHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNBZGRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImFkZCIpOwogfQpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRl
cihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1NldExp
a2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46Omdl
dDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KQEAgLTI2Nyw3ICsyNjcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0KQEAgLTI4Niw3
ICsyODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb1Nl
dExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZN
b3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0zMDAsNyArMzAwLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvU2V0TGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNUb1NldExpa2UoKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImtleXMiKTsKIH0KQEAgLTMyOCw3ICszMjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmRWYWx1ZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2Fs
bDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwog
fQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEZvckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJmb3JFYWNoIik7CiB9CkBAIC0zNjMsNyArMzYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVh
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiY2xlYXIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IDE1MTNm
ZDhmYWQ2ZWIyM2JjNWFmZGJmZTkyNWY2MWNmYzg0M2U4NDcuLjZkYTFmMDhkYTZiZWEzZWRlZmU4
Y2I0YjhhNjlmYmU5YjY3MGRkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAtNDYs
MTIgKzQ2LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVG
dW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFN0cmlu
Z2lmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5n
aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhc3QoSlNHbG8KICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk0LDcgKzE5NCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlw
ZUZ1bmN0aW9uVG9TdHJpbmdCb2R5CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IGltcGwudG9TdHJpbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhbGw8
anNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5v
bnltb3VzT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKaW5kZXggZDAxN2Rm
YjQ5NjcxZTdkN2YwYjBiNTkzMzBiZTg3NjA2MzE1ODQ1YS4uZWFlMDQ5NzNlMTA5Mjc2ZDYwYjBm
YzNkNDlmYjU1N2UwOTZlNTA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCkBAIC00NiwxMiArNDYsMTIgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
UHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTE2MSw3ICsxNjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbiogSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZwogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcxLDcg
KzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90
eXBlRnUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC50b1N0cmluZygp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5
cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKaW5kZXggM2Y2Mjg3NjM5ZjQyOGI4
MzBjYmY0M2UzMTY2MDZmZTg5NmVmMTY3Ny4uM2Q0MGNkYjIxNzZhZDJmNjUzNzQ1ZGI2MDAxM2E1
ZDg5ZTVlYWM5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uLmNwcApAQCAtNDYsMTMgKzQ2LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8v
IEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rp
b25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3Rv
dHlwZUZ1bmN0aW9uSWRlbnRpZmllcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRp
b25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKQEAgLTE2Myw3ICsxNjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZQogICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24qPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTczLDcgKzE3Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xOTYsNyArMTk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGkKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5n
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblBy
b3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVu
Y3Rpb25JZGVudGlmaWVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJp
ZGVudGlmaWVyIik7CiB9CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5j
dGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5pZGVudGlmaWVyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlv
blRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Q
cm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAppbmRleCBiODZmMTJmOTE3NTM5YzJk
NTM5ZDUwOWM5YWE4NDg0MmY5ZmEyNmEzLi43ZGI1ZmY3ZGMzNDkzZGNmYjEyOTJjNmViOWEyMTRi
NzQzYWMxNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcApAQCAtNDYsMTMgKzQ2LDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVu
Y3Rpb25JZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRp
Zmllcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMg
SlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2Myw3ICsxNjMsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMqIElE
TE9wZXJhdGlvbjxKU1Rlc3RTdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTczLDcgKzE3Myw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXM6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTYsNyArMTk2LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
c1Byb3RvdHkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5hbHRlcm5h
dGVJZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25JZGVu
dGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRl
ZEFzPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5
cGVGdW5jdGlvbklkZW50aWZpZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImlkZW50aWZpZXIiKTsKIH0KQEAgLTIxMSw3ICsyMTEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFz
UHJvdG90eQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmFsdGVybmF0
ZUlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvblRvU3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcz46
OmNhbGw8anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVu
Y3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9T
dHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKaW5kZXggNjY2ZTM1NjdlZDQ5ODYzNzZiYzdkZmFlNGQ0
ZDJkYWNhOWIwMGI3Mi4uY2VhZjY0YWI1YmUyNTg0YWFiNDFiYTBkYWJlNTdjY2UzMjc3NGJjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZy5jcHAKQEAgLTQ2LDEyICs0NiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3Rv
dHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5h
bWVkVG9TdHJpbmdQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE2MSw3ICsxNjEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcqIElETE9wZXJhdGlvbjxKU1Rlc3RTdAog
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhp
c1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Z0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTcxLDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmc6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHkKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5n
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC50b1N0cmluZygpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9u
VG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCmluZGV4IGM1MDM3ZWYzNTFi
OTU2MWZiMGMwN2YwYjM1YWJmMGRlMTAxMDc3MGMuLjllZjgxYjE2OTQ5NjJmNGRhMWVmOThmNzdk
OWNmNzgyYTM5YjE4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZS5jcHAKQEAgLTQ3LDEzICs0NywxMyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3Ry
aW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2OSw3ICsxNjksNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlKiBJRExPcGVyYXRpb248
SlNUZXN0U3RyaW5naQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2Fs
bEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTc5LDcgKzE3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U3RyaW5n
aWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDAsNyArMjAw
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGVJZGVudGlmaWVyR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Z2V0PGpzVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaWRl
bnRpZmllciIpOwogfQpAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVu
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaWRlbnRpZmllcigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVu
Y3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCmluZGV4IDkwMDI5YmNlNjM4NjJl
N2NmM2I4NzhmMzM5NjBiM2Q2MGYzZmY5YTQuLjdjM2Q0Y2I2MDc5ZGVmMWIzMjhhZmU2ZWUxOTY0
NmI4NjM2ZDMzNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlLmNwcApAQCAtNDcsMTQgKzQ3LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3Ry
aW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlw
ZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRl
bnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xNzAsNyArMTcwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGUqIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmcKICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSo+KEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTE4MCw3ICsxODAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJH
ZXR0ZXIoSlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pZGVudGlm
aWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmll
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OmdldDxqc1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpZGVudGlmaWVyIik7CiB9
CkBAIC0yMTksNyArMjE5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllclNldHRlcihKU0dsb2IKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlk
ZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OnNldDxzZXRKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImlkZW50aWZpZXIiKTsKIH0KQEAg
LTIzNCw3ICsyMzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVBy
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZT46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90
b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggZWViOTkwZjg1YTM2
ZWY2OTEzYjc3NWIxNTMxYzViMTVhMjhlZTg3YS4uOTBjZDcwNmMyZTMzOWMyY2Q5MTJkZjQwNzYy
NDJjY2M2YTdjMGM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC02NSwzOSArNjUsMzkgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
U2VxdWVuY2VBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk51bGxhYmxlU2VxdWVuY2VBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxl
c0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVs
bGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVu
Y2VGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
RXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25TZXRTaGFkb3cpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VB
cmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxlc0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJs
ZXNBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNX
aXRoQ2xhbXApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25Qb2ludEZ1bmN0aW9uKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0
cmluZ1NlcXVlbmNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdp
dGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbik7CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2Jq
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENs
YW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJ
blR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJ
blR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0J1ZmZl
clNvdXJjZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVk
ZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRl
V2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlw
ZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNEb21U
aW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNE
b21UaW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE1NCw3
ICsxNTQsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogICAgIHsgIlRlc3RTdWJPYmoiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogfTsKIAotdGVtcGxhdGU8PiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNv
bnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklC
VVRFUyBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2
bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODAsNiArMTgwLDcgQEAgdGVtcGxhdGU8PiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0
cnVjdChKU0cKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZV
TkNUSU9OKEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yODEsNyArMjgyLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0VHlwZWRlZnMqIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhc3QoSlNHbG9iYWxPYmoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RU
eXBlZGVmcyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhp
c1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5MSw3ICsyOTIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0VHlwZWRlZnM6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzEyLDcg
KzMxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9u
Z0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRMb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzVW5z
aWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdM
b25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0z
MzAsNyArMzMxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzVW5zaWdu
ZWRMb25nTG9uZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RU
eXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNl
dEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7
CiB9CkBAIC0zNDMsNyArMzQ0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2VyaWFsaXplZFNjcmlwdFZhbHVlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZh
bHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRl
ZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXJpYWxpemVkU2NyaXB0
VmFsdWUiKTsKIH0KQEAgLTM2MSw3ICszNjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXJp
YWxpemVkU2NyaXB0VmFsdWUiKTsKIH0KQEAgLTM3Miw3ICszNzMsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5
cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0U3RhdGljPGpzVGVzdFR5cGVk
ZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFN1Yk9iaiIpOwogfQpAQCAtMzg1LDcgKzM4Niw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TENsYW1wQWRhcHRvcjxJRExVbnNpZ25lZExvbmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ2xhbXAoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdp
dGhDbGFtcChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcCIpOwogfQpAQCAtNDAzLDcgKzQwNCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcFNl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRl
V2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQXR0
cmlidXRlV2l0aENsYW1wU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXAiKTsKIH0KQEAgLTQxNiw3ICs0MTcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJ
blR5cGVkZWZHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExDbGFtcEFkYXB0b3I8SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVm
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlw
ZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0KQEAgLTQzNCw3ICs0MzUsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZTZXR0
ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdp
dGhDbGFtcEluVHlwZWRlZihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBl
ZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZlNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVm
Iik7CiB9CkBAIC00NDcsNyArNDQ4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzQnVmZmVyU291cmNlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5pb248SURMQXJyYXlCdWZm
ZXJWaWV3LCBJRExBcnJheUJ1ZmZlcj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmJ1ZmZlclNvdXJjZUF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRl
ZnNCdWZmZXJTb3VyY2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNl
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ1ZmZlclNvdXJjZUF0dHIiKTsKIH0KQEAgLTQ2NSw3ICs0
NjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNCdWZm
ZXJTb3VyY2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZz
QnVmZmVyU291cmNlQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiYnVmZmVyU291cmNlQXR0ciIpOwogfQpAQCAtNDc4LDcgKzQ3OSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETFVuc2lnbmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZG9tVGltZVN0YW1wQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRl
ZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
ZG9tVGltZVN0YW1wQXR0ciIpOwogfQpAQCAtNDk2LDcgKzQ5Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNE
b21UaW1lU3RhbXBBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJkb21UaW1l
U3RhbXBBdHRyIik7CiB9CkBAIC01MTYsNyArNTE3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jQm9keShKU0M6
OkoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25G
dW5jKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uRnVuYywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVm
cz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmMiKTsKIH0KQEAgLTU1MCw3ICs1NTEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvblNldFNoYWRvd0JvZHkoSgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvblNldFNoYWRvd0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAic2V0U2hhZG93Iik7CiB9CkBAIC01NzAsNyArNTcxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoU2VxdWUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4oaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VB
cmcoV1RGTW92ZShzZXF1ZW5jZUFyZykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VB
cmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoU2VxdWVuY2VBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIpOwogfQpAQCAtNTkyLDcgKzU5Myw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uTnVsbGFibGVTZXF1ZW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZUFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VBcmcs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlQXJnQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJudWxsYWJsZVNlcXVlbmNlQXJnIik7CiB9
CkBAIC02MTQsNyArNjE1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGEKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGFi
bGVzQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxlc0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInNlcXVlbmNlT2ZOdWxsYWJsZXNBcmciKTsKIH0KQEAgLTYzNiw3ICs2MzcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51
bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnIik7CiB9CkBAIC02
NTgsNyArNjU5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlv
bnNBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZyIpOwogfQpAQCAt
NjgwLDcgKzY4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmdCb2R5KEpTCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmcoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ1bmlvbkFyZyIpOwogfQpAQCAtNzA1LDcgKzcwNiw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uRnVuY1dpdGhDbGFtcEJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXAsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJmdW5jV2l0aENsYW1wIik7CiB9CkBAIC03MjcsNyArNzI4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25GdW5jV2l0aENsYW1wSW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFt
cEluVHlwZWRlZiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVm
cz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5
cGVkZWZCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmNXaXRoQ2xh
bXBJblR5cGVkZWYiKTsKIH0KQEAgLTc0Miw3ICs3NDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rp
b25CbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExJbnRlcmZhY2U8U1ZHUG9pbnQ+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLnBvaW50RnVuY3Rpb24oKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
UG9pbnRGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25Qb2ludEZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJw
b2ludEZ1bmN0aW9uIik7CiB9CkBAIC03NjIsNyArNzYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1
ZW5jZUYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMU2VxdWVuY2U8SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdTZXF1ZW5j
ZUZ1bmN0aW9uKFdURk1vdmUodmFsdWVzKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVu
Y3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAic3RyaW5nU2VxdWVuY2VGdW5jdGlvbiIpOwogfQpAQCAtNzgyLDcgKzc4Myw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcXVlbmNlPElETERPTVN0cmluZz4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwuc3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIoV1RGTW92ZSh2YWx1ZXMpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMiwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24yQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMiIp
OwogfQpAQCAtODAyLDcgKzgwMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xl
YW4+KGltcGwuY2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUoV1RGTW92ZShzZXF1
ZW5jZUFyZykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVk
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGVCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWly
ZXNJbmNsdWRlIik7CiB9CkBAIC04MTksNyArODIwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhFeGNlcHRpb24iKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3Bl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckds
b2JhbFNjb3BlLmNwcAppbmRleCA5ZmE5ZDExMTZjOTA0MzU0ODUzOTRhYzM5YjY0M2IwZTdjYWFj
NmYyLi5lYmQ0ZmNkNmNiYzAwODBkOWU4YjE5OTdiMjQzNjFmODZkMDI4NWI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxT
Y29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
V29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01MCwxOCArNTAsMTggQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3Bl
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3Jr
ZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2Jh
bFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9i
amVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2Jq
ZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJH
bG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2Nv
cGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3Bl
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNX
b3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGU8SlNXb3JrZXJHbG9iYWxTY29wZT47CiAKQEAgLTE3MSw3ICsxNzEsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBKU1dvcmtlckdsb2JhbFNjb3BlKiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9i
YWxTY29wZT46OmNhc3QoSgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTV29ya2VyR2xvYmFs
U2NvcGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODEsNyArMTgxLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV29y
a2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9y
R2V0dAogICAgIHJldHVybiBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdzo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlRXhw
b3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKIH0KQEAgLTIxMiw3
ICsyMTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dAogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKSwgc3RybGVuKCJFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3ciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtlckds
b2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xv
YmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtl
ckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iik7CiB9CkBAIC0yMjMs
NyArMjIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3QKICAgICByZXR1cm4gSlNUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29w
ZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWQiKTsKIH0KQEAgLTIzNSw3ICsyMzUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFs
U2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkIik7CiB9CkBAIC0yNDYsNyArMjQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWMKICAgICByZXR1cm4gSlNUZXN0Tm9kZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xv
YmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9i
YWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0Tm9kZSIpOwogfQpAQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcihK
U0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RO
b2RlIiksIHN0cmxlbigiVGVzdE5vZGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RO
b2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5vZGUiKTsKIH0KQEAgLTI2OSw3ICsy
NjksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmpl
Y3RDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiBKU1Rlc3RPYmo6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29w
ZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJH
bG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVjdCIpOwog
fQpAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2Jh
bFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RPYmplY3QiKSwgc3RybGVuKCJUZXN0T2Jq
ZWN0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmpl
Y3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0
T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3RPYmplY3QiKTsKIH0KQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRDb25zdHJ1Y3RvckdldAogICAgIHJldHVybiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9i
YWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dv
cmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudCIpOwogfQpAQCAtMzA0LDcgKzMwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dv
cmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0CiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQiKSwgc3RybGVuKCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50IikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xv
YmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIy
ZWI4YzliZmU5NTZmNGRiYzczMjAyYTFmNDI4Y2I1ZWZiZjg2OWEuLmVmM2NiYjBjYjVmOTJjOTQ2
NDVhOTliNjhjMjRlNTQ2YzhhZTY0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNw
cApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5nIEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1dvcmtsZXRHbG9iYWxTY29w
ZT47CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBKU1ZhbHVlIEpTV29ya2xldEdsb2JhbFNjb3BlOjpn
ZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJl
dHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2
bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrbGV0R2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXb3JrbGV0R2xvYmFsU2NvcGU6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IGU2
NTdjMDFjNDJjMTAxNmIxYjYyODg4ZjhkOGQ2ODI0MmRiYjRhMTMuLmY2ZTJlNzdjZmQ1MjZhZWE5
YjYzMDYxOTc3NTg4YTA3ZTc3NTBiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9v
YmpjX3J1bnRpbWUubW0KQEAgLTI0Niw3ICsyNDYsOSBAQCBib29sIE9iamNGYWxsYmFja09iamVj
dEltcDo6cHV0KEpTQ2VsbCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVl
LAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbE9iakNGYWxsYmFja09iamVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNhbGxPYmpDRmFsbGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTQzo6Vk0mIHZtID0gbGV4
aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNjEsNyArMjYzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbE9iakNGYWxsYmFja09iamVjdChKU0dsb2JhbE9iamVjdCogbGV4aWMKICAg
ICBPYmpjSW5zdGFuY2UqIG9iamNJbnN0YW5jZSA9IHJ1bnRpbWVPYmplY3QtPmdldEludGVybmFs
T2JqQ0luc3RhbmNlKCk7CiAKICAgICBpZiAoIW9iamNJbnN0YW5jZSkKLSAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2JqZWN0Ojp0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSkpOwogICAgIAogICAgIG9iamNJbnN0YW5jZS0+YmVnaW4oKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGVjMzU4OGZjNTY1OTU1M2Y1Mjcy
ODNjNThhNzM1ODAyMTMyOWFjNWQuLmJjNjhkNTA2MjgwZTE0ZjM1NDkxMmQ1OTJlYmU1YzU5MWNh
NmU0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTM5LDYg
KzM5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6
OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZUFycmF5KSB9OwogCitzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBhcnJheUxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVB
cnJheShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNBcnJheSh2bSwgc3Ry
dWN0dXJlLCBudWxscHRyKQogICAgICwgbV9hcnJheShudWxscHRyKQpAQCAtNjIsNyArNjQsNyBA
QCB2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nh
c3Q8UnVudGltZUFycmF5Kj4oY2VsbCktPlJ1bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGFycmF5TGVuZ3RoR2V0dGVy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTky
LDcgKzk0LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OmdldE93blByb3BlcnR5U2xvdChKU09iamVj
dCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEcKICAgICBWTSYgdm0gPSBsZXhpY2Fs
R2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzQ2Fz
dDxSdW50aW1lQXJyYXkqPihvYmplY3QpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJv
cGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRo
aXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCB0aGlzT2JqZWN0LT5s
ZW5ndGhHZXR0ZXIpOworICAgICAgICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSwgYXJyYXlMZW5ndGhHZXR0ZXIpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuaAppbmRleCAxZDdiNzBiN2YzOTYyZmNlODE2MTM3YmEyNmM0YzIyMjAyMGJlYTEz
Li4zYzRjN2U4NjEwNDgxNzU0MTRjMGZhZWUwMmMwYTlhOGM1ZjQ5YjlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAgLTg4LDcgKzg4LDYgQEAgY2xhc3MgUnVudGltZUFy
cmF5IGZpbmFsIDogcHVibGljIEpTQXJyYXkgewogICAgIFJ1bnRpbWVBcnJheShWTSYsIFN0cnVj
dHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBCaW5kaW5nczo6QXJyYXkqKTsK
IAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgSlNDOjpJc29TdWJz
cGFjZSogc3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mKTsKIAogICAgIEJpbmRpbmdzQXJyYXkqIG1f
YXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCAxODFh
NDY4ZTBiNmZkNzIxZDMzMmQ4ZjA0Y2YxYTNkZDFkMTY2ZTRjLi4yZTk4NTQ3MGQwNGJjMzQzOGU3
YmJmZGJlZjgwMTBlNWM0OTMxY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHAKQEAgLTQzLDcgKzQzLDggQEAgdXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwogCiBX
RUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAi
UnVudGltZU1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVudGltZU1ldGhvZCkgfTsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSdW50
aW1lTWV0aG9kKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG1ldGhvZExl
bmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
OwogCiBSdW50aW1lTWV0aG9kOjpSdW50aW1lTWV0aG9kKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIE1ldGhvZCogbWV0aG9kKQogICAgIC8vIENhbGxlcnMgd2lsbCBuZWVkIHRvIHBhc3Mg
aW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGlzIG5hdGl2ZSBv
YmplY3QgIm1ldGhvZCIuCkBAIC01OCw3ICs1OSw3IEBAIHZvaWQgUnVudGltZU1ldGhvZDo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBTdHJpbmcmIGlkZW50KQogICAgIEFTU0VSVChpbmhl
cml0cyh2bSwgaW5mbygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6Omxl
bmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG1ldGhvZExlbmd0
aEdldHRlcihKU0dsb2JhbE9iamVjdCogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02Niw3ICs2Nyw3IEBAIEVuY29kZWRKU1Zh
bHVlIFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogZXhlYywgRW5j
b2RlZEpTVmFsdWUKICAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxSdW50aW1lTWV0aG9kKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoIXRoaXNPYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPm1f
bWV0aG9kLT5udW1QYXJhbWV0ZXJzKCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVtYmVyKHRoaXNPYmplY3QtPm1ldGhvZCgpLT5udW1QYXJhbWV0ZXJzKCkpKTsKIH0KIAogYm9v
bCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgSlNH
bG9iYWxPYmplY3QqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCAmc2xvdCkKQEAgLTc0LDcgKzc1LDcgQEAgYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIFAKICAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8UnVudGltZU1ldGhvZCo+KG9iamVjdCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5w
cm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20o
dGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0sIHRoaXNPYmplY3Qt
Pmxlbmd0aEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmpl
Y3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBtZXRob2RMZW5ndGhHZXR0ZXIp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC04Niw3ICs4Nyw3IEBAIElz
b1N1YnNwYWNlKiBSdW50aW1lTWV0aG9kOjpzdWJzcGFjZUZvckltcGwoVk0mIHZtKQogICAgIHJl
dHVybiAmc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+cnVudGlt
ZU1ldGhvZFNwYWNlKCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lTWV0aG9k
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDMsNyArMTA0LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKICAgICAgICAgUnVudGltZU9iamVjdCogcnVudGltZU9iamVjdCA9IHN0YXRpY19j
YXN0PFJ1bnRpbWVPYmplY3QqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKICAgICAgICAgaW5zdGFu
Y2UgPSBydW50aW1lT2JqZWN0LT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAgICAgICAgIGlmICgh
aW5zdGFuY2UpIAotICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2Jq
ZWN0Ojp0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKSk7CisgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93UnVudGltZU9iamVjdEludmFsaWRB
Y2Nlc3NFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Ly8gQ2FsbGluZyBhIHJ1bnRpbWUgb2JqZWN0IG9mIGEgcGx1Z2luIGVsZW1lbnQ/CiAgICAgICAg
IGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNIVE1MRWxlbWVudD4odm0pKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRleCA2ZGMzNjY4Njc1NmU4Nzg5NDU5MjQyZmVkMWIw
MjI4ZmRjYzA3YjliLi5iNGI5ZTllZjczZmFlNDYyNjkxN2VmOWNiZTkzYTE5MmVmNjdjZDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApAQCAtNzQsOCArNzQsNiBAQCBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lTWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rp
b24gewogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEpTR2xv
YmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToKLSAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1
YnNwYWNlRm9ySW1wbChWTSYpOwogCiAgICAgQmluZGluZ3M6Ok1ldGhvZCogbV9tZXRob2Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA4MDUxZTZlYzNjNmMx
MjhkMmNlZjA1YTc0NjMwMWY4YzBkYjRjZmI4Li44OGIyZGU4NzVkZjFmYWFjMGRhMDgxZWNiZDFh
ODU5NWM5ZTlkODgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
QEAgLTM4LDYgKzM4LDEzIEBAIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKIFdFQkNPUkVfRVhQT1JU
IGNvbnN0IENsYXNzSW5mbyBSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJSdW50aW1lT2JqZWN0
IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShS
dW50aW1lT2JqZWN0KSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxs
UnVudGltZU9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsUnVu
dGltZUNvbnN0cnVjdG9yKTsKKworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
ZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZpZWxkR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBtZXRob2RHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKwogUnVudGltZU9iamVjdDo6UnVu
dGltZU9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8SW5zdGFuY2U+
JiYgaW5zdGFuY2UpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2luc3RhbmNl
KFdURk1vdmUoaW5zdGFuY2UpKQpAQCAtNjMsMTYgKzcwLDE2IEBAIHZvaWQgUnVudGltZU9iamVj
dDo6aW52YWxpZGF0ZSgpCiAgICAgbV9pbnN0YW5jZSA9IG51bGxwdHI7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZhbGxiYWNr
T2JqZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0
PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgUmVmUHRy
PEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5zdGFuY2U7CisgICAgUmVmUHRyPElu
c3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPmdldEludGVybmFsSW5zdGFuY2UoKTsKIAogICAg
IGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dJbnZh
bGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsKICAgICAKICAgICBpbnN0YW5jZS0+YmVnaW4o
KTsKIApAQCAtODQsMTYgKzkxLDE2IEBAIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZh
bGxiYWNrT2JqZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1l
T2JqZWN0OjpmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQogeyAgICAKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFJ1
bnRpbWVPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKLSAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09i
ai0+bV9pbnN0YW5jZTsKKyAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+
Z2V0SW50ZXJuYWxJbnN0YW5jZSgpOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBzY29wZSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93UnVu
dGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkp
OwogICAgIAogICAgIGluc3RhbmNlLT5iZWdpbigpOwogCkBAIC0xMDYsMTYgKzExMywxNiBAQCBF
bmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IG1ldGhvZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFZN
JiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2Fz
dDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIFJlZlB0
cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOworICAgIFJlZlB0cjxJ
bnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAKICAg
ICBpZiAoIWluc3RhbmNlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93SW52
YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CisgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CiAgICAgCiAgICAgaW5zdGFuY2UtPmJlZ2lu
KCk7CiAKQEAgLTEzMyw3ICsxNDAsNyBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbAogCiAgICAg
UnVudGltZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4ob2JqZWN0
KTsKICAgICBpZiAoIXRoaXNPYmplY3QtPm1faW5zdGFuY2UpIHsKLSAgICAgICAgdGhyb3dJbnZh
bGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICB0aHJv
d1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2Nv
cGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMTQ3LDE0ICsxNTQs
MTQgQEAgYm9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9i
amVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWwKICAgICAgICAgLy8gU2VlIGlmIHRoZSBpbnN0
YW5jZSBoYXMgYSBmaWVsZCB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZS4KICAgICAgICAgRmllbGQg
KmFGaWVsZCA9IGFDbGFzcy0+ZmllbGROYW1lZChwcm9wZXJ0eU5hbWUsIGluc3RhbmNlLmdldCgp
KTsKICAgICAgICAgaWYgKGFGaWVsZCkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhp
c09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUpLCB0aGlzT2JqZWN0LT5maWVsZEdldHRlcik7CisgICAgICAgICAgICBzbG90LnNl
dEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udERlbGV0ZSksIGZpZWxkR2V0dGVyKTsKICAgICAgICAgICAgIGluc3RhbmNl
LT5lbmQoKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgLy8gTm93IGNoZWNrIGlmIGEgbWV0aG9kIHdpdGggc3BlY2lmaWVkIG5hbWUgZXhp
c3RzLCBpZiBzbyByZXR1cm4gYSBmdW5jdGlvbiBvYmplY3QgZm9yCiAgICAgICAgICAgICAvLyB0
aGF0IG1ldGhvZC4KICAgICAgICAgICAgIGlmIChhQ2xhc3MtPm1ldGhvZE5hbWVkKHByb3BlcnR5
TmFtZSwgaW5zdGFuY2UuZ2V0KCkpKSB7Ci0gICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20o
dGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHksIHRoaXNPYmplY3QtPm1ldGhvZEdldHRlcik7CisgICAgICAgICAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHksIG1ldGhvZEdldHRlcik7CiAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwpAQCAtMTYzLDcgKzE3MCw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsCiAKICAgICAgICAgLy8gVHJ5IGEgZmFsbGJhY2sgb2JqZWN0LgogICAgICAgICBpZiAoIWFD
bGFzcy0+ZmFsbGJhY2tPYmplY3QobGV4aWNhbEdsb2JhbE9iamVjdCwgaW5zdGFuY2UuZ2V0KCks
IHByb3BlcnR5TmFtZSkuaXNVbmRlZmluZWQoKSkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0sIHRoaXNPYmpl
Y3QtPmZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRo
aXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBmYWxsYmFja09iamVj
dEdldHRlcik7CiAgICAgICAgICAgICBpbnN0YW5jZS0+ZW5kKCk7CiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMTgxLDcgKzE4OCw3IEBAIGJvb2wgUnVudGltZU9iamVj
dDo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IFByb3BlCiAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVP
YmplY3QqPihjZWxsKTsKICAgICBpZiAoIXRoaXNPYmplY3QtPm1faW5zdGFuY2UpIHsKLSAgICAg
ICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwor
ICAgICAgICB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAt
MjEzLDcgKzIyMCw3IEBAIEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZGVmYXVsdFZhbHVlKGNvbnN0
IEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpCiAKICAgICBjb25zdCBSdW50
aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PGNvbnN0IFJ1bnRpbWVPYmplY3QqPihvYmpl
Y3QpOwogICAgIGlmICghdGhpc09iamVjdC0+bV9pbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIHRo
cm93SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAg
ICAgcmV0dXJuIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSk7CiAgICAgCiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9
IHRoaXNPYmplY3QtPm1faW5zdGFuY2U7CiAKQEAgLTIyMyw3ICsyMzAsNyBAQCBKU1ZhbHVlIFJ1
bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZShjb25zdCBKU09iamVjdCogb2JqZWN0LCBKU0dsb2Jh
bE9iamVjdCogbGV4aQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxSdW50aW1lT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUtPmpzQ2FsbGVlKCktPmluaGVyaXRzPFJ1bnRpbWVPYmplY3Q+KGdsb2JhbE9iamVjdC0+
dm0oKSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2Uoc3RhdGljX2Nhc3Q8UnVudGlt
ZU9iamVjdCo+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSktPmdldEludGVybmFsSW5zdGFuY2UoKSk7
CkBAIC0yNDYsNyArMjUzLDcgQEAgQ2FsbERhdGEgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERhdGEo
SlNDZWxsKiBjZWxsKQogICAgIHJldHVybiBjYWxsRGF0YTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsUnVudGltZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3Rv
ciA9IGNhbGxGcmFtZS0+anNDYWxsZWUoKTsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVj
dCwgY29uc3RydWN0b3ItPmluaGVyaXRzPFJ1bnRpbWVPYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0o
KSkpOwpAQCAtMjgwLDcgKzI4Nyw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAKICAgICBS
dW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihvYmplY3Qp
OwogICAgIGlmICghdGhpc09iamVjdC0+bV9pbnN0YW5jZSkgewotICAgICAgICB0aHJvd0ludmFs
aWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHRocm93
UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29w
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI5MSw3ICsyOTgsNyBAQCB2b2lkIFJ1
bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9i
YWxPYmplY3QqIGxleGljYQogICAgIGluc3RhbmNlLT5lbmQoKTsKIH0KIAotRXhjZXB0aW9uKiBS
dW50aW1lT2JqZWN0Ojp0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCitFeGNlcHRpb24qIHRocm93UnVu
dGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCiB7CiAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1
Zy1pbi4iKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9v
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGU2
MTc3ZTVhMTdmY2Q1OWFkNjMzOGVlMWU2YzM2OTllMzIwY2ZmMTkuLjY1OTkxYzUxNTkzYWQ4OWFi
NWY3MDU4YjJkOWFlM2FjNmVmYjdiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29i
amVjdC5oCkBAIC0zMiw2ICszMiw4IEBACiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBCaW5k
aW5ncyB7CiAKK0V4Y2VwdGlvbiogdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9y
KEpTR2xvYmFsT2JqZWN0KiwgVGhyb3dTY29wZSYpOworCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBS
dW50aW1lT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVz
aW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0OwpAQCAtNjgsOCArNzAsNiBAQCBjbGFzcyBXRUJD
T1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAg
ICAgSW5zdGFuY2UqIGdldEludGVybmFsSW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2luc3Rh
bmNlLmdldCgpOyB9CiAKLSAgICBzdGF0aWMgRXhjZXB0aW9uKiB0aHJvd0ludmFsaWRBY2Nlc3NF
cnJvcihKU0dsb2JhbE9iamVjdCosIFRocm93U2NvcGUmKTsKLQogICAgIERFQ0xBUkVfSU5GTzsK
IAogICAgIHN0YXRpYyBPYmplY3RQcm90b3R5cGUqIGNyZWF0ZVByb3RvdHlwZShWTSYsIEpTR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBAIC04NywxMCArODcsNiBAQCBjbGFzcyBXRUJDT1JF
X0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmllbGRHZXR0ZXIo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNl
Rm9ySW1wbChWTSYpOwogCiAgICAgUmVmUHRyPEluc3RhbmNlPiBtX2luc3RhbmNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhv
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcAppbmRleCBmZDMwNGQzOGZiNzczY2MyYTBlY2I2MmZkN2IyZWY2Y2I2ZDFlNDEzLi5l
YjRhOTZlMTc5NGNiOGQ5MWVkMzlmMTVkM2Q0NWJmMDA5Njk0OGM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElC
TEUoSlNOUE1ldGhvZCk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7
ICJOUE1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNOUE1ldGhvZCkgfTsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE1ldGhvZCk7CiAKIEpTTlBN
ZXRob2Q6OkpTTlBNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIpCiAgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RydWN0dXJlLCBjYWxsTWV0aG9kLCBudWxscHRy
KQpAQCAtNjYsNyArNjYsNyBAQCBJc29TdWJzcGFjZSogSlNOUE1ldGhvZDo6c3Vic3BhY2VGb3JJ
bXBsKFZNJiB2bSkKICAgICByZXR1cm4gJnBlclZNLmdldCgpLmZvclZNKHZtKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhvZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjYWxsTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmlu
ZGV4IGUzZGU5MWE3ZDUxODMxM2I2YjY1MzNiZjAxYjBlNzM4MmI2MjBlNWIuLjY4MDQzMzE4OGQx
ZDEwM2NjOTk1MmEyNGM3MjllY2Q2MDc4NjJlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC0yMzks
NyArMjM5LDEwIEBAIEpTVmFsdWUgSlNOUE9iamVjdDo6Y2FsbENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhCiAgICAgcmV0dXJuIHZhbHVlOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxOUEpTT2JqZWN0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3Rvcik7CisKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjYWxsTlBKU09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU09iamVjdCogb2JqZWN0
ID0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpOwogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0
LCBvYmplY3QtPmluaGVyaXRzPEpTTlBPYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpOwpAQCAt
MjU5LDcgKzI2Miw3IEBAIENhbGxEYXRhIEpTTlBPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCog
Y2VsbCkKICAgICByZXR1cm4gY2FsbERhdGE7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdG9yID0g
Y2FsbEZyYW1lLT5qc0NhbGxlZSgpOwogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBj
b25zdHJ1Y3Rvci0+aW5oZXJpdHM8SlNOUE9iamVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409668</attachid>
            <date>2020-09-25 01:47:43 -0700</date>
            <delta_ts>2020-09-25 06:24:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216966-20200925014741.patch</filename>
            <type>text/plain</type>
            <size>1868374</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
Mzc3MzlkZGM1NGYxNjhjZDRmOTAwZTY1MTJjYzA3NmQyMTIxYmUxLi4zNjRmZjcwMTJiNzYwYWRh
Mjc4ZmRkY2E3MDk1Zjg4OGU4ZGFiYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDcwIEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04g
LyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRlZmluaXRp
b24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTiBhbmQgY2hhbmdlcyBo
b3cgdG8gZGVmaW5lIGhvc3QgZnVuY3Rpb25zLgorICAgICAgICBJbiB0aGUgbmV3IHdheSwgd2Ug
ZGVjbGFyZSBhIGZ1bmN0aW9uIGxpa2UsCisKKyAgICAgICAgICAgIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25IZWxsb1dvcmxkKTsKKworICAgICAgICBBbmQgZGVmaW5lIHRoZSBm
dW5jdGlvbiBsaWtlLAorCisgICAgICAgICAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25IZWxsb1dvcmxkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9u
IGJvZHkuCisgICAgICAgICAgICB9CisKKyAgICAgICAgVGhpcyBtYWtlcyBhZGRpbmcgc29tZSBt
ZXRhIGluZm9ybWF0aW9uIHRvIGVhY2ggZnVuY3Rpb24gZWFzeSwgd2hpY2ggaGVscHMgSklULWNh
Z2luZyB0byBjb2xsZWN0IGFsbG93ZWQgZnVuY3Rpb24gcG9pbnRlcnMuCisKKyAgICAgICAgKiBB
UEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24p
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU0NhbGxiYWNrQ29uc3RydWN0
b3IpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxs
SlNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNO
b25GaW5hbE9iamVjdD46OmdldENvbnN0cnVjdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlND
YWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAg
IChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5j
dGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmdldENhbGxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsSW1wbCk6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y29uc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW06Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNh
bGxPYmpDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVj
dE9iakNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvZ2xpYi9KU0FQ
SVdyYXBwZXJHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3Ry
dWN0RnVuY3Rpb24pOgorICAgICAgICAqIEFQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIu
Y3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46
OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0NhbGxiYWNrRnVu
Y3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjYWxsSlNDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdEpTQ0NhbGxiYWNrRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZVNhdmVkUmVzdWx0QWxpYXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUpOiBE
ZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0
b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9y
Ojpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcyk6IERlbGV0
ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25XZWFrU2V0U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
dGVyYXRvckVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMpOiBEZWxldGVkLgorICAg
ICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVl
cnlIb2xkZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvblN1YnR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldElu
dGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxG
cmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24pOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKElu
c3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQpOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlQ29sdW1uKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3Bl
Y3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbik6IERlbGV0ZWQu
CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJh
bWVBdHRyaWJ1dGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2Ny
aXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCk6IERlbGV0ZWQuCisgICAgICAgICoganNjLmNwcDoK
KyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChmdW5jdGlvblBy
aW50U3RkT3V0KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25EZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
bkRlc2NyaWJlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNsZWVwU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkpTQ1N0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uR0NBbmRTd2Vl
cCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZ1bGxHQyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkVkZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBTaXplKTog
RGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrKTogRGVsZXRlZC4KKyAg
ICAgICAgKGZ1bmN0aW9uQWRkcmVzc09mKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uVmVy
c2lvbik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblJ1bik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJ1blN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVhZEZpbGUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DaGVja1N5bnRh
eCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpOiBEZWxldGVkLgorICAgICAg
ICAoZnVuY3Rpb25HZXRSYW5kb21TZWVkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzUm9wZSk6IERlbGV0ZWQu
CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJlYWRsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJlY2lzZVRp
bWUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uTm9ERkcpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Ob0ZUTCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChmdW5jdGlvbkNhbGxlcklzT01HQ29tcGlsZWQpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckV2YWxTY3JpcHQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9hZGNhc3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Eb2xsYXJBZ2VudEdldFJlcG9ydCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckFnZW50TGVhdmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50TW9u
b3RvbmljTm93KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uV2FpdEZvclJlcG9ydCk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkZsYXNoSGVhcEFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRp
c2FibGVSaWNoU291cmNlSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1hbGxvY0lu
QUxvb3ApOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSlNDT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChm
dW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblRyYW5zZmVyQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25GYWls
TmV4dE5ld0NvZGVCbG9jayk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblF1aXQpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25GYWxzZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blVuZGVmaW5lZDEpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25VbmRlZmluZWQyKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSXNJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbklzUHVyZU5hTik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklkZW50aXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRWZmZWN0ZnVsNDIpOiBEZWxldGVkLgorICAgICAgICAo
ZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DYWxs
TWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25IYXNDdXN0b21Qcm9wZXJ0
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVz
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uU2V0VGltZW91dCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blJlbGVhc2VXZWFrUmVmcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZpbmFsaXphdGlv
blJlZ2lzdHJ5TGl2ZUNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRmluYWxpemF0
aW9uUmVnaXN0cnlEZWFkQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25JczMyQml0
UGxhdGZvcm0pOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3Qp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Vc2VCaWdJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzQmlnSW50MzIp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Jc0hlYXBCaWdJbnQpOiBEZWxldGVkLgorICAg
ICAgICAoZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbkVuc3VyZUFycmF5U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblN0YXJ0
U2FtcGxpbmdQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNhbXBsaW5nUHJv
ZmlsZXJTdGFja1RyYWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1heEFyZ3VtZW50
cyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQXN5bmNUZXN0UGFzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1
bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9u
U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Bc0RvdWJsZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxBcnJh
eUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlDb25zdHJ1Y3RvclBy
aXZhdGVGdW5jSXNBcnJheVNsb3cpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwZWNpZXNDcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVBy
b3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9p
bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNQb3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1B1
c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JldmVyc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFy
cmF5UHJvdG9GdW5jU3BsaWNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1
bmNVblNoaWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9m
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNw
eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFzeW5jRnVuY3Rp
b25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVjdEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0F0b21p
Y3NPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjphdG9taWNzRnVuY0FkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0
b21pY3NGdW5jQW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNDb21wYXJl
RXhjaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY0V4Y2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNJc0xvY2tGcmVlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNMb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
YXRvbWljc0Z1bmNPcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jU3RvcmUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY1N1Yik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmF0b21pY3NGdW5jV2FpdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21p
Y3NGdW5jV2FrZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jWG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEJpZ0lu
dENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50Q29uc3RydWN0b3JG
dW5jQXNVaW50Tik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0ludENvbnN0cnVjdG9yRnVu
Y0FzSW50Tik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjpiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0lu
dFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50
UHJvdG9GdW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Y29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1RvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1ZhbHVlT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNEZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNXYXJuKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVu
Y0Rpcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNEaXJYTUwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGFibGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVHJhY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0NvdW50UmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5j
UHJvZmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNQcm9maWxl
RW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWVFbmQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY1JlY29yZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNSZWNv
cmRFbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hv
dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbERh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkYXRlTm93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVVUQyk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvVVRDU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2wpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRVVENGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRV
VENNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRN
aW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0
ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY1NldFNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNTZXRNaW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ01pbnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0
SG91cnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0RGF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNTZXRVVENEYXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldE1vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY1NldEZ1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Nl
dFllYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0pTT04pOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjYWxsRXJyb3JDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChKU0M6OmVycm9yUHJvdG9GdW5jVG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0
cnVjdEZpbmFsaXphdGlvblJlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jRmluYWxpemF0aW9uUmVn
aXN0cnlSZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnByb3RvRnVuY0ZpbmFsaXph
dGlvblJlZ2lzdHJ5VW5yZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvblBy
b3RvdHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmNhbGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjppbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2cpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsQ29sbGF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bENvbGxhdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkludGxDb2xsYXRvckZ1bmNDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50
bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bERh
dGVUaW1lRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0
Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dEZ1bmNGb3JtYXREYXRlVGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsRGlzcGxheU5h
bWVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEludGxEaXNwbGF5TmFtZXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRs
TG9jYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEludGxMb2NhbGUpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bExvY2FsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxMb2NhbGVQ
cm90b3R5cGVGdW5jTWF4aW1pemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxl
UHJvdG90eXBlRnVuY01pbmltaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bExvY2Fs
ZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxM
b2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1lcmljKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bE51bWJlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJG
b3JtYXRGdW5jRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjppbnRsT2JqZWN0RnVuY0dldENh
bm9uaWNhbExvY2FsZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsSW50bFBsdXJhbFJ1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3Jt
YXRUb1BhcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1h
dFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50SXRlcmF0b3JQ
cm90b3R5cGVGdW5jTmV4dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsU2VnbWVu
dGVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsU2VnbWVudGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y2FsbEludGxTZWdtZW50ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsU2VnbWVudGVyQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bFNlZ21lbnRlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50ZXJQ
cm90b3R5cGVGdW5jU2VnbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxTZWdtZW50
ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmND
b250YWluaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFNlZ21lbnRzUHJvdG90eXBl
RnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNhbGxBcnJheUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEFycmF5QnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0
U2hhcmVkQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheUJ1ZmZlckZ1
bmNJc1ZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjphcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym91bmRUaGlz
Tm9BcmdzRnVuY3Rpb25DYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym91bmRGdW5jdGlv
bkNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNv
bnN0cnVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJvdW5kRnVuY3Rpb25Db25zdHJ1Y3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpkYXRh
Vmlld1Byb3RvR2V0dGVyQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvR2V0dGVyQnl0ZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJv
dG9GdW5jR2V0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5j
R2V0SW50MTYpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldElu
dDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50OCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MzIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0NjQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFW
aWV3UHJvdG9GdW5jU2V0VWludDgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvRnVuY1NldFVpbnQxNik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9G
dW5jU2V0VWludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcmd1
bWVudHNHZXR0ZXIpOgorICAgICAgICAoSlNDOjpjYWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlND
OjpjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmNhbGxlckdldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKToKKyAg
ICAgICAgKEpTQzo6Y2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGwpOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY1NldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdElu
ZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9m
ZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1JldmVyc2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY1NvcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjptYWtlQm91bmRGdW5jdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omhhc093bkxlbmd0aFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y3JlYXRlUHJpdmF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFz
c2VydENhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplbmFibGVTYW1wbGluZ1Byb2ZpbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjplbmFibGVTdXBlclNhbXBsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkaXNhYmxlU3VwZXJTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZW5x
dWV1ZUpvYik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6Omdsb2JhbEZ1bmNFdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFs
RnVuY1BhcnNlSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNlRmxv
YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRGVjb2RlVVJJKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFbmNvZGVVUkkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY0VzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNV
bmVzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0NhbGxlZUFuZENhbGxlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNN
YWtlVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvU2V0dGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jQnVpbHRpbkxvZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY093bktleXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5j
RGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bW9k
dWxlTG9hZGVyUGFyc2VNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJSZXF1ZXN0ZWRNb2R1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVy
TW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1vZHVsZUxvYWRl
clJlc29sdmVTeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyRmV0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cnVuU3Rk
RnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkpT
T05Qcm90b0Z1bmNQYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT05Qcm90b0Z1bmNT
dHJpbmdpZnkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpvYmpl
Y3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
SXNUeXBlZEFycmF5Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc05ldXRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY0xlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJy
YXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRl
T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNS
ZXZlcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y1N1YmFycmF5Q3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5
cy5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZVVpbnQ4VHlwZWRBcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxNYXApOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RNYXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQ
cml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2
YXRlRnVuY01hcEJ1Y2tldE5leHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2YXRl
RnVuY01hcEJ1Y2tldEtleSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hcFByaXZhdGVGdW5j
TWFwQnVja2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Om1hcFByb3RvRnVuY0Ns
ZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jRGVsZXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jR2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWFwUHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5j
U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hcFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcm90
b0Z1bmNTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpt
YXRoUHJvdG9GdW5jQWJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0FD
b3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNpbik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNBVGFuKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWF0aFByb3RvRnVuY0FUYW4yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0NlaWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2x6MzIpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ29zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQ
cm90b0Z1bmNGbG9vcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNIeXBv
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bWF0aFByb3RvRnVuY01pbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNQ
b3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jUmFuZG9tKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1JvdW5kKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6bWF0aFByb3RvRnVuY1NpZ24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJv
dG9GdW5jU2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1NxcnQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0lNdWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRo
UHJvdG9GdW5jQUNvc2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNp
bmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVRhbmgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2JydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hdGhQcm90b0Z1bmNDb3NoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0V4cG0xKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0Zyb3VuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxMCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Om1hdGhQcm90b0Z1bmNMb2cyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVu
Y1NpbmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuaCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNUcnVuYyk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKEpTQzo6Y2FsbEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxSYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0UmFuZ2VFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxSZWZlcmVuY2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2Fs
bFN5bnRheEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0U3ludGF4RXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsVHlwZUVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFVSSUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0VVJJRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxHZXR0
ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
SlNDOjpOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1
cm5VbmRlZmluZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25J
bnRlcm5hbDo6Y2FsbFRocm93RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9FeHBv
bmVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvRml4ZWQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6b2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JLZXlzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JBc3NpZ24pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9i
amVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVj
dENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0
Q29uc3RydWN0b3JJc0Zyb3plbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdENvbnN0
cnVjdG9ySXNFeHRlbnNpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3Ry
dWN0b3JJcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5j
VmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0hhc093blBy
b3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5
cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZUdldHRl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAoSlNDOjptYWtlUmV2b2NhYmxlUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RQcm94eU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNhbGxQcm94eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OnBlcmZvcm1Qcm94eUNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwZXJmb3JtUHJveHlD
b25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpw
ZXJmb3JtUHJveHlSZXZva2UpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OnJlZmxlY3RPYmplY3RDb25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpy
ZWZsZWN0T2JqZWN0R2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVmbGVjdE9iamVjdEdl
dE93blByb3BlcnR5RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RP
YmplY3RHZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmpl
Y3RJc0V4dGVuc2libGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0T3du
S2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5z
aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RTZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjplc1NwZWNSZWdFeHBDcmVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplc1NwZWNJc1JlZ0V4cCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNhbGxSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpyZWdFeHBQcm90b0Z1bmNFeGVjKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhw
UHJvdG9GdW5jTWF0Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9G
dW5jQ29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1RvU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlckZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9H
ZXR0ZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTZWFy
Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0
ZUZ1bmNTZXRCdWNrZXRIZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1
bmNTZXRCdWNrZXROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1bmNT
ZXRCdWNrZXRLZXkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0FkZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c2V0UHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jU2l6
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY1ZhbHVlcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUpOgorICAg
ICAgICAoSlNDOjpzdHJpbmdGcm9tQ29kZVBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFyY2gpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJBdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0
cmluZ1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpidWlsdGluU3Ry
aW5nSW5kZXhPZkludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNT
bGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY1RyaW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNUcmltU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNUcmltRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3RhcnRz
V2l0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6
CisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxTeW1ib2wpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RTeW1ib2wpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpzeW1ib2xDb25zdHJ1Y3RvckZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN5
bWJvbENvbnN0cnVjdG9yS2V5Rm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYWtNYXApOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RXZWFrTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dl
YWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OnByb3RvRnVuY1dlYWtNYXBIYXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNX
ZWFrTWFwU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtPYmplY3RSZWZDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChKU0M6OmNhbGxXZWFrUmVmKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0V2Vha1JlZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrT2JqZWN0UmVmUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1JlZkRlcmVmKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxXZWFrU2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0V2Vha1NldCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1NldERlbGV0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnByb3RvRnVuY1dlYWtTZXRIYXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpwcm90b0Z1bmNXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0b29scy9KU0Rv
bGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNyYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25CcmVha3BvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25ERkdUcnVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6ZnVuY3Rpb25GVExUcnVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVu
Y3Rpb25DcHVNZmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNwdVJkdHNj
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcHVDcHVpZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1UGF1c2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNwdUNsZmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkxMaW50
VHJ1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Ob0lubGluZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uR0MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkVk
ZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJvbm91
c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNhbGxGcmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ29kZUJsb2NrRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNvZGVCbG9ja0Zvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFNvdXJjZUZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVt
cEJ5dGVjb2RlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EYXRhTG9nKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25QcmludCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uRHVtcENhbGxGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFN0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wUmVn
aXN0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wQ2VsbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSW5kZXhpbmdNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25JbmxpbmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmZ1bmN0aW9uVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldFBJRCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSGF2ZUFCYWRUaW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZnVuY3Rpb25DcmVhdGVQcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3Jl
YXRlUnVudGltZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVO
dWxsUm9wZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlSW1w
dXJlR2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVDdXN0b21H
ZXR0ZXJPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rp
b25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6ZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNz
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1Np
ZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uQ3JlYXRlUm9vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRl
RWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR2V0RWxlbWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU2ltcGxlT2JqZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25SZXR1cm5UeXBlRm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVu
SWRsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9k
ZVdoZW5JZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EZWxldGVBbGxDb2Rl
V2hlbklkbGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdsb2JhbE9iamVjdENv
dW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldEdldHRlclNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJT
ZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRl
cmZsaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DdXJyZW50Q1BVVGltZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG90YWxHQ1RpbWUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblBhcnNlQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldENvbmN1cnJlbnRseSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbklDVVZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklDVUhlYWRlclZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5j
dGlvbkFzc2VydEVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbklzTWVt
b3J5TGltaXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVXNlSklUKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25hcnkpOiBEZWxldGVk
LgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGls
ZUZ1bmMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVu
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3RyZWFtaW5n
SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUdsb2JhbCk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJvdG9G
dW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJv
dG9HZXR0ZXJGdW5jVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUds
b2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OndlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlN
ZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSlNXZWJBc3NlbWJseU1lbW9yeSk6
IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3Jvdyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseU1v
ZHVsZUN1c3RvbVNlY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlN
b2R1bGVJbXBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlNb2R1bGVF
eHBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3NlbWJseU1v
ZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseVRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEpTV2Vi
QXNzZW1ibHlUYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24pOiBEZWxldGVkLgorCiAyMDIwLTA5LTI0ICBCYXN1a2Ug
U3V6dWtpICA8YmFzdWtlLnN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbUGxheVN0YXRpb25d
IFN0b3AgcmFpc2luZyBTSUdQSVBFIHdoZW4gY2xpZW50IHNpZGUgb2YgUmVtb3RlSW5zcGVjdG9y
IGRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggYWI4MDIwNTY2YjA0M2U2NTE3MGViNzZkYjQyNzk1MGZiNTk2ZTIyMC4uZDNk
NTMzNWQ4ZDM3MWQ2ZDIwYWRmY2Q1MTFlOTkxYWZiZmM0OGY1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAyMC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAg
ICAgIFtKU0NdIEludHJvZHVjZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OIC8gSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OIHRvIG1ha2UgaG9zdCBmdW5jdGlvbiBkZWZpbml0aW9uIGVhc3ktdG8t
c2Nhbm5lZCBmb3IgSklULWNhZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE2OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIEpTQ19IT1NUX0NBTEwgdG8gSlNDX0hPU1RfQ0FMTF9BVFRS
SUJVVEUsIGFuZCBpbnRyb2R1Y2UgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTi4KKyAgICAgICAgV2UgYWxzbyBpbnRyb2R1Y2UgSlNDX0FOTk9UQVRF
X0hPU1RfRlVOQ1RJT04gaWYgdGhlIGZ1bmN0aW9uIGlzIG5vdCBkZWZpbmVkIGFzIGZyZWUtZnVu
Y3Rpb25bMV0uCisKKyAgICAgICAgWzFdOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0
aW9ucy80ODYxOTE0L3doYXQtaXMtdGhlLW1lYW5pbmctb2YtdGhlLXRlcm0tZnJlZS1mdW5jdGlv
bi1pbi1jCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaDoKKwog
MjAyMC0wOS0yNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAg
W0xGQ11bSW50ZWdyYXRpb25dIEVuYWJsZSBvbiBBcHBsZSBXaW5kb3dzIHBvcnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBhMDk1ZTVmYWE0NTNjYzJlMWZhOGRjYTI3MDc5MGM3ZjRkMGViZGI0Li45ZGVhNDFhNjI4
MjI0ZTk0NGI2NTYxNTk4M2VkMDhmZDk3M2M1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMw
NyBAQAorMjAyMC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtKU0NdIEludHJvZHVjZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OIC8gSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OIHRvIG1ha2UgaG9zdCBmdW5jdGlvbiBkZWZpbml0aW9uIGVhc3kt
dG8tc2Nhbm5lZCBmb3IgSklULWNhZ2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE2OTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLiBXZSBhbHNvIGFubm90YXRlIGN1
c3RvbSBnZXR0ZXJzIC8gc2V0dGVycyB3aXRoIEpJVF9PUEVSQVRJT04gc2luY2UgdGhleSBjYW4g
YmUgaW52b2tlZCBmcm9tIEpJVCBjb2RlLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01C
dWlsdGluQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NQnVpbHRpbkNvbnN0
cnVjdG9yPEpTQ2xhc3M+Ojpjb25zdHJ1Y3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FsbFRocm93VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VUaGlzVHlwZUVycm9yRm9yQnVp
bHRpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6bWFrZUdldHRlclR5cGVFcnJvckZv
ckJ1aWx0aW5zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om1ha2VET01FeGNlcHRpb25G
b3JCdWlsdGlucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1JlYWRhYmxlQnl0ZVN0
cmVhbUFQSUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNXcml0YWJsZVN0
cmVhbUFQSUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6d2hlblNpZ25hbEFi
b3J0ZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6Okl0ZXJhdG9yVHJhaXRzPjo6bmV4dCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb24uaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRv
d1dlYktpdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNhbGxQbHVnaW4pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1N0cnVjdHVyZWRDbG9uZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6Y2xvbmVBcnJheUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlcik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlclZpZXcpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChH
ZW5lcmF0ZUF0dHJpYnV0ZUdldHRlclRyYW1wb2xpbmVEZWZpbml0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQXR0cmlidXRlU2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24pOgorICAgICAgICAoR2Vu
ZXJhdGVPcGVyYXRpb25UcmFtcG9saW5lRGVmaW5pdGlvbik6CisgICAgICAgIChHZW5lcmF0ZURl
ZmF1bHRUb0pTT05PcGVyYXRpb25EZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlTGVnYWN5
Q2FsbGVyRGVmaW5pdGlvbnMpOgorICAgICAgICAoR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0
aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSXRlcmFibGVEZWZpbml0aW9uKToKKyAgICAgICAgKEdl
bmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucyk6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2lu
ZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09O
RmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdp
bmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5k
b3dUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
RE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNF
eHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChX
ZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1JlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTU2V0TGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6cHJvdG90eXBl
Rm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5j
dGlvbkV4Y2l0aW5nRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rp
b25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNBdHRy
aWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VSZWFj
dGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VS
ZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0
dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VS
ZWFjdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENhbGxUcmFjZXJDb25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENh
bGxUcmFjZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDYWxsVHJh
Y2VyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRy
YWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aEFyZ3Vt
ZW50cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9w
ZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJs
ZVZhcmlhbnRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxs
VHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFy
Z3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJQcm90
b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRBcmd1bWVudCk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENsYXNz
V2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQ3VzdG9tQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRp
YWwpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1p
eGluT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlv
bmFsT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVS
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
UnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVVuZm9yZ2VhYmxlUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RET01KSVRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RET01KSVRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRBbnlB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJvb2xlYW5BdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJ5dGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVE9jdGV0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRTaG9y
dEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUTG9uZ0F0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklU
VW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklURmxv
YXRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVREb3VibGVBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0RE9NSklURG9tU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
T01KSVRVc3ZTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVE5vZGVB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklURG91YmxlTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25HZXRBdHRyaWJ1dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5
SWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRFbGVtZW50c0J5TmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZh
dWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0
U3RyaW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05T
ZWNvbmRMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05TZWNvbmRMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1
bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJl
c3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVs
dFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFs
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZy
b3plbkFycmF5QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pT
T05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZh
Y2VTZXF1ZW5jZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9K
U09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1
bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0
ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90
eXBlRnVuY3Rpb25Ub0pTT04pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25n
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1
bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVGb28pOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVCYXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQ
cm90b3R5cGVGdW5jdGlvblRvSlNPTik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25Qb3N0TWVzc2FnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
b21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk6IERlbGV0ZWQu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRp
bmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFi
bGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVkQnlT
ZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJs
ZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEVuYWJsZWRGb3JDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudFRhcmdldENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEV4Y2VwdGlvbk5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQ
cml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5k
b3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RE
T01XaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmpl
Y3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9i
YWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RE9NSklUQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0
YW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFs
T2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9i
amVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RM
ZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1l
bW9yeUNvc3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RXb3Jr
bGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJPcGVyYXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25T
dGF0aWMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNp
ZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZp
Y1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4
ZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIx
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhp
bkNvbXBsZXhPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29u
ZGl0aW9uYWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9u
RnJvbVBhcnRpYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QxKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VMZWFk
aW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seSk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SXRlcmFibGVQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20pOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldD
dXN0b20pOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rp
b25UZXN0Q3VzdG9tRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpj
b25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1
bmN0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmlu
Z0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNl
dHRlclN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2Rl
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVG
dW5jdGlvblZvaWRPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9u
U3RhdGljT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0p
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBM
aWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TWFwTGlrZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblNldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZFNldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5j
dGlvbk5hbWVkRGVsZXRlcik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRH
ZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uR2V0dGVyTmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVk
U2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3I6OnByb3RvdHlwZUZv
clN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVu
Zm9yZ2VhYmxlT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5v
ZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlTmFtZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROb2RlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
R2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJp
ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialJlYWRPbmx5U3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWFk
T25seVRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9y
U3RhdGljUmVhZE9ubHlMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNvbnN0cnVjdG9yVGVzdFN1Yk9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25z
dHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpFbnVtQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbnVtQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RPYmpCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpPY3RldEF0
dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqT2N0ZXRBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialNob3J0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2xhbXBlZFNob3J0
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTG9uZ0F0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakxvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RP
YmpVbnNpZ25lZExvbmdMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
bmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ0F0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqVXN2c3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialRlc3RPYmpBdHRy
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialVuZm9yZ2VhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0
clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialN0cmluZ09ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
U3RyaW5nT2JqUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdO
dWxsYWJsZU9ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqU3Ry
aW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0
cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpEaWN0aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpEaWN0
aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25h
cnlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFy
eUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25B
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9u
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2Vx
dWVuY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVt
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpNZWRpYURldmljZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqWE1MT2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpYTUxPYmpBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZs
ZWN0ZWRJbnRlZ3JhbEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVj
dGVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJl
ZmxlY3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZVN0YXRpYyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
VHlwZWRBcnJheUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVHlwZWRBcnJh
eUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ3VzdG9tQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iak9uZm9vKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9uZm9vKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak9ud2Via2l0Zm9vKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iak9ud2Via2l0Zm9vKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialdp
dGhFeGVjU3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoQ2Fs
bFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI2Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTEpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakFueUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqT2JqZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9iamVj
dEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTXV0YWJsZVBvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpTdHJhd2JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmF3YmVy
cnkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqRGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqSWQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqSWQp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqSGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpO
dWxsYWJsZURvdWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxs
YWJsZUxvbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVC
b29sZWFuQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlU3Ry
aW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlTG9uZ1Nl
dHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxh
YmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1U
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQ
cm9taXNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialRlc3RSZWFkT25s
eVByb21pc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051
bGxhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialN0cmluZ2lmaWVy
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0
cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0FuZFdvcmtlckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmNhbGxKU1Rlc3RPYmopOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uU3RhdGljKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVh
dHVyZUVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2Vj
cmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVm
aW5lZE1ldGhvZFdpdGhBcmdzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9k
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T2N0ZXRNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
YmpNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpJ
bnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxs
QXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0
cmluZ01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNp
YWxNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEVudW1BcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51
bGxhYmxlQnl0ZVN0cmluZ0FyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9k
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
UHVibGljQW5kUHJpdmF0ZU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVy
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aEV4ZWNTdGF0ZVZvaWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRB
cmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0Fu
ZE9wdGlvbmFsQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsQXRvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxTdHJpbmdJc051bGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0Vt
cHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nSXNFbXB0eVN0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91Ymxl
SXNOYU4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbG9hdElzTmFOKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xv
bmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2ln
bmVkTG9uZ0xvbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU2VxdWVuY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHkpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxCb29sZWFuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbklzRmFsc2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBbnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxOdWxsYWJsZVdyYXBwZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5v
bkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFy
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5k
Q2FsbGJhY2tGdW5jdGlvbkFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQW5kT3B0aW9uYWxB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RX
aXRoQ2FsbGJhY2tBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE1ldGhvZDMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBh
cmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0
aW5ndWlzaGluZ1VuaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlv
bmFsVW5pb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25D
bGFzc01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZDEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRp
b25hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5n
ZU9uT3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNW
R0RvY3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5j
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9yYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRp
Y05vZGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9uTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VPdmVybG9hZGVkRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0
aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
VGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlz
ZUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE92ZXJsb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
cGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1l
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTGVnYWN5Q2FsbGVyTmFtZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
VmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRv
d0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9u
YWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVu
Y2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OmNvbnN0
cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRQcm9taXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFJlYXNvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJl
YWRPbmx5TWFwTGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RSZWFkT25seU1hcExp
a2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3RDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVBvcnRzKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dFNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNBZGQpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0FkZCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
Q2xlYXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25J
ZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25J
bXBsZW1lbnRlZEFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlv
bklkZW50aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclJlYWRP
bmx5QXR0cmlidXRlSWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkT25s
eUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0
dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnND
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9u
Z0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2Ny
aXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRl
c3RTdWJPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXApOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xh
bXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWYpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNC
dWZmZXJTb3VyY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQnVm
ZmVyU291cmNlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc0RvbVRpbWVT
dGFtcEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3Rh
bXBBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
U2V0U2hhZG93KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VB
cmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxh
Ymxlc0FyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
RnVuY1dpdGhDbGFtcCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0T2Jq
ZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNXb3JrZXJHbG9iYWxTY29w
ZVRlc3RPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29u
c3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5TGVuZ3RoR2V0
dGVyKToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6Omxlbmd0aEdldHRlcik6IERlbGV0ZWQuCisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwOgorICAgICAgICAoSlNDOjptZXRob2RMZW5ndGhHZXR0ZXIpOgorICAgICAgICAo
SlNDOjpSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjps
ZW5ndGhHZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsUnVudGltZU1ldGhvZCk6
IERlbGV0ZWQuCisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmZhbGxi
YWNrT2JqZWN0R2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmZpZWxkR2V0dGVyKToK
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6Om1ldGhvZEdldHRlcik6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6cHV0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OlJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZSk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGlt
ZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjp0
aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IpOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6UnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxSdW50aW1lT2JqZWN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxSdW50aW1lQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6dGhyb3dJbnZh
bGlkQWNjZXNzRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVj
dC5oOgorCiAyMDIwLTA5LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIG1vcmUgaW5saW5lIGluaXRpYWxpemF0aW9uIGFuZCBjb25zdGV4cHIgaW4gV2Vi
QXVkaW8gY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCA1YzEzZWQzYThkOTA0Y2NjYWVlMGMwMWNiM2IzMzE3Mjll
ZjI1YTRkLi44MDYxYWU0ZTJjYmU0NTBmMzM5Zjk2NWRkZWZkM2I2NjljZGFlNzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04gLyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRl
ZmluaXRpb24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QTWV0aG9kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKFdlYktpdDo6Y2FsbE1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAo
V2ViS2l0OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViS2l0OjpjYWxs
TlBKU09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OmNvbnN0cnVjdFdpdGhDb25z
dHJ1Y3Rvcik6IERlbGV0ZWQuCisKIDIwMjAtMDktMjQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5l
X2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2hUcmFjZXI6IGNvbS5hcHBsZS5XZWJL
aXQuTmV0d29ya2luZyBpbiBOZXR3b3JrU2Vzc2lvbjo6Zmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFp
bigpIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFw
cGVyT2JqZWN0Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmpl
Y3QubW0KaW5kZXggZTI5ZmFmOWY4Y2VkY2E3NmVkYWNlMzJhZmQwMTRjZGUwYWY1MjRmZC4uMzg4
MWVmNmQ0ZTdlMWRkYWQwYWY5ZWFjYWYwNzAxMTYxMjA2NTQ0NSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0FQSVdyYXBwZXJPYmplY3QubW0KQEAgLTY3LDEwICs2NywyNCBA
QCBib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OgogfQogCiBuYW1lc3BhY2UgSlNDIHsKLSAgICAKKwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0KTsKKwogdGVtcGxhdGUgPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6c19pbmZvID0g
eyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwordGVtcGxhdGUgPD4gY29u
c3QgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRzRGVzdHJ1
Y3Rpb24gPSB0cnVlOworCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFj
a09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpnZXRDYWxsRnVuY3Rpb24oKQoreworICAgIHJl
dHVybiBjYWxsSlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CiAKLXRlbXBsYXRl
PD4gY29uc3QgYm9vbCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRz
RGVzdHJ1Y3Rpb24gPSB0cnVlOwordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQor
eworICAgIHJldHVybiBjb25zdHJ1Y3RKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsK
K30KIAogdGVtcGxhdGUgPD4KIFN0cnVjdHVyZSogSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBw
ZXJPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHByb3RvKQpAQCAtMTE4LDYgKzEzMiwxNiBAQCBJc29TdWJzcGFjZSog
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpzdWJzcGFjZUZvckltcGwoVk0m
IHZtLCBTdWJzcAogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBK
U0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNhbGxJbXBsKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
QVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8vIEpTQ19PQkpDX0FQ
SV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJh
Y2tDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggN2YyOTlkYTk1NWI2NWM3OWU0ODdiN2ZhN2NhZThkMzU3NDQ4
NWZlYi4uNDg3Nzc4ODkzMGVlNDJmZGFiMzU4NzU5ZGJmNzE0MmYwMzZhMzNiYSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcApA
QCAtNjEsNyArNjEsOSBAQCB2b2lkIEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6ZGVzdHJveShKU0Nl
bGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8SlNDYWxsYmFja0NvbnN0cnVjdG9yKj4oY2VsbCkt
PkpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcjo6fkpTQ2FsbGJhY2tDb25zdHJ1Y3RvcigpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU0NhbGxiYWNrQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NhbGxiYWNr
Q29uc3RydWN0b3IpOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNDYWxs
YmFja0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1
Y3RJbXBsPEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3Bw
CmluZGV4IDYwYjcyNzZiODFiMDVkOTEzZDllYzRmMmRjNTNhZDE4YTRkMGU3YzAuLjIxZGNiMmVi
OTkyNmJkMzhjMjE3NWNmZDUxMTk5ZWQzYzViNDA4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTM1LDcgKzM1LDkgQEAgU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbik7
CiAKIGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxi
YWNrRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tGdW5jdGlvbikgfTsKIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTQ2FsbGJhY2tGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQ2FsbGJhY2tGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gQVBJ
Q2FsbGJhY2tGdW5jdGlvbjo6Y2FsbEltcGw8SlNDYWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmNwcAppbmRleCBhODJmYWExZmFmODhlNzY4NGM2NTVjOWE2MDY4OTU2YzdjY2U2
OGE5Li5mYjQ2YTU1OWIzMDkzMTEwMmM0YmI4MGJmMWFhYWJiNWMxYzQyOWNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5jcHAKQEAgLTMxLDEzICsz
MSw0MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY2FsbEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU05vbkZpbmFsT2JqZWN0Q2FsbGJhY2tPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTR2xvYmFsT2JqZWN0
Q2FsbGJhY2tPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCk7CisKIC8vIERlZmluZSB0aGUgdHdvIHR5
cGVzIG9mIEpTQ2FsbGJhY2tPYmplY3RzIHdlIHN1cHBvcnQuCiB0ZW1wbGF0ZSA8PiBjb25zdCBD
bGFzc0luZm8gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6c19pbmZvID0geyAi
Q2FsbGJhY2tPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0ZW1wbGF0ZSA8PiBjb25zdCBDbGFz
c0luZm8gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OnNfaW5mbyA9IHsgIkNhbGxi
YWNrR2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwotCiB0ZW1wbGF0ZTw+IGNvbnN0IGJv
b2wgSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6bmVlZHNEZXN0cnVjdGlvbiA9
IHRydWU7CiB0ZW1wbGF0ZTw+IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9i
amVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVG
dW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+OjpnZXRDYWxsRnVuY3Rp
b24oKQoreworICAgIHJldHVybiBjYWxsSlNOb25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0Owor
fQorCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9u
RmluYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCit7CisgICAgcmV0dXJuIGNvbnN0
cnVjdEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwordGVtcGxhdGU8PgorUmF3
TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxG
dW5jdGlvbigpCit7CisgICAgcmV0dXJuIGNhbGxKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0
OworfQorCit0ZW1wbGF0ZTw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpT
R2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAgIHJldHVybiBjb25z
dHJ1Y3RKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0OworfQorCiB0ZW1wbGF0ZTw+CiBKU0Nh
bGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0PiogSlNDYWxsYmFja09iamVjdDxKU0dsb2JhbE9i
amVjdD46OmNyZWF0ZShWTSYgdm0sIEpTQ2xhc3NSZWYgY2xhc3NSZWYsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogewpAQCAtODQsNCArMTEyLDI0IEBAIElzb1N1YnNwYWNlKiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwgU3Vic3BhY2VBCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNO
b25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0
PEpTTm9uRmluYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9
CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU05vbkZpbmFsT2JqZWN0Q2Fs
bGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAg
cmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2Jq
ZWN0PEpTR2xvYmFsT2JqZWN0Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTQ2FsbGJhY2tPYmplY3QuaAppbmRleCAzZGYyYTQ0YzdhZDVkZDJkYmEyMjZjNzQ3MmRlOWQw
ZDkzNTA5ODI4Li43Nzk3M2RhNDQ5MzM4MTc3Y2IwNjEyMDFmZmM2ZTI5ZTQ0NDJjY2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtMTgyLDYg
KzE4Miw5IEBAIGNsYXNzIEpTQ2FsbGJhY2tPYmplY3QgZmluYWwgOiBwdWJsaWMgUGFyZW50IHsK
IAogICAgIHVzaW5nIFBhcmVudDo6bWV0aG9kVGFibGU7CiAKKyAgICBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY2FsbEltcGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKyAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgY29uc3RydWN0SW1wbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OworICAgCiBwcml2YXRlOgogICAgIEpTQ2FsbGJhY2tPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqLCBKU0NsYXNzUmVmLCB2b2lkKiBkYXRhKTsKICAgICBKU0NhbGxiYWNrT2JqZWN0
KFZNJiwgSlNDbGFzc1JlZiwgU3RydWN0dXJlKik7CkBAIC0yMjMsMTAgKzIyNiwxMiBAQCBjbGFz
cyBKU0NhbGxiYWNrT2JqZWN0IGZpbmFsIDogcHVibGljIFBhcmVudCB7CiAgCiAgICAgc3RhdGlj
IEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoSlNWYWx1ZSk7CiAgICAgc3RhdGlj
IEpTQ2FsbGJhY2tPYmplY3QqIGFzQ2FsbGJhY2tPYmplY3QoRW5jb2RlZEpTVmFsdWUpOworCisg
ICAgdXNpbmcgUmF3TmF0aXZlRnVuY3Rpb24gPSBFbmNvZGVkSlNWYWx1ZShKU0NfSE9TVF9DQUxM
X0FUVFJJQlVURVMqKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworCisgICAgc3RhdGlj
IFJhd05hdGl2ZUZ1bmN0aW9uIGdldENhbGxGdW5jdGlvbigpOworICAgIHN0YXRpYyBSYXdOYXRp
dmVGdW5jdGlvbiBnZXRDb25zdHJ1Y3RGdW5jdGlvbigpOwogIAotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLSAgIAogICAgIEpTVmFsdWUgZ2V0U3RhdGljVmFsdWUo
SlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBzdGF0aWNGdW5jdGlvbkdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApp
bmRleCA0NWU2YWVmOTliOTA2NTBkNTBkNmY0NGVjYzFhNjk3MTZiNjA1MTQyLi4yZTM0ZGY4MjEz
MWFhYzVmYThhMzAwYjYyNmRjMDQzYmEzZTZiZGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaApAQCAtNDQ0LDcgKzQ0
NCw3IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0Q29uc3RydWN0RGF0
YShKU0NlbGwqIGNlbGwpCiAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0
LT5jbGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsK
ICAgICAgICAgaWYgKGpzQ2xhc3MtPmNhbGxBc0NvbnN0cnVjdG9yKSB7CiAgICAgICAgICAgICBj
b25zdHJ1Y3REYXRhLnR5cGUgPSBDYWxsRGF0YTo6VHlwZTo6TmF0aXZlOwotICAgICAgICAgICAg
Y29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Q7CisgICAgICAgICAgICBj
b25zdHJ1Y3REYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGdldENvbnN0cnVjdEZ1bmN0aW9uKCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KQEAgLTQ1Miw3ICs0NTIsNyBAQCBD
YWxsRGF0YSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldENvbnN0cnVjdERhdGEoSlNDZWxs
KiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50PgotRW5jb2RlZEpTVmFsdWUgSlND
YWxsYmFja09iamVjdDxQYXJlbnQ+Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2Jq
ZWN0PFBhcmVudD46OmNvbnN0cnVjdEltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MjEsNyAr
NTIxLDcgQEAgQ2FsbERhdGEgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDYWxsRGF0YShK
U0NlbGwqIGNlbGwpCiAgICAgZm9yIChKU0NsYXNzUmVmIGpzQ2xhc3MgPSB0aGlzT2JqZWN0LT5j
bGFzc1JlZigpOyBqc0NsYXNzOyBqc0NsYXNzID0ganNDbGFzcy0+cGFyZW50Q2xhc3MpIHsKICAg
ICAgICAgaWYgKGpzQ2xhc3MtPmNhbGxBc0Z1bmN0aW9uKSB7CiAgICAgICAgICAgICBjYWxsRGF0
YS50eXBlID0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2ZTsKLSAgICAgICAgICAgIGNhbGxEYXRhLm5h
dGl2ZS5mdW5jdGlvbiA9IGNhbGw7CisgICAgICAgICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rp
b24gPSBnZXRDYWxsRnVuY3Rpb24oKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgfQpAQCAtNTI5LDcgKzUyOSw3IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50
Pjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogfQogCiB0ZW1wbGF0ZSA8Y2xhc3MgUGFyZW50
PgotRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorRW5jb2RlZEpTVmFs
dWUgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBnZXRWTShn
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rp
b24ubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1t
CmluZGV4IGIzNWFmMjk5MmQ3ZGNlOGI2ODM2NTI2NzljZWU5NTRmOTA4NzJlMmUuLjRiY2Q4ZjQ1
ZDljNDcyN2FiNDYyMjIyYjVkNTU2ZjdlYzU1MTdiYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQpAQCAtNTM1LDEyICs1MzUsMTUg
QEAgc3RhdGljIEpTT2JqZWN0UmVmIG9iakNDYWxsYmFja0Z1bmN0aW9uQ2FsbEFzQ29uc3RydWN0
b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnQKIAogY29uc3QgSlNDOjpDbGFzc0luZm8gT2JqQ0Nh
bGxiYWNrRnVuY3Rpb246OnNfaW5mbyA9IHsgIkNhbGxiYWNrRnVuY3Rpb24iLCAmQmFzZTo6c19p
bmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE9iakNDYWxsYmFja0Z1
bmN0aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2Jq
Q0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsT2JqQ0Nh
bGxiYWNrRnVuY3Rpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0T2JqQ0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bE9iakNDYWxsYmFja0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpj
YWxsSW1wbDxPYmpDQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RPYmpDQ2Fs
bGJhY2tGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RPYmpDQ2FsbGJhY2tG
dW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0SW1wbDxP
YmpDQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9i
amVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xv
YmFsT2JqZWN0LmNwcAppbmRleCBkOGFmZTgwOGYxMTAyNjM0YmNjMDkwNWRmNzQzZTJjZTc4ZmYx
ZDcyLi44MjkwMGY0MzFlNGMzMDIxZjY2YmUxOGY5ZDZjMzgyM2FmMzE0NGVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyR2xv
YmFsT2JqZWN0LmNwcApAQCAtNTQsMTAgKzU0LDI0IEBAIHZvaWQgSlNBUElXcmFwcGVyR2xvYmFs
T2JqZWN0SGFuZGxlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
CiAKIG5hbWVzcGFjZSBKU0MgewogCi10ZW1wbGF0ZSA8PiBjb25zdCBDbGFzc0luZm8gSlNDYWxs
YmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7ICJKU0FQSVdy
YXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNBUElXcmFwcGVy
R2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOwogCit0ZW1wbGF0ZSA8PiBjb25zdCBDbGFzc0lu
Zm8gSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7
ICJKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTQ2FsbGJhY2tPYmplY3QpIH07CiB0ZW1wbGF0ZTw+
IGNvbnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+Ojpu
ZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9u
IEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q2FsbEZ1bmN0
aW9uKCkKK3sKKyAgICByZXR1cm4gY2FsbEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNr
T2JqZWN0OworfQorCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09i
amVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5jdGlvbigpCit7
CisgICAgcmV0dXJuIGNvbnN0cnVjdEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2Jq
ZWN0OworfQorCiB0ZW1wbGF0ZSA8PgogSXNvU3Vic3BhY2UqIEpTQ2FsbGJhY2tPYmplY3Q8SlNB
UElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwgU3Vic3BhY2VB
Y2Nlc3MgbW9kZSkKIHsKQEAgLTg1LDYgKzk5LDE2IEBAIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyR2xvYmFsT2JqZWN0PiogSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxP
CiAgICAgcmV0dXJuIGNhbGxiYWNrT2JqZWN0OwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVy
biBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmNhbGxJbXBsKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVy
biBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmNvbnN0cnVjdElt
cGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCiBKU0FQSVdyYXBwZXJHbG9iYWxPYmpl
Y3Q6OkpTQVBJV3JhcHBlckdsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCmluZGV4IDIz
MzRhMWI1N2YyOWVjMjBmNDliOTE5ZDIxNDlkMWI3ZTgwMDFmMDAuLjUyZTYwNjA4MWJmN2E4OTU2
YTE3OTNmNGQ2ZTZjNThjM2ZiYTlmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAKQEAgLTY3LDEwICs2
NywyNCBAQCBib29sIEpTQVBJV3JhcHBlck9iamVjdEhhbmRsZU93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OgogCiBuYW1lc3BhY2UgSlNDIHsKIAotdGVt
cGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2Jq
ZWN0Pjo6c19pbmZvID0geyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9Owor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0KTsKIAordGVtcGxhdGUgPD4gY29uc3Qg
Q2xhc3NJbmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6c19pbmZvID0g
eyAiSlNBUElXcmFwcGVyT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwogdGVtcGxhdGU8PiBjb25z
dCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6bmVlZHNEZXN0cnVj
dGlvbiA9IHRydWU7CiAKK3RlbXBsYXRlIDw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxGdW5jdGlvbigpCit7CisgICAgcmV0
dXJuIGNhbGxKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwordGVtcGxhdGUg
PD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0
Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAgIHJldHVybiBjb25zdHJ1Y3RKU0FQSVdy
YXBwZXJPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwogdGVtcGxhdGUgPD4KIElzb1N1YnNwYWNl
KiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnN1YnNwYWNlRm9ySW1wbChW
TSYgdm0sIFN1YnNwYWNlQWNjZXNzIG1vZGUpCiB7CkBAIC05MCw2ICsxMDQsMTYgQEAgU3RydWN0
dXJlKiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNyZWF0ZVN0cnVjdHVy
ZShWTSYgdm0sIEpTR2xvYmEKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG8sIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNf
aW5mbyk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNBUElXcmFwcGVyT2Jq
ZWN0Q2FsbGJhY2tPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFw
cGVyT2JqZWN0Pjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tP
YmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgcmV0dXJuIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6
Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7Cit9CisKIEpTQVBJV3JhcHBl
ck9iamVjdDo6SlNBUElXcmFwcGVyT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAKaW5kZXggYzYwNGRlZWI0
Mzk1ZGUxZDU4MWVhNmMwOTQ2YjViNDlkODcwMWQwNC4uMjBmMTcyMmY0NmUwNjY0YjQ1YWM1YmRj
YmU5NGI5NDM4Nzc4NzI5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9n
bGliL0pTQ0NhbGxiYWNrRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvZ2xpYi9KU0NDYWxsYmFja0Z1bmN0aW9uLmNwcApAQCAtNTIsMTIgKzUyLDE1IEBAIHN0YXRp
YyBKU09iamVjdFJlZiBjYWxsQXNDb25zdHJ1Y3RvcihKU0NvbnRleHRSZWYgY2FsbGVyQ29udGV4
dCwgSlNPYmplY3RSZWYgY29uCiAKIGNvbnN0IENsYXNzSW5mbyBKU0NDYWxsYmFja0Z1bmN0aW9u
OjpzX2luZm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NDYWxsYmFja0Z1bmN0
aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNDQ2Fs
bGJhY2tGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NDYWxsYmFj
a0Z1bmN0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
Q0NhbGxiYWNrRnVuY3Rpb24pOworCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQ0Nh
bGxiYWNrRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNhbGxJbXBs
PEpTQ0NhbGxiYWNrRnVuY3Rpb24+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNDQ2FsbGJhY2tGdW5j
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NDYWxsYmFja0Z1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjb25zdHJ1Y3RJbXBsPEpTQ0NhbGxiYWNr
RnVuY3Rpb24+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGUu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZS5jcHAKaW5kZXggN2IyY2NkYzczZWY3NWRiNWZhMGE3MGJhYTYyNGVhMDk4ZmFk
NjMxMy4uYWRiYjVlNTdjMzQ1MWMzZDNhODhmODE4ZjdlYzA1N2NlYjU5ODgyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHAKQEAgLTMzLDI0ICszMywyNCBAQCBuYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblN1
YnR5cGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5j
dGlvbkRldGFpbHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25HZXRJbnRlcm5hbFByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24oSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3RlZFdp
dGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtTZXRTaXplKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRvckVudHJpZXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVy
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRl
V2l0aFNjb3BlRXh0ZW5zaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0KLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlQXR0cmlidXRlRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvblN1YnR5cGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uRGV0YWlscyk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRl
cm5hbENvbnN0cnVjdG9yTmFtZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9y
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFw
U2l6ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtT
ZXRTaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcyk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRl
cmF0b3JFbnRyaWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0
aW9uUXVlcnlIb2xkZXJzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lv
bik7CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRI
b3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3Vs
dEFsaWFzKTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
OjpzX2luZm8gPSB7ICJJbmplY3RlZFNjcmlwdEhvc3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlKSB9OwogCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAg
SlNDX05BVElWRV9HRVRURVJfV0lUSE9VVF9UUkFOU0lUSU9OKCJzYXZlZFJlc3VsdEFsaWFzIiwg
anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsaWFzLCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3Ip
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0
UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVFdmFsdWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtOTIsNyArOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUoSlNHbAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+ZXZhbHVhdGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsaWFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTA1LDcgKzEwNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVBdHRyaWJ1dGVTYXZlZFJlc3VsdEFsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5zYXZlZFJlc3VsdEFsaWFzKGds
b2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cnVjdG9yTmFtZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50
ZXJuYWxDb25zdHJ1Y3Rvck5hbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExOCw3ICsxMTgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25JbnRlcm5hbENvbnN0cgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FzdGVkVGhpcy0+aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVj
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTMxLDcgKzEzMSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklz
SFRNTEFsbENvbGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5pc0hU
TUxBbGxDb2xsZWN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVq
ZWN0ZWRXaXRoTmF0aXZlR2V0dGVyVHlwZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
NDQsNyArMTQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmlzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5
cGVFcnJvcihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Qcm94eVRh
cmdldFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25Qcm94eVRhcmdldFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTcs
NyArMTU3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhc3RlZFRoaXMtPnByb3h5VGFyZ2V0VmFsdWUodm0sIGNhbGxGcmFtZSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE3MCw3ICsxNzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZShKUwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+d2Vha01hcFNpemUoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODMsNyArMTgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVu
dHJpZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPndlYWtNYXBFbnRy
aWVzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtTZXRTaXpl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25XZWFrU2V0U2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk2LDcgKzE5Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVG
dW5jdGlvbldlYWtTZXRTaXplKEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRU
aGlzLT53ZWFrU2V0U2l6ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25XZWFrU2V0RW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIwOSw3ICsyMDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRT
Y3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+d2Vha1NldEVudHJpZXMoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRvckVudHJpZXMs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25JdGVyYXRv
ckVudHJpZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+aXRlcmF0b3JF
bnRyaWVzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SW5z
dGFuY2VzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
RnVuY3Rpb25RdWVyeUluc3RhbmNlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjM1LDcgKzIz
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvblF1ZXJ5SW5zdGFuY2VzCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT5xdWVyeUluc3RhbmNlcyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJv
dG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3Rl
ZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVycywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjQ4LDcgKzI0OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJ
bmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1ZXJ5SG9sZGVycyhKCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5xdWVyeUhvbGRlcnMoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjEs
NyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2MKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhc3RlZFRoaXMtPmV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblN1YnR5cGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblN1YnR5cGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBlKEpTR2xvYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c3VidHlwZShnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9u
RGV0YWlscywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlv
bkZ1bmN0aW9uRGV0YWlsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5m
dW5jdGlvbkRldGFpbHMoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9u
R2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25HZXRJbnRlcm5hbFByb3BlcnRpZXMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcAppbmRleCAyODg3OGRj
NDFhYWY5NWQwOWMxOTZkNzAwODc2NzI3ZGU1YzI4ZTY1Li5hYjVhOGFjZDAzMmZiODIxNTkzNGM3
ZTQwYTAzMzJmODZhMGI4YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3Bw
CkBAIC0zNCwxOSArMzQsMTkgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBGdW5jdGlvbnMuCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5
cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2Nv
cGVEZXNjcmlwdGlvbnMpOwogCiAvLyBBdHRyaWJ1dGVzLgotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2Fs
bEZyYW1lQXR0cmlidXRlQ29sdW1uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVGdW5jdGlvbk5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZVNjb3BlQ2hhaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNP
YmplY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVR5cGUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlw
dENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZUNvbHVtbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0ph
dmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVGdW5jdGlvbk5hbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFp
bik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJh
bWVBdHRyaWJ1dGVUaGlzT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVR5cGUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCk7CiAKIGNv
bnN0IENsYXNzSW5mbyBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OnNfaW5mbyA9IHsg
IkphdmFTY3JpcHRDYWxsRnJhbWUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZSkgfTsKIApA
QCAtNjksNyArNjksNyBAQCB2b2lkIEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIEpTQ19OQVRJVkVf
R0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigiaXNUYWlsRGVsZXRlZCIsIGpzSmF2YVNjcmlwdENh
bGxGcmFtZUlzVGFpbERlbGV0ZWQsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29w
ZUV4dGVuc2lvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90
b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC04Miw3ICs4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZh
U2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdGlv
bnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVu
Y3Rpb25TY29wZURlc2NyaXB0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTUsNyArOTUs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZVBy
b3RvdHlwZUZ1bmN0aW9uU2NvcGVEZXNjcmlwdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y2FzdGVkVGhpcy0+c2NvcGVEZXNjcmlwdGlvbnMoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2Fs
bGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNh
bGxlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA4LDcgKzEwOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKEpT
R2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5jYWxs
ZXIoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlEKEpTR2xvYmFsT2JqZQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c291cmNlSUQoZ2xvYmFsT2JqZWN0KSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlTGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVMaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMzQsNyArMTM0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+
bGluZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDb2x1bW4oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ29sdW1uLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNDcsNyArMTQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFT
Y3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDb2x1bW4oSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmNvbHVtbihnbG9iYWxPYmplY3QpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1
dGVGdW5jdGlvbk5hbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1l
QXR0cmlidXRlRnVuY3Rpb25OYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjAsNyArMTYw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVB
dHRyaWJ1dGVGdW5jdGlvbk5hbWUoSlNHbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGNhc3RlZFRoaXMtPmZ1bmN0aW9uTmFtZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNo
YWluKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNj
b3BlQ2hhaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Myw3ICsxNzMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3Bl
Q2hhaW4oSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+
c2NvcGVDaGFpbihnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNPYmplY3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE4Niw3ICsxODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNPYmplY3QoSlNHbG9iYWxP
YgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+dGhpc09iamVjdChnbG9i
YWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlw
dENhbGxGcmFtZUF0dHJpYnV0ZVR5cGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OSw3ICsx
OTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZVR5cGUoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT50eXBlKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBmZWNhYjllYzBiZGQ0MGQ5N2YzOTlm
ZWIyM2UxODgxZGQzMjI1NDAxLi5kMGE0OGYzMzhlZjlkYTM0NWFiNjhjNTJkYWExYTYwZGY3OGQ2
MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMjQ5LDExNCArMjQ5LDExNCBAQCBjbGFzcyBX
b3JrZXJzIHsKIH07CiAKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25DcmVhdGVHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0lu
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KTsKICNpZiBVU0UoQklHSU5U
MzIpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUJp
Z0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUJpZ0ludDMyKTsKICNlbmRpZgotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Vc2VCaWdJbnQzMihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Jc0JpZ0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzSGVhcEJpZ0ludChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblByaW50U3RkT3V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50U3RkRXJyKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRlYnVnKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlc2NyaWJlKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkRlc2NyaWJlQXJyYXkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2xlZXBTZWNvbmRzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRnVsbEdDKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25IZWFwU2l6ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVNZW1vcnlGb290cHJpbnQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJl
c3NPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25WZXJzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Mb2FkU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRGaWxlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNoZWNrU3ludGF4KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRsaW5lKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblByZWNpc2VUaW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uTm9ERkcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9GVEwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uTm9PU1JFeGl0RnV6emluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25PcHRpbWl6ZU5leHRJ
bnZvY2F0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk51bWJlck9mREZHQ29tcGlsZXMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ2FsbGVySXNPTUdDb21waWxlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NPcHRpb25z
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZhaWxOZXh0TmV3Q29k
ZUJsb2NrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgTk9fUkVUVVJOX1dJ
VEhfVkFMVUUgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblF1aXQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRmFsc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVW5kZWZpbmVkMShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25VbmRlZmluZWQyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzSW50MzIoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uSXNQdXJlTmFOKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVmZmVjdGZ1bDQyKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbklkZW50aXR5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DYWxsTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQ3VzdG9tUHJv
cGVydGllcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFRpbWVvdXQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmFs
aXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmFsaXphdGlvblJl
Z2lzdHJ5RGVhZENvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzMzJCaXRQbGF0Zm9ybShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QbGF0Zm9ybVN1
cHBvcnRzU2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFw
c2hvdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5n
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRW5zdXJlQXJyYXlTdG9yYWdlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVzZUJpZ0ludDMyKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNCaWdJbnQzMik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSGVhcEJpZ0ludCk7CisKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRPdXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZEVycik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlYnVnKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZXNjcmliZUFycmF5KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2xlZXBTZWNvbmRzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSlNDU3RhY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25HQ0FuZFN3ZWVwKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRnVsbEdDKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRWRlbkdDKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uSGVhcFNpemUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25DcmVhdGVNZW1vcnlGb290cHJpbnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25SZXNldE1lbW9yeVBlYWspOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25BZGRyZXNzT2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25WZXJzaW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uUnVuKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUnVu
U3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTG9hZCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWRTdHJpbmcpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZWFkRmlsZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNoZWNrU3ludGF4KTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVhZGxpbmUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmVjaXNlVGltZSk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ob0RGRyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vRlRMKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9PU1JFeGl0RnV6emluZyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk9wdGltaXplTmV4dEludm9jYXRpb24pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVz
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbGVySXNPTUdD
b21waWxlZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkpTQ09w
dGlvbnMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZW9wdGlt
aXphdGlvblJldHJ5Q291bnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRmFpbE5leHROZXdDb2RlQmxvY2spOworc3RhdGljIE5PX1JFVFVSTl9XSVRI
X1ZBTFVFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25RdWl0KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmFsc2UpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25VbmRlZmluZWQxKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVW5kZWZpbmVkMik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbklzSW50MzIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Jc1B1cmVOYU4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25FZmZlY3RmdWw0Mik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbklkZW50aXR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBUeXBlc0ZvckFsbFZhcmlhYmxlcyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRyYWluTWljcm90YXNrcyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFRpbWVvdXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZWxlYXNlV2Vha1JlZnMpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3Ry
eUxpdmVDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZp
bmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVhcFNu
YXBzaG90KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJh
dGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UpOwogI2lmIEVOQUJM
RShTQU1QTElOR19QUk9GSUxFUikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNhbXBsaW5n
UHJvZmlsZXJTdGFja1RyYWNlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TdGFydFNhbXBsaW5nUHJvZmlsZXIp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TYW1wbGluZ1Byb2Zp
bGVyU3RhY2tUcmFjZXMpOwogI2VuZGlmCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uTWF4QXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFN0
YXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFBhc3NlZChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25NYXhB
cmd1bWVudHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3lu
Y1Rlc3RTdGFydCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFz
eW5jVGVzdFBhc3NlZCk7CiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldlYkFzc2VtYmx5TWVtb3J5TW9kZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9yeU1vZGUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
U0FNUExJTkdfRkxBR1MpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblNldFNhbXBsaW5nRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2xlYXJTYW1wbGluZ0ZsYWdz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpOwogI2VuZGlmCiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0UmFuZG9tU2VlZChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25TZXRSYW5kb21TZWVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9wZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25DYWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFy
Q3JlYXRlUmVhbG0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVj
ZWl2ZUJyb2FkY2FzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlcG9ydChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50
QnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50R2V0UmVwb3J0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkRvbGxhckFnZW50TGVhdmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2Vu
dE1vbm90b25pY05vdyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYWl0Rm9yUmVwb3J0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkhlYXBDYXBhY2l0eShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRGlzYWJsZVJpY2hTb3VyY2VJbmZvKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1h
bGxvY0luQUxvb3AoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVG90YWxDb21waWxlVGltZShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvblNldFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkFzRG91YmxlTnVtYmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFJhbmRvbVNlZWQpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRSYW5kb21TZWVkKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNSb3BlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbGVyU291cmNlT3JpZ2luKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQ3JlYXRlUmVhbG0pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJFdmFsU2NyaXB0KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRTdGFy
dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50
UmVjZWl2ZUJyb2FkY2FzdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkRvbGxhckFnZW50UmVwb3J0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRG9sbGFyQWdlbnRTbGVlcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkRvbGxhckFnZW50QnJvYWRjYXN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudExlYXZpbmcpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudE1vbm90b25pY05v
dyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbldhaXRGb3JSZXBv
cnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IZWFwQ2FwYWNp
dHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GbGFzaEhlYXBB
Y2Nlc3MpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EaXNhYmxl
UmljaFNvdXJjZUluZm8pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25NYWxsb2NJbkFMb29wKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uVG90YWxDb21waWxlVGltZSk7CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2spOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc0RvdWJsZU51bWJlcik7CiAKIHN0cnVjdCBTY3Jp
cHQgewogICAgIGVudW0gY2xhc3MgU3RyaWN0TW9kZSB7CkBAIC0xMjYyLDEwICsxMjYyLDE3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcmludEludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBy
aW50U3RkT3V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSB7IHJldHVybiBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRv
dXQpOyB9Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnRTdGRFcnIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsgcmV0
dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0ZGVycik7IH0KK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkT3V0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVybiBw
cmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRvdXQpOworfQorCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZEVyciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gcHJp
bnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3RkZXJyKTsKK30KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlYnVnKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRGVidWcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEyODEsNyArMTI4OCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWJ1ZyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRl
c2NyaWJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQo
KSA8IDEpCkBAIC0xMjg5LDcgKzEyOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRGVzY3JpYmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHRvU3RyaW5nKGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25EZXNjcmliZUFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmVBcnJh
eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMTMwMCw3ICsxMzA3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlc2NyaWJlQXJyYXkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9u
dHJpdmlhbFN0cmluZyh2bSwgdG9TdHJpbmcoIjxCdXR0ZXJmbHk6ICIsIFJhd1BvaW50ZXIob2Jq
ZWN0LT5idXR0ZXJmbHkoKSksICI7IHB1YmxpYyBsZW5ndGg6ICIsIG9iamVjdC0+Z2V0QXJyYXlM
ZW5ndGgoKSwgIjsgdmVjdG9yIGxlbmd0aDogIiwgb2JqZWN0LT5nZXRWZWN0b3JMZW5ndGgoKSwg
Ij4iKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2xlZXBT
ZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2xlZXBTZWNvbmRzLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMzMxLDcgKzEzMzgsNyBAQCBjbGFzcyBGdW5jdGlvbkpTQ1N0YWNr
RnVuY3RvciB7CiAgICAgU3RyaW5nQnVpbGRlciYgbV90cmFjZTsKIH07CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NTdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkpTQ1N0YWNrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBT
dHJpbmdCdWlsZGVyIHRyYWNlOwpAQCAtMTM0Myw3ICsxMzUwLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ1N0YWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uR0NBbmRTd2VlcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xv
Y2tIb2xkZXIgbG9jayh2bSk7CkBAIC0xMzUxLDcgKzEzNTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NBbmRTd2VlcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC5zaXpl
QWZ0ZXJMYXN0RnVsbENvbGxlY3Rpb24oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRnVsbEdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GdWxsR0MsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwpAQCAtMTM1OSw3ICsx
MzY2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZ1bGxHQyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHZtLmhlYXAuc2l6ZUFmdGVyTGFzdEZ1bGxDb2xsZWN0aW9uKCkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRWRlbkdDLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTTG9ja0hvbGRl
ciBsb2NrKHZtKTsKQEAgLTEzNjcsNyArMTM3NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2bS5oZWFwLnNpemVBZnRlckxh
c3RFZGVuQ29sbGVjdGlvbigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25IZWFwU2l6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGVhcFNpemUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwpAQCAtMTQyNiwxNCArMTQz
MywxNCBAQCBjbGFzcyBKU0NNZW1vcnlGb290cHJpbnQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVP
YmplY3QgewogCiBjb25zdCBDbGFzc0luZm8gSlNDTWVtb3J5Rm9vdHByaW50OjpzX2luZm8gPSB7
ICJNZW1vcnlGb290cHJpbnQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKEpTQ01lbW9yeUZvb3RwcmludCkgfTsKIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZU1lbW9yeUZvb3RwcmludChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3JlYXRlTWVtb3J5Rm9vdHByaW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQ01l
bW9yeUZvb3RwcmludDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlc2V0TWVtb3J5UGVhayhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZXNldE1l
bW9yeVBlYWssIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIE1lbW9yeUZv
b3RwcmludDo6cmVzZXRQZWFrKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKQEAgLTE0NDIsNyArMTQ0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25SZXNldE1lbW9yeVBlYWsoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAv
LyBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBnZW5lcmFsbHkgdmVyeSBoZWxwZnVsIGluIDY0LWJpdCBj
b2RlIGFzIHRoZSB0YWcgYW5kIHBheWxvYWQKIC8vIHNoYXJlIGEgcmVnaXN0ZXIuIEJ1dCBpbiAz
Mi1iaXQgSklUZWQgY29kZSB0aGUgdGFnIG1heSBub3QgYmUgY2hlY2tlZCBpZiBhbgogLy8gb3B0
aW1pemF0aW9uIHJlbW92ZXMgdHlwZSBjaGVja2luZyByZXF1aXJlbWVudHMsIHN1Y2ggYXMgaW4g
PT09LgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJlc3NPZihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQWRkcmVzc09mLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAg
ICAgaWYgKCF2YWx1ZS5pc0NlbGwoKSkKQEAgLTE0NTMsMTQgKzE0NjAsMTQgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFkZHJlc3NPZihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbEYKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25WZXJzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblZlcnNpb24sIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIC8vIFdlIG5lZWQgdGhpcyBmdW5jdGlvbiBm
b3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBNb3ppbGxhIEpTIHRlc3RzIGJ1dCBmb3Igbm93CiAg
ICAgLy8gd2UgZG9uJ3QgYWN0dWFsbHkgZG8gYW55IHZlcnNpb24tc3BlY2lmaWMgaGFuZGxpbmcK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uUnVuLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDk1LDcgKzE1MDIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
c3RvcFdhdGNoLmdldEVsYXBzZWRNUygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SdW5T
dHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1MjQsNyArMTUzMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SdW5TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZWFsbSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uTG9hZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU1Myw3ICsxNTYw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2Fk
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTG9hZFN0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTU2OCw3ICsxNTc1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkxvYWRTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkRmlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblJlYWRGaWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTk5LDcgKzE2MDYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVhZEZpbGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrU3ludGF4
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tTeW50YXgsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE2MjMsNyArMTYzMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DaGVja1N5bnRheChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiB9CiAK
ICNpZiBFTkFCTEUoU0FNUExJTkdfRkxBR1MpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFncyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFn
cywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAg
ICAgICAgIHVuc2lnbmVkIGZsYWcgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FsbEZyYW1lLT51
bmNoZWNrZWRBcmd1bWVudChpKS50b051bWJlcihnbG9iYWxPYmplY3QpKTsKQEAgLTE2MzMsNyAr
MTY0MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRTYW1wbGlu
Z0ZsYWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DbGVhclNhbXBsaW5nRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNsZWFyU2FtcGxpbmdGbGFncywg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAg
ICAgIHVuc2lnbmVkIGZsYWcgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudChpKS50b051bWJlcihnbG9iYWxPYmplY3QpKTsKQEAgLTE2NDQsMTIgKzE2
NTEsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNsZWFyU2FtcGxp
bmdGbGFncyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmEKIH0KICNlbmRpZgogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0UmFuZG9tU2VlZChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR2V0UmFuZG9tU2VlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2xvYmFsT2JqZWN0
LT53ZWFrUmFuZG9tKCkuc2VlZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25TZXRSYW5kb21TZWVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY2MCw3ICsxNjY3LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFJhbmRvbVNlZWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNSb3Bl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Jc1JvcGUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgw
KTsKICAgICBpZiAoIWFyZ3VtZW50LmlzU3RyaW5nKCkpCkBAIC0xNjY5LDcgKzE2NzYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNSb3BlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29s
ZWFuKCFpbXBsKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25D
YWxsZXJTb3VyY2VPcmlnaW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DYWxsZXJTb3Vy
Y2VPcmlnaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFNvdXJjZU9y
aWdpbiBzb3VyY2VPcmlnaW4gPSBjYWxsRnJhbWUtPmNhbGxlclNvdXJjZU9yaWdpbih2bSk7CkBA
IC0xNjc4LDcgKzE2ODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q2FsbGVyU291cmNlT3JpZ2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHNvdXJjZU9yaWdpbi5zdHJpbmcoKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVhZGxpbmUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvblJlYWRsaW5lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgVmVjdG9yPGNoYXIsIDI1Nj4gbGluZTsKICAgICBpbnQgYzsKQEAgLTE2
OTIsMjIgKzE2OTksMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJl
YWRsaW5lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0oKSwgbGluZS5kYXRhKCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByZWNpc2VUaW1lKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblByZWNpc2VUaW1lLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbk5ldmVySW5saW5lRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25O
ZXZlcklubGluZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2V0TmV2ZXJJ
bmxpbmUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbk5vREZHKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9E
RkcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzZXROZXZlck9wdGltaXplKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Ob0ZUTChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9GVEwsIChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkp
IHsKICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gZ2V0RXhlY3V0YWJs
ZUZvckZ1bmN0aW9uKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwpAQCAtMTcxNywyMiArMTcyNCwy
MiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9GVEwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Ob09TUkV4aXRGdXp6aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9PU1JFeGl0
RnV6emluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldENhbm5vdFVzZU9TUkV4aXRG
dXp6aW5nKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKG9wdGltaXplTmV4dEludm9jYXRpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk51bWJlck9mREZH
Q29tcGlsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobnVtYmVyT2ZERkdDb21waWxlcyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ2FsbGVySXNPTUdDb21waWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNh
bGxlcklzT01HQ29tcGlsZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4NjgsMTQgKzE4NzUs
MTQgQEAgV29ya2VycyYgV29ya2Vyczo6c2luZ2xldG9uKCkKICAgICByZXR1cm4gKnJlc3VsdDsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckNyZWF0ZVJl
YWxtKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBHbG9iYWxPYmplY3QqIHJlc3VsdCA9IEdsb2JhbE9iamVjdDo6Y3JlYXRl
KHZtLCBHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpLCBWZWN0b3I8
U3RyaW5nPigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdC0+Z2V0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiJCIpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJFdmFsU2NyaXB0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTg5Nyw3ICsxOTA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRv
bGxhckV2YWxTY3JpcHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9s
bGFyQWdlbnRTdGFydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk1NSw3ICsxOTYyLDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9s
bGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9s
bGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTgzLDcg
KzE5OTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdl
bnRSZWNlaXZlQnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCBjYWxsYmFjaywgY2Fs
bERhdGEsIGpzTnVsbCgpLCBhcmdzKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25Eb2xsYXJBZ2VudFJlcG9ydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5Niw3ICsyMDAz
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVw
b3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRG9sbGFyQWdlbnRTbGVlcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFn
ZW50U2xlZXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMDksNyArMjAxNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFn
ZW50QnJvYWRjYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9h
ZGNhc3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMzMsNyArMjA0MCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50
R2V0UmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKIApAQCAtMjA0NCwxNyArMjA1MSwxNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIHN0cmlu
ZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdl
bnRMZWF2aW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50TGVhdmluZywgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50TW9u
b3RvbmljTm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50TW9ub3RvbmljTm93LCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKE1v
bm90b25pY1RpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhaXRGb3JSZXBvcnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbldhaXRGb3JSZXBvcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAKQEAgLTIwNjksMTMgKzIwNzYsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbldhaXRGb3JSZXBvcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzdHJpbmcpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhlYXBDYXBhY2l0eShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uSGVhcENhcGFjaXR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC5jYXBhY2l0eSgpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25GbGFzaEhlYXBBY2Nlc3MsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIwOTMsMTMgKzIxMDAsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkZsYXNoSGVhcEFjY2VzcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGlzYWJsZVJpY2hTb3VyY2VJbmZvKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRpc2FibGVS
aWNoU291cmNlSW5mbywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgc3Vw
cG9ydHNSaWNoU291cmNlSW5mbyA9IGZhbHNlOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25NYWxsb2NJbkFMb29wKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbk1hbGxvY0luQUxvb3AsIChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopKQogewogICAgIFZlY3Rvcjx2b2lkKj4gcHRyczsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgNTAwMDsgKytpKQpAQCAtMjEwOSw3ICsyMTE2LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1hbGxvY0luQUxvb3AoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1l
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblRvdGFsQ29tcGlsZVRpbWUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQog
ewogI2lmIEVOQUJMRShKSVQpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihK
SVQ6OnRvdGFsQ29tcGlsZVRpbWUoKS5taWxsaXNlY29uZHMoKSkpOwpAQCAtMjEyNyw3ICsyMTM0
LDcgQEAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8c3RkOjppc19mdW5kYW1lbnRhbDxWYWx1ZVR5
cGU+Ojp2YWx1ZT46OnR5cGUgYWRkT3B0aW9uKFYKICAgICBvcHRpb25zT2JqZWN0LT5wdXREaXJl
Y3Qodm0sIGlkZW50aWZpZXIsIEpTVmFsdWUodmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ09wdGlvbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkpTQ09w
dGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNPYmplY3QqIG9wdGlvbnNPYmpl
Y3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QpOwpAQCAtMjEzOCw3ICsyMTQ1
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkpTQ09wdGlvbnMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KG9wdGlvbnNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uUmVvcHRpbWl6YXRpb25SZXRyeUNvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZW9wdGltaXphdGlv
blJldHJ5Q291bnQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpAQCAtMjE1MCw3ICsyMTU3LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3Vu
dChKU0dsb2JhbE9iamVjdCosIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGJsb2NrLT5yZW9wdGltaXphdGlvblJldHJ5Q291bnRlcigpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25UcmFuc2ZlckFycmF5QnVmZmVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uVHJhbnNmZXJBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjE2OCwxNCArMjE3NSwxNCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uVHJhbnNmZXJBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GYWlsTmV4dE5ld0NvZGVCbG9jayhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uRmFpbE5leHROZXdDb2RlQmxvY2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
dm0uc2V0RmFpbE5leHROZXdDb2RlQmxvY2soKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uUXVpdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUXVpdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICB2bS5jb2RlQ2FjaGUoKS0+d3JpdGUodm0pOwpAQCAtMjE4OCwxMSArMjE5NSwyMiBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUXVpdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25GYWxzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopIHsgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsgfQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRmFsc2UsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQor
eworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7Cit9CisKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVuZGVmaW5lZDEsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Cit9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25VbmRlZmlu
ZWQxKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikgeyByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOyB9Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
VW5kZWZpbmVkMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopIHsgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsgfQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbklzSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVuZGVmaW5lZDIsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSW50MzIsIChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
aWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50KGkpLmlzSW50MzIoKSkKQEAgLTIyMDEsNyArMjIxOSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc0ludDMyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c0Jvb2xlYW4odHJ1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSXNQdXJlTmFOKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc1B1cmVOYU4sIChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgSlNWYWx1ZSB2YWx1ZSA9
IGNhbGxGcmFtZS0+YXJndW1lbnQoaSk7CkBAIC0yMjE2LDI1ICsyMjM0LDI4IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc1B1cmVOYU4oSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqIGNhbGxGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1
ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSWRlbnRpdHko
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkgeyByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOyB9CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25JZGVudGl0eSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQoreworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT5hcmd1bWVudCgw
KSk7Cit9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZmZlY3RmdWw0
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25FZmZlY3RmdWw0MiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcig0MikpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTWFrZU1hc3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25NYWtlTWFzcXVlcmFkZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShJbnRlcm5hbEZ1bmN0aW9uOjpjcmVhdGVGdW5jdGlvblRoYXRNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkKHZtLCBnbG9iYWxPYmplY3QsIDAsICJJc0hUTUxEREEiX3MsIGZ1
bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DYWxsTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
TnVsbCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0N1
c3RvbVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXNDdXN0b21Qcm9w
ZXJ0aWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAg
IGlmICh2YWx1ZS5pc09iamVjdCgpKQpAQCAtMjI0MiwyMSArMjI2MywyMSBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGllcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNl
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wVHlwZXNG
b3JBbGxWYXJpYWJsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBUeXBlc0ZvckFsbFZhcmlhYmxl
cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICB2bS5kdW1wVHlwZVByb2ZpbGVyRGF0YSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EcmFpbk1pY3JvdGFza3MoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkRyYWluTWljcm90YXNrcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICB2
bS5kcmFpbk1pY3JvdGFza3MoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0VGlt
ZW91dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFRpbWVvdXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIyNzksMTQgKzIzMDAsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblNldFRpbWVvdXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25SZWxlYXNlV2Vha1JlZnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgdm0u
ZmluYWxpemVTeW5jaHJvbm91c0pTRXhlY3V0aW9uKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yMjk5LDcgKzIzMjAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5TGl2ZUNvdW50KEpTR2xvYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmluYWxpemF0aW9uUmVnaXN0cnkt
PmxpdmVDb3VudChsb2NrZXIpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjMxMiw3ICsyMzMzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeURlYWRDb3VudChKU0dsb2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGZpbmFsaXphdGlvblJlZ2lzdHJ5
LT5kZWFkQ291bnQobG9ja2VyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzMzJCaXRQbGF0Zm9ybSwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoSlNDOjpKU1ZhbHVlOjpKU0ZhbHNlKSk7CkBAIC0yMzIx
LDEzICsyMzQyLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JczMy
Qml0UGxhdGZvcm0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAjZW5kaWYKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoR2xvYmFsT2JqZWN0OjpjcmVhdGUodm0sIEds
b2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKHZtLCBqc051bGwoKSksIFZlY3RvcjxTdHJpbmc+
KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUhl
YXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzQ2LDcgKzIzNjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZQogfQogCiAjaWYgVVNFKEJJR0lOVDMyKQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZUJpZ0ludDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
Q3JlYXRlQmlnSW50MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNzQsNyArMjM5NSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCaWdJbnQzMihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiB9CiAjZW5kaWYKIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblVzZUJpZ0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVzZUJpZ0ludDMyLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNpZiBVU0UoQklHSU5UMzIpCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odHJ1ZSkpOwpAQCAtMjM4Myw3ICsyNDA0LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVzZUJpZ0ludDMyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikKICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uSXNCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNCaWdJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogI2lmIFVTRShCSUdJTlQz
MikKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApLmlzQmlnSW50MzIoKSkpOwpAQCAtMjM5MywxMiArMjQxNCwxMiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbAogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Jc0hlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzSGVhcEJpZ0ludCwgKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNCb29sZWFuKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuaXNIZWFwQmlnSW50KCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNoZWNrTW9kdWxl
U3ludGF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0MTksNyArMjQ0MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdG9wV2F0Y2guZ2V0
RWxhcHNlZE1TKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNT
YW1wbGluZ1Byb2ZpbGVyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNpZiBF
TkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Zh
bHVlKEpTQzo6SlNWYWx1ZTo6SlNUcnVlKSk7CkBAIC0yNDI4LDcgKzI0NDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJv
ZmlsZXIoSlNHbG9iYWxPYgogI2VuZGlmCiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJh
dGVIZWFwU25hcHNob3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9sZGVy
IGxvY2sodm0pOwpAQCAtMjQ0Myw3ICsyNDY0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CkBAIC0yNDYxLDEzICsyNDgyLDEzIEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hv
dEZvckdDRGVidWdnaW5nKEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0
cmluZyh2bSwganNvblN0cmluZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZXNldFN1cGVyU2FtcGxlclN0
YXRlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXNldFN1cGVyU2Ft
cGxlclN0YXRlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuc3VyZUFycmF5U3Rv
cmFnZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuc3VyZUFycmF5U3RvcmFnZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKQEAgLTI0NzgsNyArMjQ5OSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3Jh
Z2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiB9CiAKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJP
RklMRVIpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU3RhcnRTYW1wbGlu
Z1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TdGFydFNhbXBsaW5nUHJvZmlsZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU2FtcGxpbmdQcm9maWxlciYgc2FtcGxpbmdQcm9maWxl
ciA9IHZtLmVuc3VyZVNhbXBsaW5nUHJvZmlsZXIoV1RGOjpTdG9wd2F0Y2g6OmNyZWF0ZSgpKTsK
QEAgLTI0ODcsNyArMjUwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TdGFydFNhbXBsaW5nUHJvZmlsZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblNhbXBsaW5nUHJvZmlsZXJTdGFja1RyYWNlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0YWNrVHJhY2VzLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MDIs
MTIgKzI1MjMsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNhbXBs
aW5nUHJvZmlsZXJTdGFja1RyYWNlcyhKU0dsb2JhbE9iamVjdCoKIH0KICNlbmRpZiAvLyBFTkFC
TEUoU0FNUExJTkdfUFJPRklMRVIpCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25NYXhBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWF4QXJndW1lbnRzLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKEpTQzo6
bWF4QXJndW1lbnRzKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Bc3luY1Rlc3RTdGFydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFzeW5jVGVzdFN0
YXJ0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTIwLDcgKzI1NDEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQXN5bmNUZXN0U3RhcnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdAogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFBhc3NlZChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25B
c3luY1Rlc3RQYXNzZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIGFz
eW5jVGVzdFBhc3NlcysrOwogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKQEAgLTI1
MjgsNyArMjU0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc3lu
Y1Rlc3RQYXNzZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAKICNpZiBFTkFCTEUoV0VC
QVNTRU1CTFkpCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
V2ViQXNzZW1ibHlNZW1vcnlNb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2ViQXNz
ZW1ibHlNZW1vcnlNb2RlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTQ4LDcgKzI1NjksNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldlYkFzc2VtYmx5
TWVtb3J5TW9kZShKU0dsb2JhbE9iamVjdAogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZ
KQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVq
ZWN0aW9uQ2FsbGJhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRVbmhhbmRsZWRS
ZWplY3Rpb25DYWxsYmFjaywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
SlNPYmplY3QqIG9iamVjdCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuZ2V0T2JqZWN0KCk7CkBA
IC0yNTYxLDcgKzI1ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2soSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25Bc0RvdWJsZU51bWJlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkFzRG91YmxlTnVtYmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGE0ODlhMjZjYjc2ZTI5MDVhNDE5N2VlNmI0YjBkMzUwYzI3ODc1NTIuLjdkODVh
NjAwOTBkZWZiNWEwYjBlNWU1N2IwZTkwNzMzNDE3MTQwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Iu
Y3BwCkBAIC0zOSw4ICszOSw4IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEFnZ3Jl
Z2F0ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBZ2dyZWdhdGVFcnJvckNv
bnN0cnVjdG9yKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
QWdncmVnYXRlRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QWdncmVnYXRlRXJy
b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QWdncmVnYXRlRXJyb3JDb25z
dHJ1Y3Rvcik7CiAKIEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3I6OkFnZ3JlZ2F0ZUVycm9yQ29u
c3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0
cnVjdHVyZSwgY2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIGNvbnN0cnVjdEFnZ3JlZ2F0
ZUVycm9yQ29uc3RydWN0b3IpCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgQWdncmVnYXRlRXJyb3JD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBBZ2dyZWdhdGVFcnJvclByb3RvdHlw
ZSoKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFnZ3JlZ2F0ZUVy
cm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFnZ3JlZ2F0ZUVycm9yQ29u
c3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTVmFsdWUg
ZXJyb3JzID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEFnZ3JlZ2F0ZUVy
cm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZXJyb3JTdHJ1Y3R1cmUsIGVycm9ycywgbWVz
c2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheUNvbnN0cnVjdG9yLmNwcAppbmRleCAyNGIxN2M3ZjI3NmVlY2RiNWU2NzVhNWE4YjZl
MjZjZjk4OWJhZDY3Li4wODg2ZjkzZjY1Y2Y1YzYxMWM1M2I0ZDhiNTJkNjQ1YzNkNTMxZWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmNwcApAQCAtNDMsOCArNDMsOCBAQCBjb25zdCBDbGFzc0luZm8gQXJyYXlDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbgogQGVuZAogKi8K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhBcnJheUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXJy
YXlDb25zdHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rvcik7CiAKIEFycmF5Q29uc3RydWN0b3I6OkFycmF5Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rp
b24odm0sIHN0cnVjdHVyZSwgY2FsbEFycmF5Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhBcnJh
eUNvbnN0cnVjdG9yKQpAQCAtODYsMTMgKzg2LDEzIEBAIHN0YXRpYyBpbmxpbmUgSlNBcnJheSog
Y29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiAgICAgcmV0dXJuIGNvbnN0cnVjdEFycmF5KGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8QXJy
YXlBbGxvY2F0aW9uUHJvZmlsZSo+KG51bGxwdHIpLCBhcmdzLCBuZXdUYXJnZXQpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEFycmF5V2l0aFNpemVRdWlyayhnbG9iYWxPYmplY3QsIGFyZ3MsIGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFycmF5
Q29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShjb25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZ2xvYmFsT2JqZWN0LCBh
cmdzLCBKU1ZhbHVlKCkpKTsKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIGlzQXJyYXlTbG93KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3h5T2JqZWN0KiBhcmd1bWVudCkKIAogLy8g
RVM2IDcuMi4yCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pc2FycmF5
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5Q29uc3RydWN0b3JQcml2YXRlRnVu
Y0lzQXJyYXlTbG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5Q29uc3RydWN0b3JQcml2YXRl
RnVuY0lzQXJyYXlTbG93LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBqc0R5bmFt
aWNDYXN0PFByb3h5T2JqZWN0Kj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNBcnJheVNs
b3dJbmxpbmUoZ2xvYmFsT2JqZWN0LCBqc0Nhc3Q8UHJveHlPYmplY3QqPihjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuaAppbmRleCA1MzBlNjM0NTJkOGJlOTk2NGE0NGE0ZjlkMTFj
YWY2YzgxZGM1YWVmLi5kYTgyNWE5NWM4ZTNiZDU1ZDc0MGZlOTliM2IzMjhmZDg2MjhkOWI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9y
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5o
CkBAIC01Nyw3ICs1Nyw3IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEFy
cmF5Q29uc3RydWN0b3IsIEludGVybmFsRnVuY3Rpb24pOwogCiBKU0FycmF5KiBjb25zdHJ1Y3RB
cnJheVdpdGhTaXplUXVpcmsoSlNHbG9iYWxPYmplY3QqLCBBcnJheUFsbG9jYXRpb25Qcm9maWxl
KiwgSlNWYWx1ZSBsZW5ndGgsIEpTVmFsdWUgcHJvdG90eXBlID0gSlNWYWx1ZSgpKTsKIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0Fy
cmF5U2xvdyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0FycmF5U2xvdyk7CiBib29sIGlz
QXJyYXlTbG93KEpTR2xvYmFsT2JqZWN0KiwgUHJveHlPYmplY3QqIGFyZ3VtZW50KTsKIAogLy8g
RVM2IDcuMi4yCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3Rv
dHlwZS5jcHAKaW5kZXggOTEwYTk5ZjkyN2U4MGVjM2U5YjI0ZDg3NGZkZDc2ZjE2NGY4YjgxNC4u
MDE3MmQyYWE1YTVlODkwOTY5NTA2OTc2MTIwZjhmN2QzYWI1OTlkYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcApAQCAtNDAsMTkgKzQw
LDE5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNKb2luKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFy
cmF5UHJvdG9GdW5jS2V5cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNQb3AoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1NoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNTcGxpY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSW5kZXhP
ZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJp
bmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0pvaW4pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0tleXMpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0VudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihhcnJheVByb3RvRnVuY1BvcCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFy
cmF5UHJvdG9GdW5jUHVzaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9G
dW5jUmV2ZXJzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU2hp
ZnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NsaWNlKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNTcGxpY2UpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1VuU2hpZnQpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihhcnJheVByb3RvRnVuY0luZGV4T2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihhcnJheVByb3RvRnVuY0xhc3RJbmRleE9mKTsKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEFycmF5UHJvdG90eXBlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IApAQCAtMjU2LDcgKzI1Niw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIHN0ZDo6cGFpcjxTcGVj
aWVzQ29uc3RydWN0UmVzdWx0LCBKU09iamVjdCo+IHNwZWNpZXNDb25zdHJ1CiAgICAgcmV0dXJu
IHN0ZDo6bWFrZV9wYWlyKFNwZWNpZXNDb25zdHJ1Y3RSZXN1bHQ6OkNyZWF0ZWRPYmplY3QsIG5l
d09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNTcGVjaWVzQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU3BlY2ll
c0NyZWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTkwLDcgKzU5MCw3IEBAIGlubGluZSBi
b29sIGNhblVzZURlZmF1bHRBcnJheUpvaW5Gb3JUb1N0cmluZyhWTSYgdm0sIEpTT2JqZWN0KiB0
aGlzT2JqZWN0KQogICAgIHJldHVybiBnbG9iYWxPYmplY3QtPmlzT3JpZ2luYWxBcnJheVN0cnVj
dHVyZShzdHJ1Y3R1cmUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNUb1N0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjczLDcgKzY3Myw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoam9pbmVyLmpvaW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXJyYXlQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NzY2LDcgKzc2Niw3IEBAIHN0YXRpYyBKU1ZhbHVlIHNsb3dKb2luKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1N0CiAgICAgcmV0dXJuIHI7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNKb2luKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jSm9pbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtODM3LDIyICs4MzcsMjIgQEAgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNyZWF0ZUFycmF5SXRl
cmF0b3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlJdGVyYXRvcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qt
PmFycmF5SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgdGhpc09iamVjdCwganNOdW1iZXIoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGtpbmQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGFycmF5UHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
VmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihhcnJheVByb3RvRnVuY0VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUFycmF5SXRlcmF0b3JP
YmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jS2V5cyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY0tleXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZUFy
cmF5SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6
OktleXMpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5j
UG9wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jUG9wLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC04OTEsNyArODkxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1BvcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJv
dG9GdW5jUHVzaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTI2LDcgKzkyNiw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNQdXNoKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihu
ZXdMZW5ndGgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RnVuY1JldmVyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNSZXZlcnNlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDI5LDcgKzEwMjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUmV2ZXJzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTaGlmdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NoaWZ0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MDU1LDcgKzEwNTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9G
dW5jU2hpZnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
cnJheVByb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU2xp
Y2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtYXJyYXkucHJv
dG90eXBlLnNsaWNlCiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTExNyw3
ICsxMTE3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1Ns
aWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNTcGxpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNTcGxpY2Us
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgLy8gMTUuNC40LjEyCiAKQEAgLTEyMjQsNyArMTIyNCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTcGxpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNVblNoaWZ0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVW5TaGlmdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTM1OSw3ICsxMzU5LDcgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIGZhc3RJbmRleE9mKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgSlNBcnJheSoKICAgICB9CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jSW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTM5OSw3ICsxMzk5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihh
cnJheVByb3RvRnVuY0xhc3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTQ3LDcg
KzE1NDcsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgY29weUVsZW1lbnRzKFQqIGJ1ZmZlciwgdW5z
aWduZWQgb2Zmc2V0LCBUKiBzb3VyY2UsIHVuc2lnbmVkCiAgICAgICAgIGNsZWFyRWxlbWVudDxU
PihidWZmZXJbaSArIG9mZnNldF0pOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNDb25jYXRNZW1jcHkoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
YXJyYXlQcm90b1ByaXZhdGVGdW5jQ29uY2F0TWVtY3B5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJhbWUt
PmFyZ3VtZW50Q291bnQoKSA9PSAyKTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0xNjM0LDcgKzE2MzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5
UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweShKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBlbmRNZW1jcHkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXJyYXlQcm90b1ByaXZhdGVGdW5jQXBwZW5kTWVtY3B5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKSA9PSAzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FycmF5UHJvdG90eXBlLmgKaW5kZXggNTNlZjY5YTU0ODJkZWVlMmU5NTUxZjhhYTgz
MzZjYmE3ZmZkMzcxNy4uZDZkMDgxNDYyNDliN2FjMzdmZGY4NGYxMjI4YWZkOGUyODllM2YxOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5oCkBA
IC00OSwxMCArNDksMTAgQEAgY2xhc3MgQXJyYXlQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNB
cnJheSB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoQXJyYXlQcm90
b3R5cGUsIEFycmF5UHJvdG90eXBlOjpCYXNlKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1NwZWNpZXNDcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNUb1N0cmlu
ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvUHJpdmF0ZUZ1bmNDb25jYXRN
ZW1jcHkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYXJyYXlQcm90b1ByaXZhdGVGdW5jQXBwZW5kTWVtY3B5KEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
U3BlY2llc0NyZWF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5j
VG9TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1ZhbHVl
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9Qcml2YXRlRnVuY0NvbmNh
dE1lbWNweSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9Qcml2YXRlRnVu
Y0FwcGVuZE1lbWNweSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAK
aW5kZXggMzFhOGYyM2ZkNjk5ZTdmNTRkMjNlZThhMjE3NWM5ZGIyNzM3ZDVlMy4uZjdmYWM1OGJj
NDk4YmUwY2QyY2E0NGQ1ZTNmYTJiZDA2MTFjZjYwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBA
IC0zNiwxMyArMzYsMTYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxF
KEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkFzeW5jRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEFzeW5jRnVuY3Rpb25Db25z
dHJ1Y3RvcikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFz
eW5jRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxB
c3luY0Z1bmN0aW9uQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdz
KGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlv
bihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2Rl
OjpBc3luYykpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmMsIGNh
bGxGcmFtZS0+bmV3VGFyZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDA0ZDgzODk5NmJhM2E0MzBhZjEzZDIyYzVmMTRiY2NkZjE4M2EzYWYuLjA3MDI0
MDkwNGYyOWMxODdhZTM2NjZlNzA5NWVmMWViOTAwNGFjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMTMgKzM2LDE2IEBAIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Ip
OwogCiBjb25zdCBDbGFzc0luZm8gQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yOjpz
X2luZm8gPSB7ICJBc3luY0dlbmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxB
c3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBhcmdzLCBG
dW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jR2VuZXJhdG9yKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBc3luY0dlbmVyYXRv
ckZ1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3luY0dlbmVyYXRvciwg
Y2FsbEZyYW1lLT5uZXdUYXJnZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BdG9taWNzT2JqZWN0LmNwcAppbmRleCA0YTc1NzVmYjU5ODMzNWM2OGUxMTAwZjAzNzI4
MTY4OGM4NDY1ZjhiLi5kZjYzY2E0Y2U4ZDQ1ZjRmZDhmYTA1NmViZDRkM2NjZDFjNGY4ODQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BdG9taWNzT2JqZWN0LmNwcApA
QCAtNTAsOCArNTAsOCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUo
QXRvbWljc09iamVjdCk7CiAgICAgbWFjcm8od2FrZSwgV2FrZSwgMykgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgbWFjcm8oeG9yLCBYb3IsIDMp
CiAKLSNkZWZpbmUgREVDTEFSRV9GVU5DX1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1lLCBjb3Vu
dCkgICAgICAgICAgICAgICAgIFwKLSAgICBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0
b21pY3NGdW5jICMjIHVwcGVyTmFtZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworI2Rl
ZmluZSBERUNMQVJFX0ZVTkNfUFJPVE8obG93ZXJOYW1lLCB1cHBlck5hbWUsIGNvdW50KSAgXAor
ICAgIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmMgIyMgdXBwZXJOYW1lKTsK
IEZPUl9FQUNIX0FUT01JQ1NfRlVOQyhERUNMQVJFX0ZVTkNfUFJPVE8pCiAjdW5kZWYgREVDTEFS
RV9GVU5DX1BST1RPCiAKQEAgLTMxMiw1MiArMzEyLDUyIEBAIEVuY29kZWRKU1ZhbHVlIGlzTG9j
a0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmcpCiAKIH0gLy8g
YW5vbnltb3VzIG5hbWVzcGFjZQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21p
Y3NGdW5jQWRkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jQWRkLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQWRkRnVu
YygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY0FuZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0FuZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFuZEZ1bmMoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNDb21wYXJlRXhjaGFuZ2Uo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNDb21wYXJlRXhjaGFuZ2UsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBDb21w
YXJlRXhjaGFuZ2VGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0
b21pY3NGdW5jRXhjaGFuZ2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNFeGNoYW5n
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIEV4Y2hhbmdlRnVuYygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBhdG9taWNzRnVuY0lzTG9ja0ZyZWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNJ
c0xvY2tGcmVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBpc0xvY2tGcmVlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LT5hcmd1bWVudCgwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWlj
c0Z1bmNMb2FkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jTG9hZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIExvYWRG
dW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jT3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNPciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gYXRvbWljT3Bl
cmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIE9yRnVuYygpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY1N0b3JlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGF0b21pY3NGdW5jU3RvcmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldp
dGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdG9yZUZ1bmMoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNTdWIoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oYXRvbWljc0Z1bmNTdWIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lLCBTdWJGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jV2FpdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNz
RnVuY1dhaXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQyNyw3ICs0MjcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jV2FpdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0s
IHJlc3VsdFN0cmluZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21p
Y3NGdW5jV2FrZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1dha2UsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTQ1OSw3ICs0NTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGF0b21pY3NGdW5jV2FrZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoUGFya2luZ0xvdDo6dW5wYXJrQ291
bnQocHRyLCBjb3VudCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9t
aWNzRnVuY1hvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY1hvciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gYXRvbWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIFhvckZ1
bmMoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJ
bnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggYmVkZmM5NzRiOTY0NWNmYWY1ODViMWNhZDI4ZTRlNDE1NmY4
MGIzNC4uYWRlN2QxMThhYTJhYTFjOGQ5ODQzYjBkMTJlOGRiYTBmNDEyY2YyMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcApA
QCAtMzQsOCArMzQsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50Q29uc3RydWN0b3JGdW5jQXNVaW50TihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YmlnSW50Q29uc3RydWN0b3JGdW5jQXNJbnROKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1bmNB
c1VpbnROKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludENvbnN0cnVj
dG9yRnVuY0FzSW50Tik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkBAIC01NCw3ICs1NCw3IEBA
IGNvbnN0IENsYXNzSW5mbyBCaWdJbnRDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24i
LCAmQmFzZTo6c19pbmZvLCAmYmlnSW50CiBAZW5kCiAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsQmlnSW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxCaWdJbnRD
b25zdHJ1Y3Rvcik7CiAKIEJpZ0ludENvbnN0cnVjdG9yOjpCaWdJbnRDb25zdHJ1Y3RvcihWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3Ry
dWN0dXJlLCBjYWxsQmlnSW50Q29uc3RydWN0b3IsIG51bGxwdHIpCkBAIC0xMDIsNyArMTAyLDcg
QEAgSlNWYWx1ZSB0b0JpZ0ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IGFyZ3VtZW50KQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQmlnSW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbEJpZ0ludENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MjksNyArMTI5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEJp
Z0ludENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0JpZ0ludChnbG9iYWxPYmplY3QsIHByaW1p
dGl2ZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRDb25zdHJ1
Y3RvckZ1bmNBc1VpbnROKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludENvbnN0cnVjdG9yRnVu
Y0FzVWludE4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0OSw3ICsxNDksNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludENvbnN0cnVjdG9yRnVuY0FzVWludE4oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKEpTQmlnSW50Ojphc1VpbnROKGdsb2JhbE9iamVjdCwgbnVtYmVyT2ZCaXRzLCBiaWdJ
bnQuYXNIZWFwQmlnSW50KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YmlnSW50Q29uc3RydWN0b3JGdW5jQXNJbnROKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludENv
bnN0cnVjdG9yRnVuY0FzSW50TiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5jcHAKaW5kZXggMWQ4ZmMwMDI0
YTE5NzgxZTNiYmY3ZGQzMmIyYjE0ZmMwMGIxMDljNi4uOWRjMGZlMmI2MDQ3ZmIyZTk4NTkwNWYy
ZGU2MzEzYzI3ZDJkMDg4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQmlnSW50UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9CaWdJbnRQcm90b3R5cGUuY3BwCkBAIC0zOCw5ICszOCw5IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1bmNU
b1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGJpZ0ludFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVuY1RvU3RyaW5nKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVu
Y1ZhbHVlT2YpOwogCiB9CiAKQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElO
RSBKU0JpZ0ludCogdG9UaGlzQmlnSW50VmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGJpZ0ludFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFBy
b3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjcsNyArMTI3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKIH0KIAogLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gc2hv
dWxkIGludHJvZHVjZSB0aGUgcmlnaHQgc2VwYXJhdG9ycyBmb3IgdGhvdXNhbmRzIGFuZCBzaW1p
bGFyIHRoaW5ncy4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYmlnSW50UHJvdG9GdW5jVG9Mb2Nh
bGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0KGdsb2JhbE9iamVjdCwgdmFsdWUpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0
cnVjdG9yLmNwcAppbmRleCAyNjQ4MDllNGYzYWEwNjU0OTUxYjgzZWE1NTM5MDdmMGU2NDQ1MGZj
Li4wMGY4NWIzMTdmZDEwNTY1ZDRlODY2NDFmOTczYjQ1ZTY0YzMxMzJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKQEAg
LTMwLDE0ICszMCwxNyBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUo
Qm9vbGVhbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEJvb2xlYW5Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEJvb2xlYW5Db25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEJvb2xlYW5Db25zdHJ1Y3Rvcik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQm9vbGVhbkNvbnN0cnVjdG9y
KTsKKwogLy8gRUNNQSAxNS42LjEKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxCb29sZWFuQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEJvb2xlYW5D
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvQm9vbGVhbihnbG9iYWxPYmplY3QpKSk7CiB9CiAKIC8vIEVDTUEg
MTUuNi4yCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRo
Qm9vbGVhbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhCb29s
ZWFuQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5kZXggMDI1MjY1NzRmM2Iw
YzE5ZGUyNzI1OWUzYTBkMjZkM2JlZWJjZTNmMS4uYmI0YTQ1OWM2NWIyNTA0MDE4NmYyM2I4OWJl
MGUzZDJlYjc1YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTI2LDggKzI2LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNU
b1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvb2xlYW5Q
cm90b0Z1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib29s
ZWFuUHJvdG9GdW5jVmFsdWVPZik7CiAKIH0KIApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIEJvb2xl
YW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib29sZWFuUHJvdG9GdW5jVG9TdHJp
bmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg0LDcgKzg0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHZtLnNtYWxsU3RyaW5ncy50cnVl
U3RyaW5nKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90
b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9m
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Db25zb2xlT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVPYmplY3QuY3BwCmluZGV4IGM1M2U0ZTI3NjhmZGZiMjFiMDg1MzJmNDdlNzAwZjI3
ZGEzNTBjZWIuLmNiZTliM2Q4OGM2YjhkNjVhMGVhODY1ZDMzM2ZlMjQ0NzA1ZjcwMWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCkBAIC00
NywzMiArNDcsMzIgQEAgc3RhdGljIFN0cmluZyB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSoKIAogU1RBVElDX0FTU0VSVF9J
U19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKENvbnNvbGVPYmplY3QpOwogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGVidWcoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNFcnJvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0xvZyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0luZm8oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNXYXJuKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNE
aXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNEaXJYTUwoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNUYWJsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jQXNzZXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ291bnQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudFJlc2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
UHJvZmlsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
VGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVMb2coSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUaW1lRW5kKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91
cENvbGxhcHNlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jUmVjb3JkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkRW5k
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3Rv
RnVuY0RlYnVnKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jTG9nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNJbmZvKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNXYXJuKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNDbGVhcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jRGlyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNEaXJYTUwpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVBy
b3RvRnVuY1RhYmxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQ
cm90b0Z1bmNUcmFjZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xl
UHJvdG9GdW5jQXNzZXJ0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNv
bGVQcm90b0Z1bmNDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25z
b2xlUHJvdG9GdW5jQ291bnRSZXNldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZSk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZUxvZyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZUVuZCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXBD
b2xsYXBzZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQ
cm90b0Z1bmNSZWNvcmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29s
ZVByb3RvRnVuY1JlY29yZEVuZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdCk7CiAKIGNvbnN0IENsYXNzSW5mbyBDb25zb2xlT2Jq
ZWN0OjpzX2luZm8gPSB7ICJjb25zb2xlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShDb25zb2xlT2JqZWN0KSB9OwogCkBAIC0xMzcsMzIgKzEz
NywzMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY29uc29sZUxvZ1dpdGhMZXZlbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNEZWJ1ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jRGVidWcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNvbnNvbGVMb2dXaXRoTGV2ZWwoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIE1lc3NhZ2VMZXZlbDo6RGVidWcpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjb25zb2xlTG9nV2l0aExl
dmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNzYWdlTGV2ZWw6OkVycm9yKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0xvZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jTG9nLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjb25z
b2xlTG9nV2l0aExldmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNzYWdlTGV2ZWw6Okxv
Zyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNJbmZvKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNJbmZvLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBjb25zb2xlTG9nV2l0aExldmVsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBNZXNz
YWdlTGV2ZWw6OkluZm8pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jV2FybihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9G
dW5jV2FybiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxvZ1dpdGhMZXZlbChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29s
ZVByb3RvRnVuY0NsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xl
Q2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0xNzIsNyArMTcyLDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jRGlyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNEaXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29u
c29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAg
aWYgKCFjbGllbnQpCkBAIC0xODIsNyArMTgyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyWE1MKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNEaXJYTUwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNsaWVu
dCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGll
bnQpCkBAIC0xOTIsNyArMTkyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0RpclhNTChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY1RhYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9
IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpAQCAtMjAy
LDcgKzIwMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNv
bGVQcm90b0Z1bmNUcmFjZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmpl
Y3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTIxMiw3ICsyMTIsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVHJh
Y2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNBc3NlcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y0Fzc2VydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0NvdW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNDb3VudCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwog
ICAgIGF1dG8qIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwpAQCAtMjQ0
LDcgKzI0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNDb3VudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICBhdXRvKiBjbGllbnQgPSBnbG9iYWxP
YmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQ291bnRSZXNldChKU0dsb2Jh
bE9iamVjdCogZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQ
cm9maWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNzksNyArMjc5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGUoSlNHbG9iYWxPYmplY3QqIGds
b2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVu
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEpTR2xvYmFsT2JqZWN0KiBn
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNo
b3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdChK
U0dsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNU
aW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUaW1lLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0
byogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CkBAIC0zMzUsNyArMzM1
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y1RpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jVGltZUxvZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jVGltZUxvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9i
YWxPYmplY3QtPnZtKCkpOwogICAgIGF1dG8qIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29s
ZUNsaWVudCgpOwpAQCAtMzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVFbmQsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICBhdXRvKiBjbGll
bnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTM2Myw3ICszNjMsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVu
ZChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNv
bGVQcm90b0Z1bmNUaW1lU3RhbXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y1RpbWVTdGFtcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNv
bnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1w
KEpTR2xvYmFsT2JqZWN0KiBnbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNHcm91cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50
KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0zODMsNyArMzgzLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3Jv
dXBDb2xsYXBzZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0dyb3VwQ29s
bGFwc2VkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29s
ZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpAQCAtMzkzLDcgKzM5Myw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNl
ZChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY0dyb3VwRW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cEVu
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGll
bnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQoSlNHbG9iYWxP
YmplY3QqIGdsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNS
ZWNvcmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1JlY29yZCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBD
b25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAg
ICBpZiAoIWNsaWVudCkKQEAgLTQxMyw3ICs0MTMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRFbmQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1JlY29yZEVuZCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25z
b2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBp
ZiAoIWNsaWVudCkKQEAgLTQyMyw3ICs0MjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkRW5kKEpTR2xvYmFsT2JqZWN0KiBnbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNTY3JlZW5zaG90KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNTY3JlZW5zaG90LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlm
ICghY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggNWZkMGVhN2Q3NzU0MGE4YTEzZmY0NDgzZWVjZDRiMjQwMzU1MWQ4
My4uNjg3ZmU3OTdlZGEwNzE5ZDY1MDA4ZjFiOWFiYWUyNmM1ODMwN2UxOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC0zMCw5
ICszMCw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGRhdGVQYXJzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlVVRDKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVOb3coSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVBhcnNlKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVVUQyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVOb3cpOwogCiB9CiAKQEAgLTUyLDggKzUyLDggQEAgY29uc3QgQ2xhc3NJbmZvIERhdGVDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmYK
IAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKERhdGVDb25zdHJ1Y3Rv
cik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsRGF0ZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9y
KTsKIAogRGF0ZUNvbnN0cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbERh
dGUsIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IpCkBAIC0xMzUsMTQgKzEzNSwxNCBAQCBK
U09iamVjdCogY29uc3RydWN0RGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIG5ld1RhcmdldCwgY29uc3QgQQogICAgIHJldHVybiBEYXRlSW5zdGFuY2U6OmNyZWF0ZSh2
bSwgZGF0ZVN0cnVjdHVyZSwgdmFsdWUpOwogfQogICAgIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhj
YWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RGF0ZShnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCksIGFyZ3MpKTsKIH0KIAogLy8gRUNNQSAx
NS45LjIKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxEYXRlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbERhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgR3JlZ29yaWFuRGF0
ZVRpbWUgdHM7CkBAIC0xNTAsNyArMTUwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgZm9ybWF0RGF0
ZVRpbWUodHMsIERhdGVUaW1lRm9ybWF0RGF0ZUFuZFRpbWUsIGZhbHNlKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQYXJzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihk
YXRlUGFyc2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NCwxMiArMTY0LDEyIEBAIEpTVmFs
dWUgZGF0ZU5vd0ltcGwoKQogICAgIHJldHVybiBqc051bWJlcihqc0N1cnJlbnRUaW1lKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVOb3coSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVOb3csIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIoanNDdXJyZW50VGltZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVVUQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlVVRDLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGRvdWJsZSBtcyA9
IG1pbGxpc2Vjb25kc0Zyb21Db21wb25lbnRzKGdsb2JhbE9iamVjdCwgQXJnTGlzdChjYWxsRnJh
bWUpLCBXVEY6OlVUQ1RpbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
dGltZUNsaXAobXMpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwCmluZGV4IDk1NTYzZDA5ODQ2MmNjNTg3YWU1NDhhMGFhYTVjM2NlODIzNmJl
OWIuLjExMjJhOWYyYmVlYzRkNDE2NjQwN2U4MmJhMWE3NWVkMDIzMTBiNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC0zOCw0NyAr
MzgsNDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldERhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERheShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNHZXRNaWxsaVNlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldE1vbnRoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRzKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRUaW1lem9uZU9mZnNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0VVRDSG91cnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0VVRDTWludXRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFllYXIoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1NldERhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRIb3VycyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRNb250aChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0
U2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRGF0
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0hv
dXJzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1Nl
dFVUQ01pbnV0ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNT
ZXRVVENTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0Rh
dGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNU
b1VUQ1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9JU09TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1Rv
SlNPTihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRlUHJvdG9GdW5jR2V0RGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNHZXREYXkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jR2V0RnVsbFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5j
R2V0SG91cnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TWls
bGlTZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1p
bnV0ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TW9udGgp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENEYXRlKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0RheSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhcik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENIb3Vycyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENNb250aCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihkYXRlUHJvdG9GdW5jU2V0RGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGVQcm90b0Z1bmNTZXRIb3Vycyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90
b0Z1bmNTZXRNaWxsaVNlY29uZHMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jU2V0TWludXRlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1
bmNTZXRNb250aCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRT
ZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFRpbWUp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDRGF0ZSk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENGdWxsWWVhcik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENIb3Vycyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTWludXRlcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENNb250aCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENTZWNvbmRzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFllYXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9EYXRlU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvVGltZVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGVQcm90b0Z1bmNUb1VUQ1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNUb0pTT04pOwogCiB9CiAKQEAgLTI4NywxOSArMjg3LDE5IEBAIHZvaWQg
RGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogCiAvLyBGdW5jdGlvbnMKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVu
Y1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIGNvbnN0IGJvb2wgYXNVVENWYXJpYW50ID0gZmFsc2U7CiAgICAgcmV0
dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIERhdGVUaW1l
Rm9ybWF0RGF0ZUFuZFRpbWUsIGFzVVRDVmFyaWFudCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvVVRDU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGRhdGVQcm90b0Z1bmNUb1VUQ1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBjb25zdCBib29sIGFzVVRDVmFyaWFudCA9
IHRydWU7CiAgICAgcmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIERhdGVUaW1lRm9ybWF0RGF0ZUFuZFRpbWUsIGFzVVRDVmFyaWFudCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzM2LDE5ICszMzYsMTkgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jVG9JU09TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTm9udHJpdmlhbFN0cmluZyh2bSwgU3RyaW5nKGJ1ZmZl
ciwgY2hhcmFjdGVyc1dyaXR0ZW4pKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jVG9EYXRlU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIGNvbnN0IGJvb2wgYXNVVENWYXJpYW50ID0gZmFsc2U7
CiAgICAgcmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IERhdGVUaW1lRm9ybWF0RGF0ZSwgYXNVVENWYXJpYW50KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgY29uc3QgYm9vbCBhc1VUQ1Zhcmlh
bnQgPSBmYWxzZTsKICAgICByZXR1cm4gZm9ybWF0ZURhdGVJbnN0YW5jZShnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgRGF0ZVRpbWVGb3JtYXRUaW1lLCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2wsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTM3MSw3ICszNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChKU0dsb2JhbE9iamVjdCogZ2xv
YgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmpl
Y3QtPm9yZGluYXJ5VG9QcmltaXRpdmUoZ2xvYmFsT2JqZWN0LCB0eXBlKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRUaW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
ODMsNyArMzgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0VGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIodGhpc0RhdGVPYmotPmludGVybmFsTnVtYmVyKCkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zOTgsNyArMzk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
RnVsbFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MTMsNyArNDEzLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRh
dGVUaW1lLT55ZWFyKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0TW9udGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1v
bnRoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MjgsNyArNDI4LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TW9udGgoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlh
bkRhdGVUaW1lLT5tb250aCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1
bmNHZXRVVENNb250aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDQzLDcgKzQ0Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJl
cihncmVnb3JpYW5EYXRlVGltZS0+bW9udGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNHZXREYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00NTgsNyArNDU4LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF0ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDczLDcg
KzQ3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVU
Q0RhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bW9udGhEYXkoKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldERheSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDg4
LDcgKzQ4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dERheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RheShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDRGF5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC01MDMsNyArNTAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jR2V0VVRDRGF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT53ZWVrRGF5KCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0SG91cnMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEhvdXJzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01MTgsNyArNTE4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT5ob3VyKCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC01MzMsNyArNTMzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1l
LT5ob3VyKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9G
dW5jR2V0TWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TWludXRl
cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTQ4LDcgKzU0OCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5E
YXRlVGltZS0+bWludXRlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUHJvdG9GdW5jR2V0VVRDTWludXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jR2V0VVRDTWludXRlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTYzLDcgKzU2Myw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcihncmVnb3JpYW5EYXRlVGltZS0+bWludXRlKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTc4LDcg
KzU3OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNl
Y29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNTkzLDcgKzU5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+c2Vjb25kKCkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWls
bGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29u
ZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTYxMiw3ICs2MTIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nh
c3Q8aW50MzJfdD4obXMpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY0dldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MzEsNyAr
NjMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRD
TWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KG1zKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTY0Niw3ICs2NDYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNHZXRUaW1lem9uZU9mZnNldChKU0dsb2JhbE9iamVjdCogZ2xvYgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoLWdyZWdvcmlhbkRhdGVUaW1lLT51dGNP
ZmZzZXRJbk1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1NldFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFRp
bWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0Nyw3NyArNzQ3LDc3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBzZXROZXdWYWx1ZUZyb21EYXRlQXJncyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TWls
bGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29u
ZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCAxLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01pbGxpc2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1
ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMSwgV1RGOjpVVENUaW1lKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0U2Vjb25k
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0U2Vjb25kcywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDIsIFdU
Rjo6TG9jYWxUaW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJv
dG9GdW5jU2V0VVRDU2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0
VVRDU2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUsIDIsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZGF0ZVByb3RvRnVuY1NldE1pbnV0ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVB
cmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAzLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAzLCBXVEY6
OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXRIb3VycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0SG91cnMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCA0LCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1NldFVUQ0hvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1
bmNTZXRVVENIb3VycywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tVGltZUFyZ3MoZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIDQsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZGF0ZVByb3RvRnVuY1NldERhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbURhdGVBcmdz
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAxLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1Zh
bHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAxLCBXVEY6OlVUQ1RpbWUp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRNb250
aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0TW9udGgsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IHNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAyLCBXVEY6
OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY1NldFVUQ01vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENN
b250aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIDIsIFdURjo6VVRDVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNTZXRGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3Mo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDMsIFdURjo6TG9jYWxUaW1lKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ0Z1bGxZZWFyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
ZXROZXdWYWx1ZUZyb21EYXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMywgV1RGOjpV
VENUaW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
U2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0WWVhciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtODYyLDcgKzg2Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFllYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRZZWFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04
NzksNyArODc5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5j
R2V0WWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnllYXIoKSAtIDE5MDApKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9KU09OKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb0pTT04sIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAppbmRleCBl
ZWFhZDM3Y2I0YTViNmM1NjE3Yjk3NjE3MjlhMDA2MjU5NzM5ZTdlLi41NzhjZDI4NTIzOGNkNmUy
MmE0NzQ3NDQwNmRhYjU4ZTQ4MDc0NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5oCkBAIC01Nyw2ICs1Nyw2IEBAIGNsYXNzIERhdGVQcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRUaW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRUaW1lKTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IGJjMGE2MjI2MjYxY2U0ZGRhN2M5NzcwNWFiMDA0ZDBk
NjE5ZTNjZWUuLjBmMmY1YTMxODQwMmZiYjdjN2Q4ODAyYjZkNzg0MmVmZTQwNmM4NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3Bw
CkBAIC0zMCw4ICszMCw4IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJM
RShFcnJvckNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEVycm9yQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShFcnJvckNvbnN0cnVjdG9yKSB9OwogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0RXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXJyb3JDb25zdHJ1Y3Rvcik7
CiAKIEVycm9yQ29uc3RydWN0b3I6OkVycm9yQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEVy
cm9yQ29uc3RydWN0b3IsIGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpCkBAIC00OCw3ICs0OCw3
IEBAIHZvaWQgRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBFcnJvclBy
b3RvdHlwZSogZXJyb3JQcm90b3R5cGUpCiAKIC8vIEVDTUEgMTUuOS4zCiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0RXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RFcnJvckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC02Myw3ICs2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0RXJy
b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2Jh
bE9iamVjdCwgZXJyb3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBm
YWxzZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXJyb3JDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBK
U1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIFN0cnVjdHVyZSog
ZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXggZTFh
YjU1YmE0Y2Y0ZGEwYjRjN2E0YjU2MDRhYWQ1MDgxYjg0OTFhNS4uYjhjNjJkMzc1OTk1NTRlZDU3
NzVkM2Y2OTk0YmI5YTE2OWFjMjEzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShFcnJvclByb3RvdHlw
ZUJhc2UpOwogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEVycm9yUHJv
dG90eXBlKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZXJyb3JQcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZXJyb3JQcm90b0Z1bmNUb1N0cmluZyk7CiAKIH0KIApAQCAt
NjcsNyArNjcsNyBAQCBFcnJvclByb3RvdHlwZTo6RXJyb3JQcm90b3R5cGUoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5j
dGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC8vIEVDTUEtMjYyIDUuMSwgMTUu
MTEuNC40Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJvdG9GdW5jVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZXJyb3JQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRmlu
YWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcAppbmRleCBkN2M0MzQy
OTBjNGQwNDg1MDY1ZDJiMjA5ZGQ3OGU2N2Q0YmMxOGU1Li5iYWJlNGRlMTljYTMzZjlkYTU4Mjgy
OWE5OTEwYzdkNWZiMGEzYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yLmNwcApA
QCAtNDUsMjIgKzQ1LDIyIEBAIHZvaWQgRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvcjo6
ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBGaW5hbGl6YXRpb25SZWdpc3RyCiAgICAgcHV0RGlyZWN0
V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90
eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxGaW5hbGl6YXRpb25S
ZWdpc3RyeSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RGaW5h
bGl6YXRpb25SZWdpc3RyeSk7CiAKIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3I6OkZp
bmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbEZpbmFsaXphdGlvblJlZ2lzdHJ5LCBj
b25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3RyeSkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEZpbmFsaXphdGlvblJlZ2lzdHJ5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bEZpbmFsaXphdGlvblJlZ2lzdHJ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgIkZpbmFsaXphdGlvblJlZ2lzdHJ5IikpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3Ry
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RGaW5hbGl6YXRpb25SZWdpc3RyeSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGUuY3BwCmluZGV4IDYxMWY5
ZjhmNjkzMDE3ZGRmMzlmOGZiNDc0NTg0OTNkYzk5MGI4ODAuLmY4YjFmN2VmNDQ5YTA1NjMwZGUy
NTU2ZTM1Y2QzMDRiNmFjYTU2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ZpbmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GaW5hbGl6YXRpb25SZWdpc3RyeVByb3RvdHlwZS5jcHAKQEAg
LTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBGaW5hbGl6
YXRpb25SZWdpc3RyeVByb3RvdHlwZTo6c19pbmZvID0geyAiRmluYWxpemF0aW9uUmVnaXN0cnki
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVVucmVnaXN0ZXIoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3Rv
RnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJlZ2lzdGVyKTsKIAog
dm9pZCBGaW5hbGl6YXRpb25SZWdpc3RyeVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtNjUsNyArNjUsNyBAQCBBTFdB
WVNfSU5MSU5FIHN0YXRpYyBKU0ZpbmFsaXphdGlvblJlZ2lzdHJ5KiBnZXRGaW5hbGl6YXRpb25S
ZWdpc3RyeShWTSYgdm0sIEpTRwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlSZWdpc3Rl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODksNyArODksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiBlbmNvZGVkSlNVbmRlZmluZWQoKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVVucmVnaXN0
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJl
Z2lzdGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGNiM2E4ZTNmZGI2Mjdj
ZTNlYmUzYTVjMDg1MzAxM2U5ZmQ1YTYzYzkuLjAzOTg1YzU5NTY3MzQ0NTIwY2VlZGFiNDZlYWJi
NDYyMmQzNDQ3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNywxNCArMzcsMTcgQEAgU1RBVElDX0FTU0VS
VF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25z
dCBDbGFzc0luZm8gRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0
aW9uQ29uc3RydWN0b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbEZ1bmN0aW9uQ29uc3RydWN0b3IpOworCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJn
TGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25Db25zdHJ1
Y3Rpb25Nb2RlOjpGdW5jdGlvbiwgY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSkpOwogfQogCiAvLyBF
Q01BIDE1LjMuMSBUaGUgRnVuY3Rpb24gQ29uc3RydWN0b3IgQ2FsbGVkIGFzIGEgRnVuY3Rpb24K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxGdW5jdGlvbkNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFy
Z0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3Ry
dWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcAppbmRleCBh
NmYwZDVhMzhhYjRlMDg1NmM2NmMwMjVkMTE0YTIwY2Y0YjYyZDk3Li4zMzI4ZGY2Y2MzOTdhMDVj
MzAxYTU5YjZiOWNjZTgyMjQwOWZjM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC0zMiwxMCArMzIsMTEgQEAgU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEZ1bmN0aW9uUHJvdG90eXBlKTsK
IAogY29uc3QgQ2xhc3NJbmZvIEZ1bmN0aW9uUHJvdG90eXBlOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
RnVuY3Rpb25Qcm90b3R5cGUpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJvdG9GdW5jVG9T
dHJpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEZ1bmN0aW9uUHJv
dG90eXBlKTsKIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1wcm9wZXJ0aWVzLW9m
LXRoZS1mdW5jdGlvbi1wcm90b3R5cGUtb2JqZWN0Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Qcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvblByb3RvdHlwZSwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KQEAgLTcxLDcgKzcyLDcgQEAgdm9pZCBGdW5jdGlvblByb3Rv
dHlwZTo6aW5pdFJlc3RyaWN0ZWRQcm9wZXJ0aWVzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE8KICAgICBwdXREaXJlY3ROb25JbmRleEFjY2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPmFyZ3VtZW50cywgZXJyb3JHZXR0ZXJTZXR0ZXIsIFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3Nvcik7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5l
cmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IGRhNGEzYWQ5YTRhNmNj
NTY5ZGM0MWM0ZThkYjZkMDM1NWQ3MGVmMjQuLjdmYTNiMjExNjIzNjg3YzFhOTliMzU1MThkMmI0
ZDA0MjdkNDc3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dl
bmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNiwxMyArMzYs
MTYgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEdlbmVyYXRvckZ1
bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiR2VuZXJhdG9yRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdlbmVyYXRvckZ1bmN0aW9u
Q29uc3RydWN0b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CisK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBhcmdzLCBGdW5j
dGlvbkNvbnN0cnVjdGlvbk1vZGU6OkdlbmVyYXRvcikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0
b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVu
Y3Rpb25Db25zdHJ1Y3Rpb25Nb2RlOjpHZW5lcmF0b3IsIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3BwCmluZGV4IGE4NWYzM2JiNmQyOTQyZjhi
MTY3MzExYjc5MjMwNTgyY2EwMTQ5N2IuLmQwMmMyYzY4ZWQ3YjAzZWNmZDg1MzJmNDY2ZjNjMzMw
MTRkNjJlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcApAQCAtMzEsNyArMzEs
NyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBp
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
T2JqZWN0TG9nKTsKIAogfQogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uT2JqZWN0OjpkaXNhYmxlKFZNJiB2bSkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9i
amVjdExvZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmpl
Y3RMb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcAppbmRleCA0NDRkNTIz
MzhhYWZkYjVkMDRjYWQ1NzM0OTVkMThlZjg3M2Q5NWM2Li5iYWJiYTUxYzQ2MDdkYWQyY2FkNjc2
ZmM5Nzc5NTVjMWE1M2E1MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCkBAIC0zNyw3ICszNyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElC
TEUoSW50bENvbGxhdG9yQ29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2Yo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKEludGxDb2xsYXRvckNvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZik7CiAK
IH0KIApAQCAtNDUsOCArNDUsOCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzTwogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxD
b2xsYXRvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSW50bENv
bGxhdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxD
b2xsYXRvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAmY29sbGF0b3JD
b25zdHJ1Y3RvclRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEludGxDb2xsYXRv
ckNvbnN0cnVjdG9yKSB9OwogCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgSW50bENvbGxhdG9yQ29u
c3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bENvbGxhdG9yUHJvdG90eXBlKiBj
b2xsCiAgICAgY29sbGF0b3JQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsQ29sbGF0b3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0SW50bENvbGxhdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDMs
NyArMTAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNvbGxhdG9yKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbEludGxDb2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSW50bENvbGxhdG9y
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIC8vIDEwLjEuMiBJbnRsLkNvbGxhdG9yIChbbG9jYWxlcyBbLCBvcHRpb25zXV0pIChF
Q01BLTQwMiAyLjApCiAgICAgLy8gMS4gSWYgTmV3VGFyZ2V0IGlzIHVuZGVmaW5lZCwgbGV0IG5l
d1RhcmdldCBiZSB0aGUgYWN0aXZlIGZ1bmN0aW9uIG9iamVjdCwgZWxzZSBsZXQgbmV3VGFyZ2V0
IGJlIE5ld1RhcmdldC4KQEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsSW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3IpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvckNvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExv
Y2FsZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNT
dXBwb3J0ZWRMb2NhbGVzT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwCmluZGV4
IDZhNzk4M2Q4ZWIxMDRmZTY1MGRmN2ViZDcyOTY3NDA5Y2Y4MGM0M2MuLjA0Y2NkYzA2ZWUzMzQy
ZjU4ODZlYTM5OWFkNjRhMWM4M2M0YzRlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcApAQCAtMzMsOCArMzMs
OSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENv
bGxhdG9yUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bENvbGxhdG9yUHJv
dG90eXBlR2V0dGVyQ29tcGFyZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJ
bnRsQ29sbGF0b3JQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxDb2xsYXRvckZ1bmNDb21wYXJlKTsKIAogfQogCkBAIC03
NSw3ICs3Niw3IEBAIHZvaWQgSW50bENvbGxhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiAgICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRvckZ1bmNDb21w
YXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxDb2xsYXRvckZ1bmNDb21wYXJlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMDQsNyArMTA1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bENvbGxhdG9yRnVuY0NvbXBhcmUoSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjb2xsYXRvci0+
Y29tcGFyZVN0cmluZ3MoZ2xvYmFsT2JqZWN0LCB4Vmlld1dpdGhTdHJpbmcudmlldywgeVZpZXdX
aXRoU3RyaW5nLnZpZXcpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRs
Q29sbGF0b3JQcm90b3R5cGVHZXR0ZXJDb21wYXJlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MzMsNyArMTM0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JQ
cm90b3R5cGVHZXR0ZXJDb21wYXJlKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYm91bmRDb21wYXJlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsQ29sbGF0b3JQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKEludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcAppbmRleCA2Mzg4MjExYTI3
ZGM0YjJiYTk2Y2FlM2Q5OGYxMDYwNDM3ZWJkOTI3Li5kOTViZjFiM2JhNWQ4OTFkNTMxZjM3Y2M4
NDZjZGU3ZGQwZGY2NGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1
bmNTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
RnVuY1N1cHBvcnRlZExvY2FsZXNPZik7CiAKIH0KIApAQCAtNjQsOCArNjQsOCBAQCBTdHJ1Y3R1
cmUqIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZt
LCBKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxEYXRlVGlt
ZUZvcm1hdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbEludGxEYXRlVGltZUZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpOwogCiBJbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0
cnVjdHVyZSwgY2FsbEludGxEYXRlVGltZUZvcm1hdCwgY29uc3RydWN0SW50bERhdGVUaW1lRm9y
bWF0KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxEYXRlVGltZUZvcm1hdFBybwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIGRh
dGVUaW1lRm9ybWF0UHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxE
YXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVG
b3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3JtYXQoSlNH
bG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShkYXRlVGltZUZvcm1hdCk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRp
bWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxEYXRlVGltZUZvcm1hdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICAvLyAxMi4xLjIgSW50bC5EYXRlVGltZUZvcm1hdCAoW2xvY2FsZXMgWywgb3B0aW9uc11dKSAo
RUNNQS00MDIgMi4wKQogICAgIC8vIDEuIElmIE5ld1RhcmdldCBpcyB1bmRlZmluZWQsIGxldCBu
ZXdUYXJnZXQgYmUgdGhlIGFjdGl2ZSBmdW5jdGlvbiBvYmplY3QsIGVsc2UgbGV0IG5ld1Rhcmdl
dCBiZSBOZXdUYXJnZXQuCkBAIC0xMjEsNyArMTIxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY2FsbEludGxEYXRlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNP
ZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKaW5kZXggM2Q3
MDk3N2Q5YTE4ZTNiNzRkM2UwMTJmZjRhZDI0ZmEyNzBiMWMzYi4uMzMzYmZkZDU1ZGEyYmRlNWNj
ZmVkOGUwNDhhODMzOTA3Yjg1MTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCkBAIC0z
NiwxMCArMzYsMTEgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRS
YW5nZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdEZ1bmNG
b3JtYXREYXRlVGltZSk7CiAKIH0KIApAQCAtODIsNyArODMsNyBAQCB2b2lkIEludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpTQ19UT19TVFJJ
TkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRGdW5jRm9ybWF0RGF0ZVRpbWUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oSW50bERhdGVUaW1lRm9ybWF0RnVuY0Zvcm1hdERhdGVUaW1lLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xMDQsNyArMTA1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0RnVuY0Zvcm1hdERhdGVUaW1lKEpTR2xv
YmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShmb3JtYXQt
PmZvcm1hdChnbG9iYWxPYmplY3QsIHZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNCw3ICsxMzUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChKU0dsb2Jh
bE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYm91bmRGb3JtYXQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNG
b3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdFByb3Rv
dHlwZUZ1bmNGb3JtYXRUb1BhcnRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjEsNyArMTYy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2IKIH0KIAogLy8gaHR0cDovL3RjMzkuZXMvcHJv
cG9zYWwtaW50bC1EYXRlVGltZUZvcm1hdC1mb3JtYXRSYW5nZS8jc2VjLWludGwuZGF0ZXRpbWVm
b3JtYXQucHJvdG90eXBlLmZvcm1hdFJhbmdlCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE4Nyw3ICsxODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZShKU0dsb2Jh
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGRhdGVUaW1l
Rm9ybWF0LT5mb3JtYXRSYW5nZShnbG9iYWxPYmplY3QsIHN0YXJ0RGF0ZSwgZW5kRGF0ZSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90
b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNwbGF5TmFt
ZXNDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlz
cGxheU5hbWVzQ29uc3RydWN0b3IuY3BwCmluZGV4IDVlMzVmZTY3ZmM2OTNhNzJhNmI4ODI2ZjJk
YWRiMDBhOWZjNmU5MmUuLjFiOTQ3YmFjZGU3YzI0OTRkOGQwODMyNjNkYTE1NTkwOTRjMWM1YWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNwbGF5TmFt
ZXNDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxEaXNw
bGF5TmFtZXNDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3RvclN1cHBvcnRlZExvY2FsZXNPZihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
SW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mKTsKIAogfQogCkBA
IC02Miw4ICs2Miw4IEBAIFN0cnVjdHVyZSogSW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gU3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5h
bEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0SW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludGxEaXNwbGF5TmFtZXMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bERpc3BsYXlOYW1l
cyk7CiAKIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvcjo6SW50bERpc3BsYXlOYW1lc0NvbnN0
cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1
Y3R1cmUsIGNhbGxJbnRsRGlzcGxheU5hbWVzLCBjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKQpA
QCAtNzgsNyArNzgsNyBAQCB2b2lkIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBJbnRsRGlzcGxheU5hbWVzUHJvdG90eQogfQogCiAvLyBodHRwczov
L3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuRGlzcGxheU5hbWVzCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdEludGxEaXNwbGF5TmFtZXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTk4LDcgKzk4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2wKIH0KIAogLy8gaHR0cHM6
Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkRpc3BsYXlOYW1lcwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxs
SW50bERpc3BsYXlOYW1lcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0
b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
IkRpc3BsYXlOYW1lcyIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
RGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oSW50bERpc3BsYXlOYW1lc0NvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEaXNwbGF5TmFtZXNQcm90b3R5cGUuY3BwCmluZGV4IGRhOGVjODBmNDI1MzVm
ZmQ2MGM5Mzk5Nzk0N2EyMDJkYTNmYjMxNzMuLjk1ZTZkZDk3NmU0NzVlOGMyZmQzZTNlM2JjMjlk
OWI4YjUyZTRiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEaXNwbGF5TmFtZXNQcm90b3R5cGUuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxheU5hbWVz
UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERpc3BsYXlOYW1lc1Byb3Rv
dHlwZUZ1bmNPZik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsRGlzcGxh
eU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CiAKIH0KIApAQCAtNzQsNyArNzQs
NyBAQCB2b2lkIEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtZGlzcGxheW5hbWVzLyNz
ZWMtSW50bC5EaXNwbGF5TmFtZXMucHJvdG90eXBlLm9mCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZUZ1bmNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtODcsNyArODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEaXNwbGF5
TmFtZXNQcm90b3R5cGVGdW5jT2YoSlNHbG9iYWxPYmplY3QqIGdsbwogfQogCiAvLyBodHRwczov
L3RjMzkuZXMvcHJvcG9zYWwtaW50bC1kaXNwbGF5bmFtZXMvI3NlYy1JbnRsLkRpc3BsYXlOYW1l
cy5wcm90b3R5cGUucmVzb2x2ZWRPcHRpb25zCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bExvY2FsZUNvbnN0cnVjdG9yLmNwcAppbmRleCAxOWY2MTIxMTRkZmFmZjlkNGYx
YmRiMmFkNjUzYzk4MDBlNTRhZWU3Li4xOGM0Y2JhNzM5YTc5NGFmNTMzNDE4Y2Q0NzhhYjU2NWM2
OWRlOThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9j
YWxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxMb2NhbGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ4LDggKzQ4LDggQEAgU3RydWN0dXJlKiBJbnRs
TG9jYWxlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWwKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SW50bExvY2FsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bExvY2FsZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludGxM
b2NhbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bExv
Y2FsZSk7CiAKIEludGxMb2NhbGVDb25zdHJ1Y3Rvcjo6SW50bExvY2FsZUNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxJbnRsTG9jYWxlLCBjb25zdHJ1Y3RJbnRsTG9jYWxlKQpAQCAtNjQsNyArNjQsNyBAQCB2b2lk
IEludGxMb2NhbGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBJbnRsTG9jYWxl
UHJvdG90eXBlKiBsb2NhbGVQcgogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2Vj
LUludGwuTG9jYWxlCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RJbnRsTG9jYWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxMb2NhbGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg4LDcgKzg4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bExvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2IKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZQotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxMb2NhbGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsSW50bExvY2FsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCmluZGV4IDgwZTA3MDUwM2RlYzky
MWI2NDJhNzdlNDJhNzk1MDcyMTg4MjZmYmQuLjFlMWVlYjg2MzM1ZmI2MDk2NWJhOWMxMDNkNzg2
NDk3MjU3YTBiMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxMb2NhbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxMb2NhbGVQcm90b3R5cGUuY3BwCkBAIC0zMSwxOSArMzEsMTkgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQ
cm90b3R5cGVGdW5jTWF4aW1pemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWlu
aW1pemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlckNhbGVuZGFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVy
Q2FzZUZpcnN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlw
ZUdldHRlck51bWJlcmluZ1N5c3RlbShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRl
ckxhbmd1YWdlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJv
dG90eXBlRnVuY01heGltaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKElu
dGxMb2NhbGVQcm90b3R5cGVGdW5jTWluaW1pemUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQmFzZU5hbWUpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRl
ckNhbGVuZGFyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQ
cm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJO
dW1lcmljKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90
b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckxhbmd1YWdlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlclJl
Z2lvbik7CiAKIH0KIApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIEludGxMb2NhbGVQcm90b3R5cGU6
OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIv
I3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUubWF4aW1pemUKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNYXhpbWl6ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01heGltaXplLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xMTIsNyArMTEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9j
YWxlUHJvdG90eXBlRnVuY01heGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0
cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUubWluaW1pemUK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5p
bWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01pbmltaXpl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjgsNyArMTI4LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01pbmltaXplKEpTR2xvYmFsT2Jq
ZWN0KiBnbG8KIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2Fs
ZS5wcm90b3R5cGUudG9TdHJpbmcKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExv
Y2FsZVByb3RvdHlwZUZ1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxl
UHJvdG90eXBlRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDIsNyArMTQy
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVu
Y1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2Vj
bWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUuYmFzZU5hbWUKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckJhc2VOYW1lKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTU2LDcgKzE1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckJhc2VOYW1lKEpTR2xvYmFsT2JqZWN0KiBnCiB9
CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBl
LmNhbGVuZGFyCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5
cGVHZXR0ZXJDYWxlbmRhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyQ2FsZW5kYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxl
bmRhcihKU0dsb2JhbE9iamVjdCogZwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8j
c2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5jYXNlRmlyc3QKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZpcnN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xODQsNyArMTg0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FzZUZpcnN0KEpTR2xvYmFsT2JqZWN0KgogfQogCiAv
LyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5jb2xs
YXRpb24KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlckNvbGxhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyQ29sbGF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTgsNyArMTk4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0
aW9uKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2Vj
LUludGwuTG9jYWxlLnByb3RvdHlwZS5ob3VyQ3ljbGUKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVySG91ckN5Y2xlKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBo
dHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5udW1lcmlj
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJO
dW1lcmljKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1l
cmljLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjUsNyArMjI1LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYyhKU0dsb2Jh
bE9iamVjdCogZ2wKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxv
Y2FsZS5wcm90b3R5cGUubnVtYmVyaW5nU3lzdGVtCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjM5LDcgKzIzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbShKU0dsb2JhbE9i
CiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90
eXBlLmxhbmd1YWdlCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90
b3R5cGVHZXR0ZXJMYW5ndWFnZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90
eXBlR2V0dGVyTGFuZ3VhZ2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1Myw3ICsyNTMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJM
YW5ndWFnZShKU0dsb2JhbE9iamVjdCogZwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQw
Mi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5zY3JpcHQKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNjcsNyArMjY3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9j
YWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0KEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0
cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUucmVnaW9uCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlclJlZ2lvbiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYmM4YTU1
NzM4NmFiZjI1YWU5ZDEwZjU0YTU3OTA2MjYzYjU0YzAyMi4uODk1YmI0N2FhNWI1OTBjMzEwYzUx
NTdhNGUwN2M0YTVmZThkYjFjOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC0zNiw3
ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1
cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1
cHBvcnRlZExvY2FsZXNPZik7CiAKIH0KIApAQCAtNjQsOCArNjQsOCBAQCBTdHJ1Y3R1cmUqIElu
dGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qs
IHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdz
KSwgaW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEludGxOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNhbGxJbnRsTnVtYmVyRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpOwogCiBJbnRsTnVtYmVyRm9ybWF0Q29uc3Ry
dWN0b3I6OkludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bE51
bWJlckZvcm1hdCwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdCkKQEAgLTc4LDcgKzc4LDcgQEAg
dm9pZCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SW50bE51bWJlckZvcm1hdFByb3RvdHkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBudW1iZXJGb3JtYXRQcm90b3R5cGUsIFBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bE51bWJlckZvcm1hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c3RydWN0SW50bE51bWJlckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2wKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNh
bGxJbnRsTnVtYmVyRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDExLjEuMiBJbnRsLk51bWJlckZvcm1hdCAoW2xv
Y2FsZXMgWywgb3B0aW9uc11dKSAoRUNNQS00MDIgMi4wKQogICAgIC8vIDEuIElmIE5ld1Rhcmdl
dCBpcyB1bmRlZmluZWQsIGxldCBuZXdUYXJnZXQgYmUgdGhlIGFjdGl2ZSBmdW5jdGlvbiBvYmpl
Y3QsIGVsc2UgbGV0IG5ld1RhcmdldCBiZSBOZXdUYXJnZXQuCkBAIC0xMjEsNyArMTIxLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxOdW1iZXJGb3JtYXQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2Fs
ZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3JGdW5j
U3VwcG9ydGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUu
Y3BwCmluZGV4IGQ5OTljNzQzNTJlYzlkMGQzOTc1MTI1OTg5Y2UzYjlhYjc5ZTA5ZTguLjJlZTk4
MjkzNGI0MzA0Zjg5OTg5ZmE5ZTIzYWUwNmMwOWNkMGU2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUu
Y3BwCkBAIC0zNCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZv
cm1hdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1h
dFRvUGFydHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZv
cm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdEZ1bmNGb3JtYXQpOwogCiB9CiAKQEAgLTc5LDcg
KzgwLDcgQEAgdm9pZCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtbnVtYmVyLWZvcm1h
dC1mdW5jdGlvbnMKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1i
ZXJGb3JtYXRGdW5jRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRG
dW5jRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDcsNyArMTA4LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bE51bWJlckZvcm1hdEZ1bmNGb3JtYXQo
SlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1h
dC0+Zm9ybWF0KGdsb2JhbE9iamVjdCwgdmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEzNiw3ICsxMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYm91bmRGb3JtYXQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0
VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVu
Y0Zvcm1hdFRvUGFydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NSw3ICsxNTYsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5j
Rm9ybWF0VG9QYXJ0cyhKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0VG9QYXJ0cyhnbG9iYWxPYmplY3QsIHZh
bHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3Jt
YXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxO
dW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4
IGZhNTMzYzMxNDBlODdjMjg1ODcwY2IzNDVkMGM1YzY4MTY1YTZlOTQuLjk5N2Q5MTdiMmU1M2Y1
YWQ5ZTFhNjk1NDBiODIyMjc5M2ZhNWFhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC03MCw3ICs3MCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW50bE9iamVjdCk7CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0Q2Fu
b25pY2FsTG9jYWxlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmljYWxMb2NhbGVzKTsK
IAogc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29sbGF0b3JDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2Jq
ZWN0KiBvYmplY3QpCiB7CkBAIC0xNDAwLDcgKzE0MDAsNyBAQCBib29sIGlzV2VsbEZvcm1lZEN1
cnJlbmN5Q29kZShTdHJpbmdWaWV3IGN1cnJlbmN5KQogICAgIHJldHVybiBjdXJyZW5jeS5sZW5n
dGgoKSA9PSAzICYmIGN1cnJlbmN5LmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNBU0NJSUFscGhh
PigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGludGxPYmplY3RGdW5jR2V0
Q2Fub25pY2FsTG9jYWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpbnRsT2JqZWN0RnVuY0dldENh
bm9uaWNhbExvY2FsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gSW50bC5nZXRDYW5vbmljYWxMb2NhbGVzKGxvY2FsZXMp
CiAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hNDAyLyNzZWMtaW50bC5nZXRjYW5v
bmljYWxsb2NhbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOTlkMDg4MmNmYmFkZjBi
ZTViNDlhMjU4OTU4YmNmZGQ3MjNiNzUyMC4uYWYzOWE5NjYzYWYwNzljNWQyNzhjMjdmNDQ2OGM1
NjVkMWUzNjRlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxF
KEludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihJbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVz
T2YpOwogCiB9CiAKQEAgLTY0LDggKzY0LDggQEAgU3RydWN0dXJlKiBJbnRsUGx1cmFsUnVsZXND
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGcKICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bFBsdXJhbFJ1
bGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsUGx1
cmFsUnVsZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50
bFBsdXJhbFJ1bGVzKTsKIAogSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3I6OkludGxQbHVyYWxS
dWxlc0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRl
cm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxJbnRsUGx1cmFsUnVsZXMsIGNvbnN0cnVj
dEludGxQbHVyYWxSdWxlcykKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBJbnRsUGx1cmFsUnVsZXND
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBJbnRsUGx1cmFsUnVsZXNQcm90b3R5
cGUKICAgICBwbHVyYWxSdWxlc1Byb3RvdHlwZS0+cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24o
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCB0aGlzLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocGx1cmFsUnVsZXMpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsSW50bFBsdXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxQbHVy
YWxSdWxlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RC
ZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlBsdXJhbFJ1
bGVzIikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxl
c0NvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJ
bnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUuY3BwCmluZGV4IGJjZmE5NDljZWM5NzE2ZWI4MzU5
MjEyZDBjMmQ4NWUyN2U3OGJlYmMuLjUzMjk2MTA3ZjQxNDQ0OGYzNmU3NDEyNmYwYzAwODA1ZTZm
OWVmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVy
YWxSdWxlc1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmNwcApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFBsdXJh
bFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90
eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVu
Y1NlbGVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsUGx1cmFsUnVs
ZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKIAogfQogCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAg
ICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jU2VsZWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC05Miw3ICs5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdChKU0dsb2JhbE9iamVj
dCoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShwbHVyYWxS
dWxlcy0+c2VsZWN0KGdsb2JhbE9iamVjdCwgdmFsdWUpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9u
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jUmVzb2x2
ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0
cnVjdG9yLmNwcAppbmRleCBhYzQ1NTQxZDdhY2U4YzJmZmU3NWRmMzllYzllMzNmMmU2OWU3ZTg2
Li5kMTIyZGNkYTI5MGZmZjE3NzM2ZGQwNWI5MjljMzQ2M2FkNjZjOGZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9j
YWxlc09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9y
dGVkTG9jYWxlc09mKTsKIAogfQogCkBAIC02Myw4ICs2Myw4IEBAIFN0cnVjdHVyZSogSW50bFJl
bGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHBy
b3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbElu
dGxSZWxhdGl2ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpOwogCiBJ
bnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXRD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlLCBjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCwgY29uc3RydWN0SW50bFJlbGF0
aXZlVGltZUZvcm1hdCkKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bFJlbGF0aXZlVGltZUYK
IH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlJlbGF0aXZlVGltZUZv
cm1hdAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bFJl
bGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05OSw3ICs5OSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
SW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxSZWxhdGl2
ZVRpbWVGb3JtYXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxh
dGl2ZVRpbWVGb3JtYXQuc3VwcG9ydGVkTG9jYWxlc09mCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2Nh
bGVzT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVj
dG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlLmNwcAppbmRleCAwM2JkNWRmY2VjNThlMWZiMzM1NjZjMjhhZTMy
NjQ2YTg1NWVjZTVmLi4yMDc4YWQyY2YzOWZiZGY5OWFjYjgwMTY0ZTIyM2E3ODMxN2QzZDY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1l
Rm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMzEsOSArMzEsOSBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxh
dGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFJl
bGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxS
ZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0
VG9QYXJ0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CiAKIH0KIApAQCAtNzYsNyAr
NzYsNyBAQCB2b2lkIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGU6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlJl
bGF0aXZlVGltZUZvcm1hdC5wcm90b3R5cGUuZm9ybWF0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC05NSw3ICs5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXQoSlNHbG9i
YWxPCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxhdGl2ZVRp
bWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdFRvUGFydHMKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9y
bWF0VG9QYXJ0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE0LDcgKzExNCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1
bmNGb3JtYXRUb1BhcnRzKEpTCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
aW50bC5yZWxhdGl2ZXRpbWVmb3JtYXQucHJvdG90eXBlLnJlc29sdmVkb3B0aW9ucwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVu
Y1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVyYXRv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVu
dEl0ZXJhdG9yUHJvdG90eXBlLmNwcAppbmRleCA2NTAwOWM5MmY1MzU5OWNjN2Q4MWQwYWNkN2Q1
MzA2YTdmZDYxY2NkLi44MjE3OGVjZGFmMTZhZWU0YWJlMmUwODUzODc1NzM0MDE5YzVkYTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudEl0ZXJh
dG9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
U2VnbWVudEl0ZXJhdG9yUHJvdG90eXBlLmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21l
bnRJdGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudEl0ZXJhdG9yUHJv
dG90eXBlRnVuY05leHQpOwogCiB9CiAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBJbnRsU2VnbWVu
dEl0ZXJhdG9yUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLSVzZWdtZW50aXRlcmF0b3Jw
cm90b3R5cGUlLm5leHQKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRJ
dGVyYXRvclByb3RvdHlwZUZ1bmNOZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxTZWdtZW50
SXRlcmF0b3JQcm90b3R5cGVGdW5jTmV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggMWUxYjllZTkyNjczZjEyZmI0ZjY3NWMxZThhNjRkZWZkMGVmYjlmYy4u
ZWIxYmJiNDhmMWFjZGMzYTIxYjdjZTlhODVlMWM1OTcyMzllMGVhOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0
b3IuY3BwCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yKTsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRlckNvbnN0cnVj
dG9yU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudGVyQ29uc3RydWN0b3JTdXBw
b3J0ZWRMb2NhbGVzT2YpOwogCiB9CiAKQEAgLTYyLDggKzYyLDggQEAgU3RydWN0dXJlKiBJbnRs
U2VnbWVudGVyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG8KICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwg
cHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxhZ3Mp
LCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
SW50bFNlZ21lbnRlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bFNlZ21lbnRlcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2Fs
bEludGxTZWdtZW50ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50bFNlZ21lbnRlcik7CiAKIEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvcjo6SW50bFNlZ21l
bnRlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUsIGNhbGxJbnRsU2VnbWVudGVyLCBjb25zdHJ1Y3RJbnRsU2VnbWVudGVy
KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBJbnRsU2VnbWVudGVyUHJvdG90eXBlKiBzZQogfQogCiAvLyBodHRw
czovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuU2VnbWVudGVyCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsU2VnbWVudGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEludGxTZWdtZW50ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk4
LDcgKzk4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
SW50bFNlZ21lbnRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmEKIH0KIAogLy8gaHR0cHM6Ly90YzM5
LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlNlZ21lbnRlcgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEludGxTZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSW50bFNlZ21lbnRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMDYsNyArMTA2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEludGxTZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxl
ZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlNlZ21lbnRlciIpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyQ29uc3RydWN0
b3JTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlckNv
bnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJQcm90b3R5
cGUuY3BwCmluZGV4IDliYmMzNDJiODAyOWJiYWNhNTMxYzY5ZjRkNjg5ZTQ5MzhlZWNiYTIuLjFj
ZjRkMGQyODc5ZTJlMWFiOTUzYTRjOTUyYTUxNmFkZDdlZjMyNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJQcm90b3R5cGUuY3Bw
CkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxTZWdtZW50ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJ
bnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOwog
CiB9CiAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBJbnRsU2VnbWVudGVyUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRs
LXNlZ21lbnRlci8jc2VjLWludGwuc2VnbWVudGVyLnByb3RvdHlwZS5zZWdtZW50Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50ZXJQcm90b3R5cGVGdW5jU2VnbWVudChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3LDcgKzg3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQoSlNHbG9iYWxPYmplY3Qq
IGcKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtc2VnbWVudGVyLyNzZWMt
SW50bC5TZWdtZW50ZXIucHJvdG90eXBlLnJlc29sdmVkT3B0aW9ucwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0
aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bFNlZ21lbnRzUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHAKaW5kZXggNTM5NjUwYzQ4MGMx
M2NlMjJhZGQ3ODhjYTA5NTdhNTU1ZDRkYmNhZS4uNGM5M2VkNWYwMmQyZGIzNTFkYmQxODMxMjk2
ZGIxNmZhOTZmNGJkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFNlZ21lbnRzUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9JbnRsU2VnbWVudHNQcm90b3R5cGUuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVz
cGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2Vn
bWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRzUHJvdG90
eXBlRnVuY0l0ZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmlu
Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudHNQcm90b3R5
cGVGdW5jSXRlcmF0b3IpOwogCiB9CiAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBJbnRsU2VnbWVu
dHNQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL3Byb3Bvc2FsLWludGwtc2VnbWVudGVy
LyNzZWMtJXNlZ21lbnRzcHJvdG90eXBlJS5jb250YWluaW5nCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmNDb250YWluaW5nKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKEludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmNDb250YWluaW5nLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC04Niw3ICs4Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bFNlZ21lbnRzUHJvdG90eXBlRnVuY0NvbnRhaW5pbmcoSlNHbG9iYWxPYmplY3QqCiB9CiAK
IC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLSVzZWdtZW50
c3Byb3RvdHlwZSUtQEBpdGVyYXRvcgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
U2VnbWVudHNQcm90b3R5cGVGdW5jSXRlcmF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFNl
Z21lbnRzUHJvdG90eXBlRnVuY0l0ZXJhdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0
cnVjdG9yLmNwcAppbmRleCA5YzBhNjhhMDFlNDJjMWJmMThkNTI4MjQyMDczYjkwMmQ1YzFhNjQw
Li45MDhkMzFjNmViOGEyMjU2YzdhN2U3NzlhZDU4ZTNjNTI0OTEwM2FiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1
Y3Rvci5jcHAKQEAgLTMzLDEwICszMywxMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlCdWZmZXJGdW5jSXNWaWV3KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjYWxsQXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFycmF5QnVmZmVyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJGdW5jSXNW
aWV3KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxBcnJheUJ1ZmZlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBcnJheUJ1ZmZlcik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1
ZmZlcik7CiAKIHRlbXBsYXRlPD4KIGNvbnN0IENsYXNzSW5mbyBKU0FycmF5QnVmZmVyQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsKQEAgLTExNywxOSArMTE3LDE5IEBAIGNvbnN0IENsYXNzSW5mbyog
SlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46OmluZm8oKQogICAg
IHJldHVybiAmSlNHZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxzaGFyaW5nTW9kZT46OnNf
aW5mbzsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFycmF5
QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbEFycmF5QnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25U
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkFycmF5QnVmZmVyIikpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNHZW5l
cmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0
Pjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNoYXJlZEFycmF5QnVmZmVyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFNoYXJlZEFycmF5QnVmZmVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBKU0dlbmVyaWNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yPEFycmF5QnVmZmVyU2hhcmluZ01vZGU6
OlNoYXJlZD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQpAQCAt
MTM3LDcgKzEzNyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFNoYXJlZEFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKIC8vIEVDTUEgMjQuMS4zLjEKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlCdWZmZXJGdW5jSXNWaWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyRnVuY0lz
VmlldywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihqc0R5bmFtaWNDYXN0
PEpTQXJyYXlCdWZmZXJWaWV3Kj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheUJ1ZmZlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0FycmF5QnVmZmVyUHJvdG90eXBlLmNwcAppbmRleCA4NTk0NDQyY2RlYjJjZGEzZDI3OTAz
ZmFjMmYzZjY3ZmFjNzVkNjA5Li4zZDM2MTg3Y2I4Y2I3NjE4NTQ1NDE2MDY3NzU5ZTRjMjY5M2Rk
YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5QnVmZmVyUHJvdG90eXBlLmNwcApAQCAtMzEsNyArMzEsMTEgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyUHJv
dG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3Rv
RnVuY1NsaWNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVy
UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOworCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNjIsNyArNjYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbAogfQog
CiAvLyBodHRwOi8vdGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdF9zaGFyZWRtZW0vc2htZW0uaHRt
bCNzZWMtZ2V0LWFycmF5YnVmZmVyLnByb3RvdHlwZS5ieXRlbGVuZ3RoCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5n
dGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVu
Z3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MCw3ICs4NCw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0
aChKU0dsb2JhCiB9CiAKIC8vIGh0dHA6Ly90YzM5LmdpdGh1Yi5pby9lY21hc2NyaXB0X3NoYXJl
ZG1lbS9zaG1lbS5odG1sI1N0cnVjdHVyZWREYXRhLlNoYXJlZEFycmF5QnVmZmVyLnByb3RvdHlw
ZS5nZXRfYnl0ZUxlbmd0aAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2hh
cmVkQXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHNoYXJlZEFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
b3VuZEZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRG
dW5jdGlvbi5jcHAKaW5kZXggYjZlZGRlNmNhMWM1NGQ2NDBlN2I0YTFlNGEwZDZkZDFjZWM2YjQz
MS4uNDk1YmNhMDU5NzAzZTI0ZThkZTMxNjlkNjM3YzMwNmYwZTUwNmNjMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uY3BwCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNCb3VuZEZ1bmN0
aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxw
dHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNCb3VuZEZ1bmN0aW9uKSB9OwogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ2FsbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNCb3VuZEZ1bmN0
aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlvbio+KGNhbGxGcmFtZS0+
anNDYWxsZWUoKSk7CiAKQEAgLTYwLDcgKzYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8K
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCB0YXJnZXRGdW5j
dGlvbiwgY2FsbERhdGEsIGJvdW5kRnVuY3Rpb24tPmJvdW5kVGhpcygpLCBhcmdzKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNhbGwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3
LDcgKzg3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ2Fs
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgdGFyZ2V0RnVuY3Rp
b24sIGNhbGxEYXRhLCBib3VuZEZ1bmN0aW9uLT5ib3VuZFRoaXMoKSwgYXJncykpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0
cnVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0cnVj
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBKU0JvdW5kRnVuY3Rpb24qIGJvdW5kRnVuY3Rpb24gPSBqc0Nhc3Q8SlNCb3VuZEZ1
bmN0aW9uKj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKIApAQCAtMTEzLDcgKzExMyw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1
Y3QoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3QoZ2xvYmFsT2JqZWN0LCB0YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0RGF0YSwgYXJncywgbmV3
VGFyZ2V0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlv
bkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ29uc3RydWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDQsMTIgKzE0NCwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNv
bnN0cnVjdChnbG9iYWxPYmplY3QsIHRhcmdldEZ1bmN0aW9uLCBjb25zdHJ1Y3REYXRhLCBhcmdz
LCBuZXdUYXJnZXQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3Vu
ZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGlzQm91bmRGdW5jdGlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoc3RhdGljX2Nhc3Q8Ym9vbD4oanNEeW5hbWljQ2Fz
dDxKU0JvdW5kRnVuY3Rpb24qPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhh
c0luc3RhbmNlQm91bmRGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihoYXNJbnN0YW5jZUJv
dW5kRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgSlNCb3VuZEZ1bmN0aW9uKiBib3VuZE9iamVjdCA9IGpzQ2FzdDxK
U0JvdW5kRnVuY3Rpb24qPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKICAgICBK
U1ZhbHVlIHZhbHVlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgxKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXggZGQ2YjBl
NGQwMzBmM2VlODYwMjM1YmNkNmQ3MzU4YWNjNmY4YmIzZS4uNzY2OWRkMzBlN2Q5NTdhNDE5OTY2
MmZjYTM1MmFlZjFjZjViMTYzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlv
bkNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25z
dHJ1Y3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpc0JvdW5kRnVuY3Rpb24oSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFz
SW5zdGFuY2VCb3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ2FsbCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5kRnVuY3Rpb25DYWxsKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ29uc3RydWN0KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oaXNCb3VuZEZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
aGFzSW5zdGFuY2VCb3VuZEZ1bmN0aW9uKTsKIAogY2xhc3MgSlNCb3VuZEZ1bmN0aW9uIGZpbmFs
IDogcHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgpAQCAtOTMsOSArOTMsOSBAQCBjbGFzcyBK
U0JvdW5kRnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiAgICAgZG91YmxlIG1f
bGVuZ3RoOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZEZ1bmN0aW9u
Q2FsbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9u
Q2FsbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ2Fs
bCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNvbnN0cnVj
dCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNwcAppbmRl
eCBhZTM1YmE0MDM5NThiZGRkMDE2OWVjOTk2NTgwMjM3ZmQ4OTY0ODdlLi41YTg1MWRlNzViZjIz
OGQxYjRjYzJiOGQyMTg5MTQ2YzdmYzA2ZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0N1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uLmNw
cApAQCAtMzMsNyArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpT
Q3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbkNhbGwpOworCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFW
aWV3UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZp
ZXdQcm90b3R5cGUuY3BwCmluZGV4IDRiYjI4ZmQ5OWYyZjk2MzA5YjFkM2FiNmFhNzIxNjNhZDll
NGVhM2IuLjIxZTI2NzBjMmYwODEzZTFjMTA1NDlhMDM1YTZkYjA1Nzc2NTNiMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUu
Y3BwCkBAIC01OSwyNSArNTksMjUgQEAgbmFtZXNwYWNlIEpTQyB7CiBAZW5kCiAqLwogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50OChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRh
Vmlld1Byb3RvRnVuY0dldEludDE2KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MzIoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
YVZpZXdQcm90b0Z1bmNHZXRVaW50OChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQxNihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50
OChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50
MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50OChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldFVp
bnQxNihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldFVpbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1Nl
dEZsb2F0MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9H
ZXR0ZXJCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGgoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVPZmZzZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQ4KTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQxNik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MzIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQ4KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MTYpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQzMik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQ2NCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50MTYpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDE2KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvRnVuY1NldEZsb2F0MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvRnVuY1NldEZsb2F0NjQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0
YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvR2V0dGVyQnl0ZU9mZnNldCk7CiAKIH0KIApAQCAtMjE1LDcgKzIxNSw3IEBA
IEVuY29kZWRKU1ZhbHVlIHNldERhdGEoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCiAKIElHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigibWlzc2lu
Zy1wcm90b3R5cGVzIikKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1By
b3RvR2V0dGVyQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJC
dWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCdWZmZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHZpZXctPnBvc3NpYmx5U2hhcmVkSlNCdWZmZXIoZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3Ro
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNDEsNyArMjQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xv
YmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZpZXctPmxlbmd0aCgpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ5
dGVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0dldHRlckJ5dGVPZmZz
ZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1NSw4MiArMjU1LDgyIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVPZmZzZXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2aWV3LT5i
eXRlT2Zmc2V0KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmll
d1Byb3RvRnVuY0dldEludDgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNH
ZXRJbnQ4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBnZXREYXRhPEludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90
b0Z1bmNHZXRJbnQxNihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldElu
dDE2LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBnZXREYXRhPEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9G
dW5jR2V0SW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQz
MiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gZ2V0RGF0YTxJbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVu
Y0dldFVpbnQ4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDgs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIGdldERhdGE8VWludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNH
ZXRVaW50MTYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MTYs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIGdldERhdGE8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
R2V0VWludDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDMy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBnZXREYXRhPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVu
Y0dldEZsb2F0MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9h
dDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBnZXREYXRhPEZsb2F0MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90
b0Z1bmNHZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0
RmxvYXQ2NCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gZ2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3
UHJvdG9GdW5jU2V0SW50OChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1Nl
dEludDgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIHNldERhdGE8SW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3Rv
RnVuY1NldEludDE2KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0SW50
MTYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldERhdGE8SW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1
bmNTZXRJbnQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDMy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBzZXREYXRhPEludDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
U2V0VWludDgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50OCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gc2V0RGF0YTxVaW50OEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1Nl
dFVpbnQxNihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldFVpbnQxNiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gc2V0RGF0YTxVaW50MTZBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNT
ZXRVaW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIHNldERhdGE8VWludDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
U2V0RmxvYXQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldEZsb2F0
MzIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIHNldERhdGE8RmxvYXQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3Rv
RnVuY1NldEZsb2F0NjQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBzZXREYXRhPEZsb2F0NjRBZGFwdG9yPihnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCmluZGV4IGE3ZWI1ODU1MDRhYzg0MWY3YWIxODFkNjQ3NmE4ZDZjOGI4MThmMWMuLjJh
MDA4ODU1OTYwNmY4MTQzZWJmYmRhYzRjODM1YjE3OGY1NDc5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uY3BwCkBAIC00NSw3ICs0NSw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIb3N0RnVu
Y3Rpb25Bc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTQsNyArMzE0LDcgQEAgc3Rh
dGljIEpTVmFsdWUgcmV0cmlldmVBcmd1bWVudHMoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgSlNGdW5jdGlvbiogZnVuY3QKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gYXJndW1lbnRzR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0Z1bmN0
aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmlldmVDYWxsZXJG
dW5jdGlvbihWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU0Z1bmN0aW9uKgogICAgIHJl
dHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpj
YWxsZXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBjYWxsZXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAppbmRleCBjMDQ2ODJjMDhi
MjBmZTAzOTdmN2JjYWM2ZjU1M2VmN2MzZWIwM2UyLi4yNTg5NTVmMGUzYjJiN2JiZTRhMzM1Yzgz
MGJkZGU5Mjk0NmQ2NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCkBAIC00OSw3ICs0OSw3IEBAIGNsYXNzIFNpZ25hdHVyZTsKIH0KIAogCi1KU19FWFBP
UlRfUFJJVkFURSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIb3N0RnVuY3Rpb25B
c0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxIb3N0RnVuY3Rpb25Bc0NvbnN0cnVj
dG9yKTsKIAogSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGdldENhbGN1bGF0ZWREaXNwbGF5TmFt
ZShWTSYsIEpTT2JqZWN0Kik7CiAKQEAgLTIxNyw5ICsyMTcsNiBAQCBjbGFzcyBKU0Z1bmN0aW9u
IDogcHVibGljIEpTQ2FsbGVlIHsKIAogICAgIGZyaWVuZCBjbGFzcyBMTEludE9mZnNldHNFeHRy
YWN0b3I7CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxlckdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotCiAgICAgdWludHB0cl90IG1fZXhlY3V0YWJsZU9yUmFyZURhdGE7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKaW5kZXggNGRjNGFlYTY4
MTYzYTkzMWFiNThkNjEwNjg2YWNmMDg5MTA1OTIyYy4uMGQ4YjgxZjQ5NWJiNGVkZDdiMzc3MzZh
M2Y1MWRkZTYxZDY3MWQwOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaApA
QCAtMjksNiArMjksMjggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK0pTX0VYUE9SVF9QUklWQVRF
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludDhBcnJheSk7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnQxNkFycmF5KTsKK0pTX0VYUE9S
VF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludDMyQXJyYXkpOworSlNf
RVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVWludDhBcnJheSk7
CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxVaW50OENs
YW1wZWRBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxVaW50MTZBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxVaW50MzJBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxGbG9hdDMyQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjYWxsRmxvYXQ2NEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRF
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbERhdGFWaWV3KTsKKworSlNfRVhQT1JUX1BS
SVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnQ4QXJyYXkpOworSlNf
RVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnQxNkFy
cmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0SW50MzJBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFVpbnQ4QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVaW50OENsYW1wZWRBcnJheSk7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFVpbnQxNkFycmF5KTsKK0pT
X0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0VWludDMy
QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RGbG9hdDMyQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjb25zdHJ1Y3RGbG9hdDY0QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3REYXRhVmlldyk7CisKIHRlbXBsYXRlPHR5cGVu
YW1lIFZpZXdDbGFzcz4KIGNsYXNzIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Ig
ZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwdWJsaWM6CkBAIC00NCw2ICs2Niw2
NCBAQCBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIGZpbmFsIDogcHVi
bGljIEludGVybmFsRnVuY3Rpb24gewogCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIHByb3RvdHlwZSk7CiAKKyAgICBz
dGF0aWMgY29uc3RleHByIFJhd05hdGl2ZUZ1bmN0aW9uIGNhbGxDb25zdHJ1Y3RvcigpCisgICAg
eworICAgICAgICBzd2l0Y2ggKFZpZXdDbGFzczo6VHlwZWRBcnJheVN0b3JhZ2VUeXBlKSB7Cisg
ICAgICAgIGNhc2UgVHlwZUludDg6CisgICAgICAgICAgICByZXR1cm4gY2FsbEludDhBcnJheTsK
KyAgICAgICAgY2FzZSBUeXBlSW50MTY6CisgICAgICAgICAgICByZXR1cm4gY2FsbEludDE2QXJy
YXk7CisgICAgICAgIGNhc2UgVHlwZUludDMyOgorICAgICAgICAgICAgcmV0dXJuIGNhbGxJbnQz
MkFycmF5OworICAgICAgICBjYXNlIFR5cGVVaW50ODoKKyAgICAgICAgICAgIHJldHVybiBjYWxs
VWludDhBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDhDbGFtcGVkOgorICAgICAgICAgICAg
cmV0dXJuIGNhbGxVaW50OENsYW1wZWRBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDE2Ogor
ICAgICAgICAgICAgcmV0dXJuIGNhbGxVaW50MTZBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWlu
dDMyOgorICAgICAgICAgICAgcmV0dXJuIGNhbGxVaW50MzJBcnJheTsKKyAgICAgICAgY2FzZSBU
eXBlRmxvYXQzMjoKKyAgICAgICAgICAgIHJldHVybiBjYWxsRmxvYXQzMkFycmF5OworICAgICAg
ICBjYXNlIFR5cGVGbG9hdDY0OgorICAgICAgICAgICAgcmV0dXJuIGNhbGxGbG9hdDY0QXJyYXk7
CisgICAgICAgIGNhc2UgVHlwZURhdGFWaWV3OgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVj
dERhdGFWaWV3OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQ1JBU0hfVU5ERVJfQ09O
U1RFWFBSX0NPTlRFWFQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9
CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciBSYXdOYXRpdmVGdW5jdGlvbiBjb25zdHJ1
Y3RDb25zdHJ1Y3RvcigpCisgICAgeworICAgICAgICBzd2l0Y2ggKFZpZXdDbGFzczo6VHlwZWRB
cnJheVN0b3JhZ2VUeXBlKSB7CisgICAgICAgIGNhc2UgVHlwZUludDg6CisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RydWN0SW50OEFycmF5OworICAgICAgICBjYXNlIFR5cGVJbnQxNjoKKyAgICAg
ICAgICAgIHJldHVybiBjb25zdHJ1Y3RJbnQxNkFycmF5OworICAgICAgICBjYXNlIFR5cGVJbnQz
MjoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RJbnQzMkFycmF5OworICAgICAgICBjYXNl
IFR5cGVVaW50ODoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RVaW50OEFycmF5OworICAg
ICAgICBjYXNlIFR5cGVVaW50OENsYW1wZWQ6CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0
VWludDhDbGFtcGVkQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQxNjoKKyAgICAgICAgICAg
IHJldHVybiBjb25zdHJ1Y3RVaW50MTZBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDMyOgor
ICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdFVpbnQzMkFycmF5OworICAgICAgICBjYXNlIFR5
cGVGbG9hdDMyOgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEZsb2F0MzJBcnJheTsKKyAg
ICAgICAgY2FzZSBUeXBlRmxvYXQ2NDoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RGbG9h
dDY0QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZURhdGFWaWV3OgorICAgICAgICAgICAgcmV0dXJu
IGNvbnN0cnVjdERhdGFWaWV3OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQ1JBU0hf
VU5ERVJfQ09OU1RFWFBSX0NPTlRFWFQoKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgICAgICB9CisgICAgfQorCiBwcml2YXRlOgogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Q29uc3RydWN0b3IoVk0mLCBTdHJ1Y3R1cmUqKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZN
JiwgSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCogcHJvdG90eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIEZ1bmN0aW9uRXhlY3V0YWJsZSogcHJpdmF0ZUFsbG9jYXRvcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaAppbmRleCAxZTk1MTZhZWI2YmM1NTdm
MzhhOGQ5YzliMjMwNDllYWJiN2NkYmE1Li4yZGZhN2ViNDA1ZWZkMjU5MTgyMjc3YTE0ODMxNmQz
YWJhNjRlZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxp
bmVzLmgKQEAgLTM3LDE1ICszNyw5IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi10ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0K
LXRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3Q29uc3RydWN0b3I8Vmlld0NsYXNzPjo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlLCBjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3PFZpZXdDbGFzcz4sIGNvbnN0cnVjdEdl
bmVyaWNUeXBlZEFycmF5VmlldzxWaWV3Q2xhc3M+KQorICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
LCBjYWxsQ29uc3RydWN0b3IoKSwgY29uc3RydWN0Q29uc3RydWN0b3IoKSkKIHsKIH0KIApAQCAt
MjA2LDcgKzIwMCw3IEBAIGlubGluZSBKU09iamVjdCogY29uc3RydWN0R2VuZXJpY1R5cGVkQXJy
YXlWaWV3V2l0aEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
R2VuZXJpY1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RH
ZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNDcsNyArMjQx
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXcoSlNHbG9iYWxPYmplY3QqIGdsb2IKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmll
d0NsYXNzPgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEdlbmVyaWNU
eXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
QUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1w
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMu
aAppbmRleCBhMDNkZjMxYWMyNDI4NzA3ODlhMWViN2ZlNGI2ZGUxOGFiNzg2OWNmLi5jYzZlZGEx
MTY5ZWUxMjg2NzUxNzM2ZGQ1ZTk5NWVmZTk0NDc0ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0
aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBpbmxpbmUg
dW5zaWduZWQgYXJndW1lbnRDbGFtcGVkSW5kZXhGcm9tU3RhcnRPckVuZChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1Nl
dChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1NldCwgKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKIApAQCAtMTQ3LDcgKzE0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KFZNJiB2bSwgSlNHbG9iYWxPCiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbihWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4sIChW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTE3
OSw3ICsxNzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4oVk0mIHZtLCBKUwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5jbHVkZXMsIChWTSYgdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVu
Y0luY2x1ZGVzKFZNJiB2bSwgSlNHbAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0luZGV4T2YoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmRleE9mLCAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mKFZNJiB2bSwg
SlNHbG8KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbiwg
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAt
MzAwLDcgKzMwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jSm9pbihWTSYgdm0sIEpTR2xvYmFsCiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNMYXN0SW5kZXhPZiwgKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAtMzUwLDcgKzM1
MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jTGFzdEluZGV4T2YoVk0mIHZtLCBKCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKFZNJiwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyLCAoVk0mLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMjIuMi4z
LjMKICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oY2FsbEZy
YW1lLT50aGlzVmFsdWUoKSk7CkBAIC0zNTksNyArMzU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZmZXIoVk0m
LCBKU0cKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgo
Vk0mLCBKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aCwg
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8g
MjIuMi4zLjE3CiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+
KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwpAQCAtMzY4LDcgKzM2OCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVu
Z3RoKFZNJiwgSlNHCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5j
Qnl0ZUxlbmd0aChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJG
dW5jQnl0ZUxlbmd0aCwgKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgLy8gMjIuMi4zLjIKICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8Vmlld0NsYXNzKj4oY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CkBAIC0zNzcsNyArMzc3LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCeXRlTGVuZ3RoKFZNJiwKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0Ns
YXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0LCAoVk0mLCBKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAyMi4yLjMuMwogICAgIFZpZXdDbGFzcyogdGhp
c09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKQEAg
LTM4Niw3ICszODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQoVk0mLAogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlLCAoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAvLyAgICBW
TSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTQwMyw3ICs0MDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoVk0mIHZtLCBKU0ds
bwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCwg
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogLy8gICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MTksNyArNDE5LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1Nv
cnQoVk0mIHZtLCBKU0dsb2IKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNT
bGljZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvRnVuY1NsaWNlLCAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCkBAIC01MDgsNyArNTA4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZShWTSYgdm0sIEpTR2xvYmEKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKFZNJnZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1
YmFycmF5Q3JlYXRlLCAoVk0mdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCA3ZTUyNWQ5MWRhMjE1OGU0NDQyMTU0YTUzYjAzNWFmZWI0NjRiZjdhLi5i
ZDU0YmIxNTk1NTQyMGMzOTI5MmM3NmFhMWI3MWY5M2I1YzU4YTU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0yNDIsNiArMjQy
LDIwIEBAIEZPUl9FQUNIX1NJTVBMRV9CVUlMVElOX1RZUEUoQ0hFQ0tfRkVBVFVSRV9GTEFHX1RZ
UEUpCiBGT1JfRUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQRShDSEVDS19GRUFUVVJF
X0ZMQUdfVFlQRSkKIEZPUl9FQUNIX0xBWllfQlVJTFRJTl9UWVBFKENIRUNLX0ZFQVRVUkVfRkxB
R19UWVBFKQogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYWtlQm91bmRGdW5j
dGlvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihoYXNPd25MZW5ndGhQcm9w
ZXJ0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjcmVhdGVQcml2YXRlU3lt
Ym9sKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVN1cGVyU2FtcGxl
cik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkaXNhYmxlU3VwZXJTYW1wbGVy
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGVucXVldWVKb2IpOworI2lmIEFT
U0VSVF9FTkFCTEVECitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhc3NlcnRDYWxs
KTsKKyNlbmRpZgorI2lmIEVOQUJMRShTQU1QTElOR19QUk9GSUxFUikKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVNhbXBsaW5nUHJvZmlsZXIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIpOworI2VuZGlmCisK
IHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZVByb3h5UHJvcGVydHkoVk0mIHZtLCBKU09iamVjdCogb2Jq
ZWN0KQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwgPSBqc0Nhc3Q8SlNHbG9iYWxPYmpl
Y3QqPihvYmplY3QpOwpAQCAtMjcyLDcgKzI4Niw3IEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUNv
bnNvbGVQcm9wZXJ0eShWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIENvbnNv
bGVPYmplY3Q6OmNyZWF0ZSh2bSwgZ2xvYmFsLCBDb25zb2xlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUodm0sIGdsb2JhbCwgY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsKSkpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlQm91bmRGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihtYWtlQm91bmRGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
Mjg2LDcgKzMwMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VC
b3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNCb3VuZEZ1bmN0aW9uOjpjcmVhdGUodm0s
IGdsb2JhbE9iamVjdCwgdGFyZ2V0LCBib3VuZFRoaXMsIGJvdW5kQXJncy5pc0NlbGwoKSA/IGpz
Q2FzdDxKU0ltbXV0YWJsZUJ1dHRlcmZseSo+KGJvdW5kQXJncykgOiBudWxscHRyLCBsZW5ndGgs
IG5hbWVTdHJpbmcpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGhhc093bkxlbmd0aFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGhhc093bkxlbmd0aFBy
b3BlcnR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDYsMTQgKzMyMCwxNCBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNPd25MZW5ndGhQcm9wZXJ0eShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsTwogCiAvLyBGSVhNRTogdXNlIGEgYnl0ZWNvZGUgb3IgaW50cmluc2lj
IGZvciBjcmVhdGluZyBhIHByaXZhdGUgc3ltYm9sLgogLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMjc4Mgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY3JlYXRlUHJpdmF0ZVN5bWJvbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNyZWF0ZVByaXZhdGVTeW1ib2ws
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShTeW1i
b2w6OmNyZWF0ZSh2bSwgUHJpdmF0ZVN5bWJvbEltcGw6OmNyZWF0ZU51bGxTeW1ib2woKS5nZXQo
KSkpOwogfQogCiAjaWYgQVNTRVJUX0VOQUJMRUQKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFzc2VydENhbGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXNzZXJ0Q2FsbCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBSRUxFQVNFX0FTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzQm9vbGVhbigpKTsKICAg
ICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5hc0Jvb2xlYW4oKSkKQEAgLTM0MSw3ICszNTUs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhc3NlcnRDYWxsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECiAK
ICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBlbmFibGVTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZW5hYmxlU2FtcGxp
bmdQcm9maWxlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIFNhbXBsaW5nUHJvZmlsZXIqIHByb2ZpbGVyID0gZ2xvYmFsT2JqZWN0LT52bSgpLnNh
bXBsaW5nUHJvZmlsZXIoKTsKICAgICBpZiAoIXByb2ZpbGVyKQpAQCAtMzUwLDcgKzM2NCw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVuYWJsZVNhbXBsaW5nUHJvZmls
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGlz
YWJsZVNhbXBsaW5nUHJvZmlsZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkaXNhYmxlU2FtcGxpbmdQcm9maWxlciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFNhbXBs
aW5nUHJvZmlsZXIqIHByb2ZpbGVyID0gZ2xvYmFsT2JqZWN0LT52bSgpLnNhbXBsaW5nUHJvZmls
ZXIoKTsKICAgICBpZiAoIXByb2ZpbGVyKQpAQCAtMzY1LDEzICszNzksMTMgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIoSlNHbG9i
YWxPYmplY3QqIGdsb2IKIH0KICNlbmRpZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBlbmFibGVTdXBlclNhbXBsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGVuYWJsZVN1cGVyU2FtcGxlciwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgZW5hYmxlU3VwZXJTYW1wbGVyKCk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGlzYWJsZVN1cGVyU2FtcGxlcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGlzYWJsZVN1cGVyU2FtcGxl
ciwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgZGlzYWJsZVN1cGVyU2Ft
cGxlcigpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CkBAIC00
NTIsNyArNDY2LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxPYmpl
Y3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7CiBAZW5kCiAqLwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlbnF1ZXVlSm9iKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGVucXVldWVKb2IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAKaW5kZXggZjlkYzY0NDg4Mjk3OTk3NDU4NjExYWMxZjAyMjgwNGVlMDBhZTRhNS4u
NjZjNjJmZmQ5MjZmZWRkNTM1NWNhYThhMmRlYmMwMTM5NWQyMDRiYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcApAQCAtNDU5LDcgKzQ1OSw3IEBAIHN0YXRpYyBkb3VibGUgcGFyc2VGbG9hdChTdHJpbmdW
aWV3IHMpCiAgICAgcmV0dXJuIGpzU3RyRGVjaW1hbExpdGVyYWwoZGF0YSwgZW5kKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXZhbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jRXZhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDk3LDcgKzQ5
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0V2YWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodm0uaW50ZXJwcmV0ZXItPmV4ZWN1dGUoZXZhbCwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPmdsb2JhbFRoaXMoKSwgZ2xvYmFsT2JqZWN0LT5nbG9iYWxT
Y29wZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQ
YXJzZUludChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUGFyc2VJbnQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSByYWRpeFZh
bHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKQEAgLTUyNSw3ICs1MjUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQYXJzZUludChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYQogICAgIH0pOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNQYXJzZUZsb2F0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQ
YXJzZUZsb2F0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MzcsNyArNTM3LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VGbG9hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocGFy
c2VGbG9hdCh2aWV3V2l0aFN0cmluZy52aWV3KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNEZWNvZGVVUkkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFs
RnVuY0RlY29kZVVSSSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBzdGF0aWMgQml0bWFwPDI1Nj4gZG9Ob3RVbmVzY2FwZVdoZW5E
ZWNvZGluZ1VSSSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCiAgICAgICAgICIjJCYrLC86Oz0/QCIK
QEAgLTU0NiwxMyArNTQ2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY0RlY29kZVVSSShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShkZWNvZGUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLCBkb05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJLCB0cnVlKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHN0YXRpYyBC
aXRtYXA8MjU2PiBlbXB0eUJpdG1hcDsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGRlY29k
ZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGVtcHR5Qml0bWFwLCB0cnVl
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVS
SShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHN0YXRpYyBC
aXRtYXA8MjU2PiBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSSA9IG1ha2VDaGFyYWN0ZXJCaXRt
YXAoCiAgICAgICAgICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKQEAgLTU2NCw3ICs1NjQs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNvZGVVUkkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
ZW5jb2RlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgZG9Ob3RFc2NhcGVX
aGVuRW5jb2RpbmdVUkkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9i
YWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNF
bmNvZGVVUklDb21wb25lbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgc3RhdGljIEJpdG1hcDwyNTY+IGRvTm90RXNjYXBlV2hl
bkVuY29kaW5nVVJJQ29tcG9uZW50ID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAgIkFC
Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgpAQCAtNTc2LDcgKzU3Niw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVSSUNvbXBvbmVudChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlbmNvZGUoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBkb05vdEVzY2FwZVdoZW5FbmNvZGluZ1VSSUNv
bXBvbmVudCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNF
c2NhcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VzY2FwZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBzdGF0aWMg
Qml0bWFwPDI1Nj4gZG9Ob3RFc2NhcGUgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAogICAgICAgICAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCkBAIC02MjEsNyArNjIxLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGwKICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY1VuZXNjYXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNVbmVz
Y2FwZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRvU3RyaW5nVmlldyhnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIFsmXSAoU3RyaW5nVmlldyB2aWV3KSB7CiAgICAg
ICAgIC8vIFdlIHVzZSBpbnQgZm9yIGsgYW5kIGxlbmd0aCBpbnRlbnRpb25hbGx5IHNpbmNlIHdl
IHdvdWxkIGxpa2UgdG8gZXZhbHVhdGUKQEAgLTY3NywzMyArNjc3LDMzIEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1VuZXNjYXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhCiAgICAgfSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNUaHJvd1R5cGVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Ro
cm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVu
Y1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiJ2FyZ3VtZW50cycs
ICdjYWxsZWUnLCBhbmQgJ2NhbGxlcicgY2Fubm90IGJlIGFjY2Vzc2VkIGluIHRoaXMgY29udGV4
dC4iKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jTWFrZVR5
cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVy
ZShFcnJvclR5cGU6OlR5cGVFcnJvcik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFcnJv
ckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVyZSwgY2FsbEZyYW1l
LT5hcmd1bWVudCgwKSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9iamVjdCwgRUNNQU1vZGU6OnN0
cmljdCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZS5nZXRQcm90b3R5
cGUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xv
YmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm90b1Nl
dHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzMwLDcgKzczMCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jU2V0UHJvdG90eXBl
RGlyZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNTZXRQcm90b3R5cGVEaXJlY3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0NSw3ICs3NDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRQcm90b3R5cGVEaXJlY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbAogICAgIHJldHVybiB7IH07CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY0hvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihnbG9iYWxGdW5jSG9zdFByb21pc2VSZWplY3Rpb25UcmFja2VyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC03ODAsMTggKzc4MCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIoSlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0J1aWx0aW5Mb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgZGF0YUxvZyhjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCksICJcbiIpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY0J1aWx0aW5EZXNjcmliZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jQnVpbHRpbkRlc2NyaWJlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmco
Z2xvYmFsT2JqZWN0LT52bSgpLCB0b1N0cmluZyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0ltcG9ydE1vZHVsZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKQEAgLTgyMyw3ICs4MjMsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJvbWlzZSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtODM5LDcgKzgzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZW51bWVyYWJsZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNPd25LZXlzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNPd25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC04NDgsNyArODQ4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5j
T3duS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMoZ2xvYmFsT2Jq
ZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBEb250RW51
bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlLCBXVEY6Om51bGxvcHQpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0RhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmgKaW5kZXggYTM2N2MyYmMyN2YxNjVlYTE5MjA2YThjNGM3OGM4MTJiZmEwNTYx
NS4uOTgyM2M2YmMwNDJhNmY5MzllZjJkMTgxMzIwMWJjNzI4ZDM2Mjg4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5oCkBAIC0zNywyOCArMzcsMjggQEAgY2xhc3MgSlNPYmplY3Q7CiAKIGV4dGVybiBjb25zdCBB
U0NJSUxpdGVyYWwgT2JqZWN0UHJvdG9DYWxsZWRPbk51bGxPclVuZGVmaW5lZEVycm9yOwogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFdmFsKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQ
YXJzZUludChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VGbG9hdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2RlVVJJKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNEZWNvZGVVUklDb21wb25lbnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVSSShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY1VuZXNjYXBlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNDYWxsZWVBbmRDYWxsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY01ha2VUeXBl
RXJyb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm90b1NldHRlcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBnbG9iYWxGdW5jU2V0UHJvdG90eXBlRGlyZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJl
amVjdGlvblRyYWNrZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0aW5Mb2coSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0J1aWx0
aW5EZXNjcmliZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQcm9wZXJ0
eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jT3duS2V5cyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGF0ZVRpbWVG
b3JtYXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY0V2YWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jUGFyc2VJbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUGFyc2VG
bG9hdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNEZWNvZGVVUkkpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VuY29kZVVSSSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUklDb21wb25lbnQpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRXNjYXBlKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZ2xvYmFsRnVuY1VuZXNjYXBlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Z2xvYmFsRnVuY1Rocm93VHlwZUVycm9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xv
YmFsRnVuY1Rocm93VHlwZUVycm9yQXJndW1lbnRzQ2FsbGVlQW5kQ2FsbGVyKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY01ha2VUeXBlRXJyb3IpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUHJvdG9HZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jUHJvdG9TZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihnbG9iYWxGdW5jU2V0UHJvdG90eXBlRGlyZWN0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0hvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNCdWlsdGluTG9nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY0J1aWx0aW5EZXNjcmliZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihnbG9iYWxGdW5jT3duS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1
bmNEYXRlVGltZUZvcm1hdCk7CiAKIGRvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKaW5k
ZXggNmNmZDQwMDE2OGUyNmViZTIzYmQ2YTI4NDBmOGFlNWYxMGEwMjdlZC4uYjA5ZmQ0NGU2YWY3
MjMxYzY3ZWZhZTFjOTFhMTZkNzE1MzgwMzExOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcApAQCAtNDQsMTQgKzQ0LDE0IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1
bGVMb2FkZXJQYXJzZU1vZHVsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVxdWVzdGVkTW9kdWxl
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyRXZhbHVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlck1v
ZHVsZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2
ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2ZVN5bmMoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRl
ckZldGNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VPYmplY3QoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1vZHVsZUxvYWRlclBhcnNlTW9kdWxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1vZHVsZUxvYWRlclJlcXVlc3RlZE1vZHVsZXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyRXZhbHVhdGUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyTW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9u
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlclJlc29sdmUp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyUmVzb2x2ZVN5
bmMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyRmV0Y2gp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyR2V0TW9kdWxl
TmFtZXNwYWNlT2JqZWN0KTsKIAogfQogCkBAIC0zNjIsNyArMzYyLDcgQEAgSlNNb2R1bGVOYW1l
c3BhY2VPYmplY3QqIEpTTW9kdWxlTG9hZGVyOjpnZXRNb2R1bGVOYW1lc3BhY2VPYmplY3QoSlNH
bG9iYWxPYmplY3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9u
cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1vZHVsZUxvYWRlclBhcnNlTW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1v
ZHVsZUxvYWRlclBhcnNlTW9kdWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
IApAQCAtNDA2LDcgKzQwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxl
TG9hZGVyUGFyc2VNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShwcm9taXNlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtb2R1bGVMb2FkZXJSZXF1ZXN0ZWRNb2R1bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1v
ZHVsZUxvYWRlclJlcXVlc3RlZE1vZHVsZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQyNCw3
ICs0MjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclJlcXVl
c3RlZE1vZHVsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bW9kdWxlTG9hZGVyTW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC00NDIsNyArNDQyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
b2R1bGVMb2FkZXJNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24oSlNHbG9iYWwKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhvb2sgRnVuY3Rpb25zIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxv
YWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyUmVzb2x2ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgLy8gSG9vayBwb2ludCwgTG9hZGVy
LnJlc29sdmUuCkBAIC00NTUsNyArNDU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+cmVzb2x2ZShnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZS0+YXJndW1lbnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIGNhbGxGcmFtZS0+
YXJndW1lbnQoMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVM
b2FkZXJSZXNvbHZlU3luYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJSZXNvbHZl
U3luYywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2ZVN5bmMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpZGVudGlmaWVyVG9KU1Zh
bHVlKHZtLCByZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1
bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJGZXRjaCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgLy8gSG9vayBwb2ludCwgTG9hZGVy
LmZldGNoCkBAIC00ODIsNyArNDgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
b2R1bGVMb2FkZXJGZXRjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGxvYWRlci0+ZmV0Y2goZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpLCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDIpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVy
R2V0TW9kdWxlTmFtZXNwYWNlT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRl
ckdldE1vZHVsZU5hbWVzcGFjZU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDk3LDcg
KzQ5Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyR2V0TW9k
dWxlTmFtZXNwYWNlT2JqZWN0KEpTR2xvYmFsT2JqZWN0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0gQWRkaXRpb25hbCBIb29rIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyBUbyBpbnN0cnVt
ZW50IGFuZCByZXRyaWV2ZSB0aGUgZXJyb3JzIHJhaXNlZCBmcm9tIHRoZSBtb2R1bGUgZXhlY3V0
aW9uLAogICAgIC8vIHdlIGluc2VydGVkIHRoZSBob29rIHBvaW50IGhlcmUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwCmlu
ZGV4IDc0ZGM2NGI2YzAzZjIyNWU1YTJhMmNhMDg1NGI3YzdhN2JhYTBmZDguLjQ1ZmYzODIwZmE3
ZDIzNTQxOWJiMmQ4Nzk4M2IyOGZlMzhlMWRiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwCkBAIC0zMyw2ICszMyw4
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNOYXRpdmVTdGRGdW5jdGlv
bjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTTmF0aXZlU3RkRnVuY3Rpb24pIH07CiAKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJ1blN0ZEZ1bmN0aW9uKTsKKwogSlNOYXRpdmVTdGRG
dW5jdGlvbjo6SlNOYXRpdmVTdGRGdW5jdGlvbihWTSYgdm0sIE5hdGl2ZUV4ZWN1dGFibGUqIGV4
ZWN1dGFibGUsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBOYXRpdmVTdGRGdW5jdGlvbiYmIGZ1bmN0aW9uKQogICAgIDogQmFzZSh2bSwgZXhlY3V0
YWJsZSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2Z1bmN0aW9uKFdURk1vdmUo
ZnVuY3Rpb24pKQpAQCAtNTIsNyArNTQsNyBAQCB2b2lkIEpTTmF0aXZlU3RkRnVuY3Rpb246OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgdQogICAg
IEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHJ1blN0ZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJ1blN0
ZEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIEpTTmF0aXZlU3RkRnVuY3Rpb24qIGZ1bmN0aW9uID0ganNDYXN0PEpT
TmF0aXZlU3RkRnVuY3Rpb24qPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAgIEFTU0VSVChm
dW5jdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
CmluZGV4IDUzOTM3ZGU3YWMyYzk4YjE2MjYzMGY1ODhiNzcwYTA1NzJkOTQyODYuLjMzOTI5YjJk
NGZmODgzZWYwZjQwZGUwYTA2NTA3ZjQ1MDgyNGZkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC00Miw4ICs0Miw4IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNPTk9iamVj
dCk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1BhcnNlKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTT05Qcm90b0Z1bmNTdHJpbmdpZnkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSlNPTlByb3RvRnVuY1BhcnNlKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oSlNPTlByb3RvRnVuY1N0cmluZ2lmeSk7CiAKIH0KIApAQCAtNzkyLDcg
Kzc5Miw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhKU1ZhbHVlIHVuZmls
dGVyZWQpCiB9CiAKIC8vIEVDTUEtMjYyIHY1IDE1LjEyLjIKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSlNPTlByb3RvRnVuY1BhcnNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEpTT05Qcm90
b0Z1bmNQYXJzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODM0LDcgKzgzNCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1BhcnNlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhCiB9CiAKIC8vIEVDTUEtMjYyIHY1IDE1LjEyLjMKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnVuY1N0cmluZ2lmeShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihKU09OUHJvdG9GdW5jU3RyaW5naWZ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggOGU1MWUwMzgyYTRj
ZTJiYzc5ZTVlZjA2NWFjZDQzNzdkMzgwOTI4NS4uOTViN2U5YWQ5ZjJlMjU0OTk4ZmM5NTQzZWY1
ZjdkZmE0Y2I5NjMxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmNwcApAQCAtMjM3Miw3ICsyMzcyLDcgQEAgYm9vbCBKU09iamVjdDo6ZGVmYXVsdEhhc0luc3Rh
bmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUsIEoKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJp
dmF0ZUZ1bmNJbnN0YW5jZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPnVuY2hl
Y2tlZEFyZ3VtZW50KDApOwogICAgIEpTVmFsdWUgcHJvdG8gPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5k
ZXggNTk5N2MwNzZjNzAxZjdiNmFiNmUyNjVmYTU4NmIwODc2MzM2YTBjOC4uNjU3YmZjZDFhNmIy
MzQwZWM0ZDFiOThkYWIwZGEyZmExN2MwYzFkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCkBAIC0xMjM0LDcgKzEyMzQsNyBAQCBjbGFzcyBKU0ZpbmFsT2JqZWN0
IGZpbmFsIDogcHVibGljIEpTT2JqZWN0IHsKICAgICB9CiB9OwogCi1KU19FWFBPUlRfUFJJVkFU
RSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VP
ZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOwogCiBpbmxp
bmUgSlNGaW5hbE9iamVjdCogSlNGaW5hbE9iamVjdDo6Y3JlYXRlV2l0aEJ1dHRlcmZseShWTSYg
dm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCdXR0ZXJmbHkqIGJ1dHRlcmZseSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlW
aWV3Q29uc3RydWN0b3IuY3BwCmluZGV4IGFlZTZmMTllNDRhMmNjMmRlYjk4OTUwNDQ2NWQ3NWUy
MjE2NTkwM2YuLmZhMzMzODJlZmM4M2MwNWYxOTVkNTRiZTZmNDUwODQzYzEwYWY1MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFy
cmF5Vmlld0NvbnN0cnVjdG9yLmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZWRB
cnJheVZpZXcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KTsKIAogSlNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9yOjpKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY29uc3RydWN0VHlw
ZWRBcnJheVZpZXcsIGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KQpAQCAtNTcsOSArNTcsNyBAQCBT
dHJ1Y3R1cmUqIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKAog
ICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUs
IFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7
CiB9CiAKLQotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RU
eXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJh
eVZpZXdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKaW5kZXggMzE2OTIxMTQ1M2YyN2JjZDBhYTBlN2RkMTEx
ZjUyZGIzNjExMDI1MC4uMmU2NTgxNTRmMzRlMTgwZDcyNzg4NjAyNjE2MjVhMTllZmMwNmU2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAKQEAgLTM0LDYgKzM0LDIzIEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1By
b3RvRnVuY1ZhbHVlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5UHJvdG9WaWV3RnVuY0VudHJpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNLZXlzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1
ZGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jTGFzdEluZGV4T2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVu
Y0xlbmd0aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVu
Y1NsaWNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOworCiAjZGVmaW5lIENBTExfR0VORVJJQ19UWVBF
REFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihmdW5jdGlvbk5hbWUpIGRvIHsgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgc3dpdGNoICh0aGlzVmFsdWUuZ2V0T2JqZWN0KCktPmNsYXNz
SW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgeyAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgY2FzZSBUeXBlVWludDhDbGFtcGVkOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCkBAIC02MiwyMCArNzks
MjAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiB9IHdoaWxlIChmYWxzZSkKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5VmlldyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5VmlldywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih2YWx1ZS5pc0NlbGwoKSAmJiBpc1R5cGVkVmlldyh2
YWx1ZS5hc0NlbGwoKS0+Y2xhc3NJbmZvKGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlT
dG9yYWdlVHlwZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2Fs
bEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9i
amVjdCwgYXJndW1lbnQuaXNDZWxsKCkgJiYgaXNUeXBlZFZpZXcoYXJndW1lbnQuYXNDZWxsKCkt
PmNsYXNzSW5mbyhnbG9iYWxPYmplY3QtPnZtKCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihqc0Nhc3Q8SlNBcnJheUJ1ZmZl
clZpZXcqPihhcmd1bWVudCktPmlzTmV1dGVyZWQoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtOTEsNyArMTA4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBl
ZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPmxlbmd0aCgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dl
dE9yaWdpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQ
cml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIFR5cGVkQXJyYXlUeXBlIHR5cGUgPSBjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApLmdldE9iamVjdCgpLT5jbGFzc0luZm8odm0pLT50eXBlZEFycmF5U3RvcmFn
ZVR5cGU7CkBAIC0xMTUsMjIgKzEzMiwyMiBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY3JlYXRl
VHlwZWRBcnJheUl0ZXJhdG9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdC0+YXJyYXlJdGVyYXRvclN0cnVjdHVyZSgpLCB0aGlzT2JqZWN0LCBqc051bWJlcihz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oa2luZCkpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jVmFsdWVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjcmVh
dGVUeXBlZEFycmF5SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJh
dGlvbktpbmQ6OlZhbHVlcyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHR5cGVkQXJyYXlQcm90b1ZpZXdGdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0
eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJy
YXlJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6
RW50cmllcyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1Byb3RvRnVuY0tleXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJyYXlJdGVyYXRvck9iamVj
dChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6S2V5cyk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEzOSw3ICsxNTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YQogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmlj
VHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTUwLDcgKzE2Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgQ0FMTF9HRU5F
UklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1By
b3RvRnVuY1NldCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2
MSw3ICsxNzgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4oSlNHbG9iYWxPYgogICAgIENBTExfR0VORVJJQ19U
WVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNDb3B5V2l0aGluKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luY2x1ZGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzIs
NyArMTg5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmNsdWRlcyhKU0dsb2JhbE9iamUKICAgICBDQUxMX0dFTkVSSUNfVFlQ
RURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
SW5jbHVkZXMpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVk
QXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4
Myw3ICsyMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsTwogICAgIENBTExfR0VORVJJQ19U
WVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1
bmNMYXN0SW5kZXhPZik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NCw3
ICsyMTEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5
Vmlld1Byb3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplYwogICAgIENBTExfR0VORVJJQ19UWVBF
REFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJ
bmRleE9mKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNKb2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jSm9pbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjA1LDcgKzIyMiw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
Sm9pbihKU0dsb2JhbE9iamVjdCoKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0
ZXJGdW5jQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0
ZXJGdW5jQnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTYsNyArMjMzLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRl
ckZ1bmNCdWZmZXIoSlNHbG9iYWwKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZ
UEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQ
cm90b0dldHRlckZ1bmNMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNyw3ICsyNDQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1By
b3RvR2V0dGVyRnVuY0xlbmd0aChKU0dsb2JhbAogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZ
X1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNM
ZW5ndGgpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFy
cmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzgsNyArMjU1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKEpTR2wKICAgICBDQUxMX0dF
TkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0OSw3ICsyNjYsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZz
ZXQoSlNHbAogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNS
ZXZlcnNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJz
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYwLDcgKzI3Nyw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShKU0ds
b2JhbE9iamVjCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9O
KGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlD
cmVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3MSw3ICsyODgsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0
ZShKU0dsb2JhbE9iagogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5D
VElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90
b0Z1bmNTbGljZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1Ns
aWNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODIsNyArMjk5LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZShKU0ds
b2JhbE9iamVjdCoKICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJ
T04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY1Rv
U3RyaW5nVGFnKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJG
dW5jVG9TdHJpbmdUYWcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpOwogICAgIGlmICghdGhpc1ZhbHVlLmlzT2JqZWN0KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgK
aW5kZXggOTIxYTVkMDlmYjNiMzdlOGZiMTE2YzNhM2E0MWZjNzVkOWQxMGNkZS4uOGU3ZGFjMTQx
YmNhYjg0NjIwYTk0OGM1ZjkzNzE5MGEyZWJkMDc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaApAQCAt
NTEsMTEgKzUxLDExIEBAIGNsYXNzIEpTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpT
R2xvYmFsT2JqZWN0Kik7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJp
dmF0ZUZ1bmNJc05ldXRlcmVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5
cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNMZW5ndGgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y0dldE9yaWdpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFy
cmF5Q3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzTmV1dGVy
ZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
U29ydCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1
bmNMZW5ndGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZh
dGVGdW5jR2V0T3JpZ2luYWxDb25zdHJ1Y3Rvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZSk7CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VHlwZWRBcnJheXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFy
cmF5cy5jcHAKaW5kZXggZDFiNWZmMTJhYTVmN2U1YmRmN2UwMmMzN2QxYmVkYzhiNjc2MTE5OC4u
ZmJkOTM2MWQ3YzNiN2RiMzlmMWM5YzRkNDU1YTE3MzE5M2VhODczZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAKQEAgLTI5LDE2ICsyOSwy
NiBAQAogI2luY2x1ZGUgIkdlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCIKICNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVz
LmgiCisjaW5jbHVkZSAiSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMu
aCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyNkZWZpbmUgTUFLRV9DT05TVFJVQ1RPUlMoQ2xhc3Mp
IFwKKyAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbCMjQ2xhc3MsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpIHsgXAorICAgICAgICBy
ZXR1cm4gY2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGw8SlMjI0NsYXNzPihnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZSk7IFwKKyAgICB9IFwKKyAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0IyNDbGFzcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkgeyBcCisgICAgICAgIHJldHVybiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRB
cnJheVZpZXdJbXBsPEpTIyNDbGFzcz4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOyBcCisgICAg
fQorCiAjdW5kZWYgTUFLRV9TX0lORk8KICNkZWZpbmUgTUFLRV9TX0lORk8odHlwZSkgXAogICAg
IHRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTIyN0eXBlIyNBcnJheTo6c19pbmZvID0geyBc
CiAgICAgICAgICN0eXBlICJBcnJheSIsICZKUyMjdHlwZSMjQXJyYXk6OkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgXAogICAgICAgICBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTIyN0eXBl
IyNBcnJheSkgXAogICAgIH07IFwKLSAgICBjb25zdCBDbGFzc0luZm8qIGdldCMjdHlwZSMjQXJy
YXlDbGFzc0luZm8oKSB7IHJldHVybiAmSlMjI3R5cGUjI0FycmF5OjpzX2luZm87IH0KKyAgICBj
b25zdCBDbGFzc0luZm8qIGdldCMjdHlwZSMjQXJyYXlDbGFzc0luZm8oKSB7IHJldHVybiAmSlMj
I3R5cGUjI0FycmF5OjpzX2luZm87IH0gXAorICAgIE1BS0VfQ09OU1RSVUNUT1JTKHR5cGUjI0Fy
cmF5KQogCiBNQUtFX1NfSU5GTyhJbnQ4KTsKIE1BS0VfU19JTkZPKEludDE2KTsKQEAgLTUwLDEx
ICs2MCw3IEBAIE1BS0VfU19JTkZPKFVpbnQzMik7CiBNQUtFX1NfSU5GTyhGbG9hdDMyKTsKIE1B
S0VfU19JTkZPKEZsb2F0NjQpOwogCi1KU1VpbnQ4QXJyYXkqIGNyZWF0ZVVpbnQ4VHlwZWRBcnJh
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVm
UHRyPEFycmF5QnVmZmVyPiYmIGJ1ZmZlciwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoKQotewotICAgIHJldHVybiBKU1VpbnQ4QXJyYXk6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgV1RGTW92ZShidWZmZXIpLCBieXRlT2Zmc2V0LCBsZW5ndGgpOwotfQotCitN
QUtFX0NPTlNUUlVDVE9SUyhEYXRhVmlldyk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MTA5ZDU4ZDhmOTgyYmExZDY0YTVlNGJiOTBiZTAxNGYzOWNjY2ZkNi4uMmMzNzMyNTgwY2JlY2Ux
MzViMmNlNTBjOTMyZGViYTE4MGJjZjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcApAQCAtNDIsMjIgKzQyLDIyIEBAIHZvaWQgTWFw
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTWFwUHJvdG90eXBlKiBtYXBQcm90
b3R5cGUsIEdldHRlclNlCiAgICAgcHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zcGVjaWVzU3ltYm9sLCBzcGVjaWVzU3ltYm9s
LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9u
bHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RNYXAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxNYXApOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0TWFw
KTsKIAogTWFwQ29uc3RydWN0b3I6Ok1hcENvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxNYXAsIGNvbnN0cnVjdE1h
cCkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1hcChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNhbGxNYXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
dGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiTWFwIikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RNYXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0TWFwLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTIsNyArMTEyLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG1hcCk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRIZWFkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlRfVU5VU0VE
KGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU01hcCo+KGdsb2JhbE9iamVjdC0+dm0oKSwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIEpTTWFwKiBtYXAgPSBqc0Nhc3Q8SlNNYXAq
PihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaGVhZCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNr
ZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0TmV4dCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGdsb2JhbE9iamVj
dC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIGF1dG8qIGJ1Y2tldCA9IGpz
Q2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkp
OwpAQCAtMTM1LDcgKzEzNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJp
dmF0ZUZ1bmNNYXBCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnZtKCkuc2VudGluZWxNYXBCdWNrZXQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNr
ZXRLZXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRLZXksIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGpzRHluYW1pY0Nhc3Q8SlNNYXA6OkJ1Y2tl
dFR5cGUqPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKICAg
ICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNNYXA6OkJ1Y2tldFR5cGUqPihjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0S2V5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYnVja2V0LT5rZXkoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRWYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldFZhbHVlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBqc0R5bmFtaWNDYXN0PEpTTWFwOjpCdWNrZXRU
eXBlKj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAg
YXV0byogYnVja2V0ID0ganNDYXN0PEpTTWFwOjpCdWNrZXRUeXBlKj4oY2FsbEZyYW1lLT51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXBDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFw
Q29uc3RydWN0b3IuaAppbmRleCBkYjlkNDdkYjNlMTc1NGEyOGEwYThiMmVlZWQzMWViYmFmMmJm
YTkxLi43YTM1YWU3ODQ1YjhlMTc2YjQzYmNmM2E2M2I0Mjg5MzQ1OGU0ZWQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKQEAgLTU3LDkgKzU3
LDkgQEAgY2xhc3MgTWFwQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlv
biB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoTWFwQ29uc3RydWN0
b3IsIEludGVybmFsRnVuY3Rpb24pOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
cFByaXZhdGVGdW5jTWFwQnVja2V0SGVhZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRLZXkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRW
YWx1ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEtleSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0VmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBQcm90b3R5cGUuY3BwCmluZGV4
IGU3NDQxOWYzNmZjMjRjZjY3MTliZTQ5YjU0MzM0NjhhNDc5N2ZkOGUuLjRmYWU2YTkzNGQ3YjMz
NjcxMjE3NzY5MjM4MTk0MjY0N2E2YWQ4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcApAQCAtNDMsMTYgKzQzLDE2IEBAIGNvbnN0IENsYXNz
SW5mbyBNYXBQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk1hcCIsICZCYXNlOjpzX2luZm8sICZtYXBQ
cm90b3R5cGVUYWJsCiBAZW5kCiAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXBQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jRGVsZXRlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXBQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0hhcyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWFwUHJvdG9GdW5jU2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNWYWx1ZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
cFByb3RvRnVuY0tleXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWFwUHJvdG9GdW5jU2l6ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jQ2xlYXIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jRGVsZXRlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVuY0dldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNIYXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obWFwUHJvdG9GdW5jU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hcFByb3RvRnVuY1ZhbHVlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYXBQcm90b0Z1bmNLZXlzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1h
cFByb3RvRnVuY0VudHJpZXMpOworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiht
YXBQcm90b0Z1bmNTaXplKTsKICAgICAKIHZvaWQgTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC05Nyw3ICs5Nyw3
IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIEpTTWFwKiBnZXRNYXAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB0aGlzVmFsCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04obWFwUHJvdG9GdW5jQ2xlYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1hcChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtMTA2
LDcgKzEwNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jQ2xl
YXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXBQcm90b0Z1bmNEZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jRGVs
ZXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTExNCw3ICsxMTQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0RlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG1hcC0+
cmVtb3ZlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04obWFwUHJvdG9GdW5jR2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTEyMiw3ICsx
MjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0dldChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUobWFwLT5nZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jSGFzKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hcFByb3RvRnVuY0hhcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU01hcCogbWFwID0gZ2V0TWFwKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFtYXApCkBAIC0xMzAs
NyArMTMwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNIYXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihtYXAtPmhhcyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5j
U2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1h
cChnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSk7CkBAIC0xNTAsMjIgKzE1MCwyMiBAQCBpbmxpbmUg
SlNWYWx1ZSBjcmVhdGVNYXBJdGVyYXRvck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqCiAgICAgcmV0dXJuIEpTTWFwSXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xv
YmFsT2JqZWN0LT5tYXBJdGVyYXRvclN0cnVjdHVyZSgpLCBtYXAsIGtpbmQpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXBQcm90b0Z1bmNWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
cmVhdGVNYXBJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9u
S2luZDo6VmFsdWVzKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJv
dG9GdW5jS2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNLZXlzLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlTWFwSXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OktleXMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
cFByb3RvRnVuY0VudHJpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVNYXBJ
dGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6RW50
cmllcykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1Np
emUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jU2l6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU01hcCogbWFw
ID0gZ2V0TWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYg
KCFtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCmlu
ZGV4IGRmZjc4OTk3ZjdjYzg0Y2IxYTY0YmQ4ZTM1YjNkMGQyMTgyMjk0OWUuLjY4OTE5MjMwNTA2
ZDA1YzBjZWNmYzcwZjZlMWVmYzczMWI4YTEzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC0zMSwzOCArMzEsMzggQEAgbmFtZXNwYWNlIEpT
QyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShNYXRoT2JqZWN0
KTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQUNvcyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jQUNvc2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FTaW4oSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FT
aW5oKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuaChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jQVRhbjIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NicnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NlaWwoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWF0aFByb3RvRnVuY0NsejMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDb3MoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0Nv
c2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbWF0aFByb3RvRnVuY0V4cChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jRXhwbTEoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3Rv
RnVuY0Zyb3VuZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jSHlwb3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jTG9nMXAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzEwKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNM
b2cyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1bmNNYXgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY01pbihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jUG93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNSYW5kb20oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1JvdW5kKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNTaWduKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaW4oSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1Npbmgo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY1NxcnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1RhbihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5j
VGFuaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXRoUHJvdG9GdW5jSU11bChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQUNvcyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBQ29zaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNBU2luKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0FTaW5oKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVu
Y0FUYW4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbmgpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbjIpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ2JydCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNDZWlsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0NsejMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVu
Y0Nvcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNDb3NoKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0V4cCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNFeHBtMSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hdGhQcm90b0Z1bmNGcm91bmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRo
UHJvdG9GdW5jSHlwb3QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
TG9nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzFwKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzEwKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXRoUHJvdG9GdW5jTWF4KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFBy
b3RvRnVuY01pbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNQb3cp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUmFuZG9tKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1JvdW5kKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1NpZ24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYXRoUHJvdG9GdW5jU2luKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3Rv
RnVuY1NpbmgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jU3FydCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNUYW4pOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jVGFuaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNJTXVsKTsKIAogY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6
OnNfaW5mbyA9IHsgIk1hdGgiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKE1hdGhPYmplY3QpIH07CiAKQEAgLTEyNSwyNyArMTI1LDI3IEBAIHZv
aWQgTWF0aE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25z
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnVuY0FicyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9G
dW5jQWJzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZmFicyhjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FDb3MoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY0FDb3MsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJs
ZU51bWJlcihNYXRoOjphY29zKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFs
T2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jQVNpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVNpbiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmFzaW4oY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFuKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
dGhQcm90b0Z1bmNBVGFuLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1i
ZXIoTWF0aDo6YXRhbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FU
YW4yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBVGFuMiwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTU2LDEyICsxNTYsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jQVRhbjIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKGF0YW4yKGFyZzAsIGFyZzEp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NlaWwo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0NlaWwsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihjZWlsKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIo
Z2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jQ2x6MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0NsejMyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzAsMjIgKzE3MCwyMiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDbHozMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShjbHoodmFsdWUpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NvcyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ29zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6Y29zKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9O
dW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jRXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNFeHAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjpleHAoY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNGbG9vcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jRmxvb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihmbG9vcihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVj
dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0h5
cG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNIeXBvdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjE1LDEyICsyMTUsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jSHlwb3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2EKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHNxcnQoc3VtKSAqIG1heCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNMb2coSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0xvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZyhjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRv
TnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY01heChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTWF4
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTWF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNNaW4oSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY01pbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjU0LDcgKzI1NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVu
Y01pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXRoUHJvdG9GdW5jUG93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1
bmNQb3csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgLy8gRUNNQSAxNS44LjIuMS4xMwogCkBAIC0yNjksMTcgKzI2OSwxNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNQb3coSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1
ZShvcGVyYXRpb25NYXRoUG93KGFyZywgYXJnMikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jUmFuZG9tKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1Jh
bmRvbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoZ2xvYmFsT2JqZWN0LT53ZWFr
UmFuZG9tTnVtYmVyKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jUm91bmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1JvdW5kLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoanNSb3VuZChjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpZ24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY1NpZ24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgZG91YmxlIGFyZyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCku
dG9OdW1iZXIoZ2xvYmFsT2JqZWN0KTsKICAgICBpZiAoc3RkOjppc25hbihhcmcpKQpAQCAtMjg5
LDIyICsyODksMjIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5j
U2lnbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0ZDo6c2lnbmJpdChhcmcpID8gLTEgOiAxKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpbihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jU2luLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNE
b3VibGVOdW1iZXIoTWF0aDo6c2luKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xv
YmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jU3FydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jU3FydCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHNxcnQoY2FsbEZyYW1lLT5hcmd1
bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFBy
b3RvRnVuY1RhbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1h
dGg6OnRhbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0lNdWwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0lNdWwsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTMxNSw2NyArMzE1LDY3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFBy
b3RvRnVuY0lNdWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihsZWZ0ICogcmlnaHQpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQUNvc2goSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY0FDb3NoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3Vi
bGVOdW1iZXIoTWF0aDo6YWNvc2goY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9i
YWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNBU2luaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVNpbmgsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjphc2luaChjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FUYW5oKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG1hdGhQcm90b0Z1bmNBVGFuaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91
YmxlTnVtYmVyKE1hdGg6OmF0YW5oKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xv
YmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jQ2JydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ2JydCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmNicnQoY2FsbEZyYW1l
LT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDb3NoKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG1hdGhQcm90b0Z1bmNDb3NoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVO
dW1iZXIoTWF0aDo6Y29zaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9i
amVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVu
Y0V4cG0xKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNFeHBtMSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmV4cG0xKGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jRnJvdW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KG1hdGhQcm90b0Z1bmNGcm91bmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJs
ZU51bWJlcihzdGF0aWNfY2FzdDxmbG9hdD4oY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJl
cihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNMb2cxcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTG9nMXAs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjpsb2cxcChj
YWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzEwKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cxMCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZzEwKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1i
ZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jTG9nMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTG9nMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZzIoY2Fs
bEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaW5oKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNTaW5oLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNE
b3VibGVOdW1iZXIoTWF0aDo6c2luaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGds
b2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFBy
b3RvRnVuY1RhbmgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1RhbmgsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjp0YW5oKGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jVHJ1bmMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY1RydW5jLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1i
ZXIoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b0ludGVnZXJQcmVzZXJ2ZU5hTihnbG9iYWxPYmpl
Y3QpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRo
T2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5k
ZXggY2Q0ZTY0N2QxZDk1MzM5ZWZjOTc2NjUzZmQwMmFkYTRiY2E3MzE3My4uNjcyYmMxMzYwYWJj
NTliYjY0N2Y3NDIxYjcyNjA3MTE2MTM2NmYzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hdGhPYmplY3QuaApAQCAtNTQsOCArNTQsOCBAQCBjbGFzcyBNYXRoT2JqZWN0IGZp
bmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtYXRoUHJvdG9GdW5jQWJzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNGbG9vcihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5j
VHJ1bmMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04obWF0aFByb3RvRnVuY0Ficyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQ
cm90b0Z1bmNGbG9vcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNU
cnVuYyk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAxNjc1NDY5
YmM3MWJiZDIzYWNjNDk4OThmZjYwNzQ2Y2JiMjJkMGJkLi43Y2MxMWI1ZjVlMTI5NzIyMDE2Yjg2
NzFmMTM3YzZiYjE3MjEzODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzEsNiArMzEsMTkgQEAg
U1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3JCYXNlKTsKIAogY29uc3QgQ2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3RydWN0b3JCYXNl
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIs
IENSRUFURV9NRVRIT0RfVEFCTEUoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvckJhc2UpIH07CiAKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXZhbEVycm9yKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSYW5nZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFJhbmdlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbFJlZmVyZW5jZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNhbGxTeW50YXhFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RTeW50YXhFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjYWxsVHlwZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFR5cGVFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihjYWxsVVJJRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0VVJJRXJyb3IpOworCiB0ZW1wbGF0ZTxFcnJvclR5cGUgZXJyb3JUeXBlPgogaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8ZXJyb3JUeXBlPjo6Y29uc3RydWN0
SW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
IHsKQEAgLTU2LDU2ICs2OSw1NiBAQCBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgTmF0aXZlRXJyb3JD
b25zdHJ1Y3RvcjxlcnJvclR5cGU+OjpjYWxsSW1wbChKU0dsb2JhbE9iamVjdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgZXJy
b3JTdHJ1Y3R1cmUsIG1lc3NhZ2UsIG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRXZhbEVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNhbGxFdmFsRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3I8RXJyb3JUeXBlOjpFdmFsRXJyb3I+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RXZhbEVycm9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6RXZhbEVycm9yPjo6Y29u
c3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSYW5nZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxSYW5nZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9y
VHlwZTo6UmFuZ2VFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFJhbmdlRXJyb3Io
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0UmFuZ2VFcnJvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlJhbmdlRXJyb3I+Ojpjb25zdHJ1Y3RJbXBs
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFJlZmVyZW5jZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxS
ZWZlcmVuY2VFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5
cGU6OlJlZmVyZW5jZUVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0UmVmZXJlbmNl
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0UmVmZXJlbmNlRXJyb3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpSZWZlcmVuY2VFcnJvcj46
OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3ludGF4RXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbFN5bnRheEVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
PEVycm9yVHlwZTo6U3ludGF4RXJyb3I+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTeW50
YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTeW50YXhFcnJvciwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlN5bnRheEVycm9yPjo6Y29u
c3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y2FsbFR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5
cGU6OlR5cGVFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVy
cm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpUeXBlRXJyb3I+Ojpjb25zdHJ1Y3RJbXBsKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFVSSUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxVUklFcnJvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlVSSUVycm9yPjo6Y2Fs
bEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29u
c3RydWN0VVJJRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JU
eXBlOjpVUklFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rp
b24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgKaW5k
ZXggYjE2NTg0NThlOGQ5ZmM1ODEwZDViOTA1ZWExYTk5ZTU2MzBlNWUzNy4uZWM5YjJkNTgzMGYw
Y2M0Y2IzMjU2YzI3NTk5MGRkZGZmMWUxMDFlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBjbGFzcyBDYWxsRnJhbWU7CiAKLXR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKEpTQ19I
T1NUX0NBTEwgKlJhd05hdGl2ZUZ1bmN0aW9uKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwordHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTICpSYXdO
YXRpdmVGdW5jdGlvbikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKIAogY2xhc3MgTmF0
aXZlRnVuY3Rpb24gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVsbEdldHRlckZ1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggMjM4OTU1NTg1ODYwMjhmODIzMDhk
NTYzNWFhMjZkZWQ3MDVmMWY1NC4uYWFlMjBhNWJjNzU5YjA1MmNmMTkzOTc4OGI2YzAwYzJhZGIy
MmNmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbEdldHRl
ckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0
dGVyRnVuY3Rpb24uY3BwCkBAIC0zMyw3ICszMywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKIGNvbnN0
IENsYXNzSW5mbyBOdWxsR2V0dGVyRnVuY3Rpb246OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShOdWxsR2V0
dGVyRnVuY3Rpb24pIH07CiAKIG5hbWVzcGFjZSBOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbCB7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZpbmVk
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKKworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY2FsbFJldHVyblVuZGVmaW5lZCk7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjYWxsUmV0dXJuVW5kZWZpbmVkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKaW5k
ZXggNDk5NDg5NzEzMWU4ZWY2NzFmYzhkMjk3NDdkN2E2OTA4MjBiODA5YS4uMjZmM2I2YThmOWRi
Njc4Y2Q5NGQwNWFlODhiMTFiODllNjFjMGViYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCkBAIC03NSw3ICs3NSwxMCBA
QCBzdGF0aWMgYm9vbCBjYWxsZXJJc1N0cmljdChWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1l
KQogCiBuYW1lc3BhY2UgTnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWwgewogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZpbmVkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbFJldHVyblVuZGVmaW5lZCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjYWxsVGhyb3dFcnJvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsUmV0dXJuVW5kZWZpbmVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogI2lmICFBU1NFUlRfRU5BQkxFRAogICAgIFVOVVNF
RF9QQVJBTShnbG9iYWxPYmplY3QpOwpAQCAtODUsNyArODgsNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmV0dXJuVW5kZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUaHJvd0Vycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbFRocm93RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCmluZGV4IDQwNGU3OWIzZDVjM2Ix
MzE5YWE1ODI4NzBmNDZiMWU1YjkzNDEzMjIuLjhmZjQ1MzQ5NTVhMGE4MTc5ZGI1MmMwMjMwODQ0
Nzg4YmYzOGQ4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051
bWJlckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJDb25zdHJ1Y3Rvci5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlckNvbnN0cnVjdG9y
RnVuY0lzSW50ZWdlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNTYWZlSW50ZWdl
cihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIpOwog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApAQCAtNDksOCArNDksOCBAQCBjb25zdCBDbGFzc0luZm8g
TnVtYmVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rp
b246OnNfaQogQGVuZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY2FsbE51bWJlckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKTsKIAogTnVtYmVyQ29uc3RydWN0
b3I6Ok51bWJlckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxOdW1iZXJDb25zdHJ1Y3Rvciwg
Y29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IpCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgTnVtYmVy
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgTnVtYmVyUHJvdG90eXBlKiBudW1i
ZXJQcm90b3R5cGUpCiB9CiAKIC8vIEVDTUEgMTUuNy4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTEyLDcgKzExMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnCiB9CiAKIC8vIEVDTUEgMTUu
Ny4yCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbE51bWJlckNvbnN0cnVjdG9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMjcsMTMgKzEyNywxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogfQogCiAvLyBFQ01BLTI2MiAyMC4xLjIuMwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRlZ2VyKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyQ29u
c3RydWN0b3JGdW5jSXNJbnRlZ2VyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oTnVtYmVyQ29u
c3RydWN0b3I6OmlzSW50ZWdlckltcGwoY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAog
Ly8gRUNNQS0yNjIgMjAuMS4yLjUKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJDb25zdHJ1
Y3RvckZ1bmNJc1NhZmVJbnRlZ2VyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7
CiAgICAgaWYgKGFyZ3VtZW50LmlzSW50MzIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDU4YWMxOGNmMjBkNWY5ZjFmMWY0
NWRjZTJhNzk2Yjc3OWZlNjliMTAuLmVmYzY3NzM1MTkwOTJjYWI2Nzk3OWNjNGNkYmZmODlmNTU1
MzMzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmNwcApAQCAtNDAsMTAgKzQwLDEwIEBAIHR5cGVkZWYgV1RGOjpkb3VibGVfY29udmVy
c2lvbjo6U3RyaW5nQnVpbGRlciBEb3VibGVDb252ZXJzaW9uU3RyaW5nQnVpbGRlcjsKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJl
clByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVk
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50aWFsKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQ
cm90b0Z1bmNUb1ByZWNpc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9GaXhl
ZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb0V4
cG9uZW50aWFsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3Rv
RnVuY1RvUHJlY2lzaW9uKTsKIAogfQogCkBAIC0zODIsNyArMzgyLDcgQEAgU3RyaW5nIHRvU3Ry
aW5nV2l0aFJhZGl4KGRvdWJsZSBkb3VibGVWYWx1ZSwgaW50MzJfdCByYWRpeCkKIC8vIFRoaXMg
bWV0aG9kIHRha2VzIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHNwZWNpZnlpbmcgYSBudW1iZXIgb2Yg
KmRlY2ltYWwgcGxhY2VzKgogLy8gdG8gcm91bmQgdGhlIHNpZ25pZmljYW5kIHRvIChvciwgcHV0
IGFub3RoZXIgd2F5LCB0aGlzIG1ldGhvZCBvcHRpb25hbGx5IHJvdW5kcwogLy8gdG8gYXJndW1l
bnQtcGx1cy1vbmUgc2lnbmlmaWNhbnQgZmlndXJlcykuCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bnVtYmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDE5
LDcgKzQxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VG9FeHBvbmVudGlhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAvLyBUaGlzIG1ldGhvZCB0YWtl
cyBhbiBhcmd1bWVudCBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIHRvIHJv
dW5kIHRoZQogLy8gc2lnbmlmaWNhbmQgdG8uIEhvd2V2ZXIgd2hlbiBjb252ZXJ0aW5nIGxhcmdl
IHZhbHVlcyAoMWUrMjEgYW5kIGFib3ZlKSB0aGlzCiAvLyBtZXRob2Qgd2lsbCBpbnN0ZWFkIGZh
bGxiYWNrIHRvIGNhbGxpbmcgVG9TdHJpbmcuIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3Rv
RnVuY1RvRml4ZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ1Myw3ICs0NTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4ZWQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdAogLy8gZGVjaW1hbCwgd2hpbHN0IDEwMDAgaXMgY29udmVydGVk
IHRvIHRoZSBleHBvbmVudGlhbCByZXByZXNlbnRhdGlvbiAxLjAwZSszLgogLy8gRm9yIG5lZ2F0
aXZlIGV4cG9uZW50cyB2YWx1ZXMgPj0gMWUtNiBhcmUgZm9ybWF0ZWQgYXMgZGVjaW1hbCBmcmFj
dGlvbnMsCiAvLyB3aXRoIHNtYWxsZXIgdmFsdWVzIGNvbnZlcnRlZCB0byBleHBvbmVudGlhbCBy
ZXByZXNlbnRhdGlvbi4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9G
dW5jVG9QcmVjaXNpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9QcmVj
aXNpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU0OSw3ICs1NDksNyBAQCBKU1N0cmluZyog
bnVtYmVyVG9TdHJpbmcoVk0mIHZtLCBkb3VibGUgZG91YmxlVmFsdWUsIGludDMyX3QgcmFkaXgp
CiAgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nSW50ZXJuYWwodm0sIGRvdWJsZVZhbHVlLCByYWRp
eCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9T
dHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTU2NCw3ICs1NjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG51bWJlclByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUobnVtYmVyVG9TdHJpbmdJbnRlcm5hbCh2bSwg
ZG91YmxlVmFsdWUsIHJhZGl4KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVy
UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU3OSw3ICs1
NzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvTG9j
YWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG51bWJlckZvcm1hdC0+Zm9ybWF0KGdsb2JhbE9iamVjdCwg
eCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNW
YWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1ZhbHVlT2YsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKaW5kZXggM2UwODNlYTM4ZTRiNTJkM2U1M2ZiZDVjMGMxZjZhNzdiYjExZTFm
ZS4uNWMwZTRmZWQ0MjMyZDY4M2Q2ODUwNjE5NjNiYmRkMDYxZDkyZTMzMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKQEAgLTQ5LDggKzQ5
LDggQEAgY2xhc3MgTnVtYmVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIE51bWJlck9iamVjdCB7
CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoTnVtYmVyUHJvdG90eXBl
LCBOdW1iZXJPYmplY3QpOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclBy
b3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5j
VmFsdWVPZik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvU3Ry
aW5nKTsKIEpTU3RyaW5nKiBpbnQzMlRvU3RyaW5nKFZNJiwgaW50MzJfdCB2YWx1ZSwgaW50MzJf
dCByYWRpeCk7CiBKU1N0cmluZyogaW50NTJUb1N0cmluZyhWTSYsIGludDY0X3QgdmFsdWUsIGlu
dDMyX3QgcmFkaXgpOwogSlNTdHJpbmcqIG51bWJlclRvU3RyaW5nKFZNJiwgZG91YmxlIHZhbHVl
LCBpbnQzMl90IHJhZGl4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCBkNWYxYzI2Y2I5OGZlNGIwMWEzOTMwNWVmMGIw
ZDBjM2ZjMjMwYTFmLi5iMzFlOWJjZTgzYjRmYTEwNTg2NzlhYmY2NzVhYjMwNjBkMjdlYzYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCkBAIC0zMSwyMCArMzEsMjAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3NpZ24oSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29u
c3RydWN0b3JWYWx1ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdHJ1Y3RvclNldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yRGVmaW5lUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvclNlYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVk
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc0V4dGVu
c2libGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JBc3NpZ24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9i
amVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvclNldFByb3RvdHlwZU9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydGllcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JTZWFsKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JGcmVlemUpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclByZXZlbnRFeHRlbnNpb25zKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4pOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZSk7CiAKIH0KIApAQCAt
ODMsOCArODMsOCBAQCBjb25zdCBDbGFzc0luZm8gT2JqZWN0Q29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogKi8KIAogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnN0cnVjdFdpdGhPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE9iamVjdENvbnN0cnVj
dG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhPYmpl
Y3RDb25zdHJ1Y3Rvcik7CiAKIE9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwg
c3RydWN0dXJlLCBjYWxsT2JqZWN0Q29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhPYmplY3RDb25z
dHJ1Y3RvcikKQEAgLTEzMCwyMiArMTMwLDIyIEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTT2Jq
ZWN0KiBjb25zdHJ1Y3RPYmplY3RXaXRoTmV3VGFyZ2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBhcmd1bWVudC50b09iamVjdChnbG9iYWxPYmpl
Y3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhP
YmplY3RDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9i
amVjdFdpdGhOZXdUYXJnZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGNhbGxGcmFtZS0+bmV3
VGFyZ2V0KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxPYmplY3RDb25zdHJ1
Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdE9iamVjdFdpdGhOZXdU
YXJnZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEpTVmFsdWUoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2YoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuZ2V0UHJvdG90eXBl
KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9yU2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29u
c3RydWN0b3JTZXRQcm90b3R5cGVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEzLDcgKzIx
Myw3IEBAIEpTVmFsdWUgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIGRlc2NyaXB0b3JzOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9y
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjQsNyAr
MjI0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rvckdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEpTVmFsdWU6OmVuY29kZShvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihnbG9iYWxPYmplY3QsIG9iamVjdCwgcHJvcGVydHlOYW1lKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckdldE93blBy
b3BlcnR5RGVzY3JpcHRvcnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzMyw3ICsyMzMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
cyhnbG9iYWxPYmplY3QsIG9iamVjdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVzLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNDMsNyArMjQzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxPYmplY3QKIH0KIAog
Ly8gRklYTUU6IFVzZSB0aGUgZW51bWVyYXRpb24gY2FjaGUuCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5U3ltYm9scyhKU0dsb2JhbE9i
amUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9w
ZXJ0eUtleXMoZ2xvYmFsT2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN5bWJvbHMs
IERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUsIFdURjo6bnVsbG9wdCkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcktleXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JLZXlzLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yNjEsNyArMjYxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvcktleXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShvd25Qcm9wZXJ0eUtleXMoZ2xvYmFs
T2JqZWN0LCBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIERvbnRFbnVtUHJvcGVy
dGllc01vZGU6OkV4Y2x1ZGUsIENhY2hlZFByb3BlcnR5TmFtZXNLaW5kOjpLZXlzKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yQXNzaWduKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yQXNzaWduLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zODksNyArMzg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvckFzc2lnbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRhcmdldCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0Q29uc3RydWN0b3JWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUzMSw3ICs1MzEs
NyBAQCBib29sIHRvUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUgaW4sIFByb3BlcnR5RGVzYwogICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHko
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTk4LDcgKzU5OCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGRlZmlu
ZVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIG9iamVj
dCwKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTYxMyw3ICs2MTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yRGVmaW5lUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGRlZmluZVByb3BlcnRpZXMoZ2xvYmFsT2Jq
ZWN0LCB0YXJnZXRPYmosIHByb3BzKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENv
bnN0cnVjdG9yQ3JlYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NDcsNyArNzQ3LDcgQEAg
SlNPYmplY3QqIG9iamVjdENvbnN0cnVjdG9yU2VhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU09iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBvYmplY3Q7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JTZWFsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG9iamVjdENvbnN0cnVjdG9yU2VhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzc5
LDcgKzc3OSw3IEBAIEpTT2JqZWN0KiBvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0CiAgICAgcmV0dXJuIG9iamVjdDsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckZyZWV6
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNzkyLDcgKzc5Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0Q29uc3RydWN0b3JGcmVlemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtODA4LDcgKzgwOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCoKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKIApAQCAtODI2LDcgKzgyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JJc1NlYWxlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4odGVzdEludGVncml0eUxldmVsPEludGVn
cml0eUxldmVsOjpTZWFsZWQ+KGdsb2JhbE9iamVjdCwgdm0sIG9iamVjdCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRnJvemVuKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4sIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogCkBAIC04NDQsNyArODQ0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRnJvemVuKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0ZXN0SW50ZWdy
aXR5TGV2ZWw8SW50ZWdyaXR5TGV2ZWw6OkZyb3plbj4oZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
SXNFeHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXNFeHRl
bnNpYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NTcsNyArODU3LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihpc0V4
dGVuc2libGUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvcklzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc2FtZVZhbHVlKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSkpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmlu
ZGV4IGI4OGMzNTk5MWUwMzkyNTAwN2Q0NTc4NDczM2Y2YTE4MTc5YWUyOGYuLjVjMjhiNzlhYzE5
Mzg4Y2ZiZmRjMGJiNWFjNjJkMGNiMDkwZGQ5ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMjYsMTEgKzI2LDExIEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENv
bnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5
U3ltYm9scyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JLZXlzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3Ry
dWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihv
YmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcktleXMpOwogCiBjbGFzcyBPYmplY3RQcm90b3R5cGU7
CiAKQEAgLTE2Niw2ICsxNjYsNiBAQCBKU1ZhbHVlIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ycyhKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Kik7CiBKU0FycmF5KiBv
d25Qcm9wZXJ0eUtleXMoSlNHbG9iYWxPYmplY3QqLCBKU09iamVjdCosIFByb3BlcnR5TmFtZU1v
ZGUsIERvbnRFbnVtUHJvcGVydGllc01vZGUsIE9wdGlvbmFsPENhY2hlZFByb3BlcnR5TmFtZXNL
aW5kPik7CiBib29sIHRvUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1
ZSwgUHJvcGVydHlEZXNjcmlwdG9yJik7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JJcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmNwcAppbmRleCA1Nzc3YWZiYTI2Mjc5NjgwNmRhYWU0YzljZTcxZWFiNTNlMGRlMjkwLi5j
ODE1M2QwNTJjZjJlNzEzN2E1YmExNDYyZmI5ZjE3YmU3NmIyNzhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKQEAgLTI5LDE1ICsy
OSwxNSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5j
SGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9G
dW5jRGVmaW5lU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9G
dW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvTG9jYWxl
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNWYWx1ZU9mKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0hhc093blByb3BlcnR5KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jRGVmaW5lR2V0
dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0Rl
ZmluZVNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90
b0Z1bmNMb29rdXBHZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0UHJvdG9GdW5jTG9va3VwU2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTsKIAogU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE9iamVjdFByb3RvdHlwZSk7CiAK
QEAgLTc0LDcgKzc0LDcgQEAgT2JqZWN0UHJvdG90eXBlKiBPYmplY3RQcm90b3R5cGU6OmNyZWF0
ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFMKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1Zh
bHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkudG9UaGlzKGdsb2JhbE9i
amVjdCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKICAgICBKU09iamVjdCogdmFsdWVPYmogPSB0aGlz
VmFsdWUudG9PYmplY3QoZ2xvYmFsT2JqZWN0KTsKQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIG9i
amVjdFByb3RvdHlwZUhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgYmFzZSwgYwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHksIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEyMiw3ICsxMjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dFByb3RvRnVuY0hhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKG9iamVjdFByb3RvdHlwZUhhc093blByb3BlcnR5
KGdsb2JhbE9iamVjdCwgYmFzZSwgcHJvcGVydHlOYW1lKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0lzUHJvdG90eXBlT2YoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZiwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTQ5LDcgKzE0OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
UHJvdG9GdW5jSXNQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgfQogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE3Niw3ICsxNzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjAzLDcgKzIwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jTG9va3VwR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzMsNyArMjMzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQ
cm90b0Z1bmNMb29rdXBHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RQcm90b0Z1bmNMb29rdXBTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2
Myw3ICsyNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVu
Y0xvb2t1cFNldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0UHJvdG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04ob2JqZWN0UHJvdG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTI4MSw3ICsyODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyAx
NS4yLjQuMyBPYmplY3QucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nKCkKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMxMSw3ICszMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCB0
b1N0cmluZywgY2FsbERhdGEsIHRoaXNWYWx1ZSwgKnZtLmVtcHR5TGlzdCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90
eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApp
bmRleCBjMzc2ZTZjYjA3OTNiMDI5OTc1N2ZlMTg2NmI4MjE1YjY5NDExMzU0Li44NDdiOWFmMzgx
NjY3ZDkzMDExMTI3YzFlMzM3ODUzN2MyMmMzOTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaApAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBP
YmplY3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi1KU19FWFBPUlRf
UFJJVkFURSBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvU3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU19FWFBPUlRfUFJJVkFURSBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY1RvU3RyaW5nKTsKIGJvb2wgb2Jq
ZWN0UHJvdG90eXBlSGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eUNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCmlu
ZGV4IDMxNGEyNjNmMTEwZDQxNWUyYmVjYjhkM2ZkMDFiMTM3Mzc2MjZiNDguLmRjY2ZjZGM4YWZi
MzY4ZTMwMzU0YWE2ZWU2OTBlODA5MGEzNmQzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwCkBAIC00NCwxNSArNDQsMTYgQEAg
UHJveHlDb25zdHJ1Y3RvciogUHJveHlDb25zdHJ1Y3Rvcjo6Y3JlYXRlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUpCiAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJveHkoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFBy
b3h5T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjYWxsUHJveHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0UHJveHlPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04obWFrZVJldm9jYWJsZVByb3h5KTsKIAogUHJveHlDb25zdHJ1Y3Rvcjo6UHJveHlDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlLCBjYWxsUHJveHksIGNvbnN0cnVjdFByb3h5T2JqZWN0KQogewogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlUmV2b2NhYmxlUHJveHkoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04obWFrZVJldm9jYWJsZVByb3h5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03
OSwxNCArODAsMTQgQEAgdm9pZCBQcm94eUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIGNvbnN0IGNoYXIqIG5hbWUsIEpTR2xvYmFsT2JqZWN0KgogICAgIHB1dERpcmVjdCh2bSwg
bWFrZUlkZW50aWZpZXIodm0sICJyZXZvY2FibGUiKSwgSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QsIDIsICJyZXZvY2FibGUiX3MsIG1ha2VSZXZvY2FibGVQcm94eSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RQcm94eU9iamVj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RQcm94eU9iamVjdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVl
IHRhcmdldCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgSlNWYWx1ZSBoYW5kbGVyID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgxKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFByb3h5
T2JqZWN0OjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCB0YXJnZXQsIGhhbmRsZXIpKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFByb3h5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bFByb3h5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxl
ZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIlByb3h5IikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCmluZGV4IGU2MjY1
OGQxMDkwMzBmMjU2N2E0N2IyNThhMDQ4ZDJlYjU5NzFhMDguLjUxOTYyYWY4MGQ5YTkzNTQ4MDUz
YTEwNjQzYTUxYzZlZDlkMDY2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eU9iamVjdC5jcHAKQEAgLTQwLDYgKzQwLDkgQEAgU1RBVElDX0FTU0VSVF9JU19UUklW
SUFMTFlfREVTVFJVQ1RJQkxFKFByb3h5T2JqZWN0KTsKIAogY29uc3QgQ2xhc3NJbmZvIFByb3h5
T2JqZWN0OjpzX2luZm8gPSB7ICJQcm94eU9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUHJveHlPYmplY3QpIH07CiAKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94eUNhbGwpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocGVyZm9ybVByb3h5Q29uc3RydWN0KTsKKwogUHJveHlPYmpl
Y3Q6OlByb3h5T2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCiB7CkBAIC00NzAsNyArNDczLDcgQEAgYm9vbCBQcm94eU9iamVjdDo6
cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVu
c2lnbmUKICAgICByZXR1cm4gdGhpc09iamVjdC0+cHV0QnlJbmRleENvbW1vbihnbG9iYWxPYmpl
Y3QsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5Q2FsbChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJveHlDYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIE5PX1RBSUxfQ0FMTFMoKTsK
IApAQCAtNTE3LDcgKzUyMCw3IEBAIENhbGxEYXRhIFByb3h5T2JqZWN0OjpnZXRDYWxsRGF0YShK
U0NlbGwqIGNlbGwpCiAgICAgcmV0dXJuIGNhbGxEYXRhOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBwZXJmb3JtUHJveHlDb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ocGVyZm9ybVByb3h5Q29uc3RydWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIE5PX1RBSUxfQ0FMTFMoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlSZXZva2UuY3BwCmluZGV4IDA0YWE2
ZmRlMTliNjk0N2IwN2NhNDEyMWU1NjcyMmFlZGE5NDY5NTcuLjhmZTc0NjY4NTAxMmRkZDEwNzFm
NGNmNWM0NjIzMTIyZTQ2OTgwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3h5UmV2b2tlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Qcm94eVJldm9rZS5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgUHJveHlSZXZva2UqIFByb3h5UmV2
b2tlOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUHJveHlPYmplY3QqIHBy
b3gKICAgICByZXR1cm4gcmV2b2tlOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBwZXJmb3JtUHJveHlSZXZva2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94eVJldm9rZSk7CiAK
IFByb3h5UmV2b2tlOjpQcm94eVJldm9rZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBwZXJmb3JtUHJveHlSZXZva2UsIG51bGxwdHIpCkBA
IC01NSw3ICs1NSw3IEBAIHZvaWQgUHJveHlSZXZva2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
UHJveHlPYmplY3QqIHByb3h5KQogICAgIG1fcHJveHkuc2V0KHZtLCB0aGlzLCBwcm94eSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBlcmZvcm1Qcm94eVJldm9r
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihwZXJmb3JtUHJveHlSZXZva2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgUHJveHlSZXZv
a2UqIHByb3h5UmV2b2tlID0ganNDYXN0PFByb3h5UmV2b2tlKj4oY2FsbEZyYW1lLT5qc0NhbGxl
ZSgpKTsKICAgICBKU1ZhbHVlIHByb3h5VmFsdWUgPSBwcm94eVJldm9rZS0+cHJveHkoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKaW5kZXgg
MzIyNTVmOGU2YTA3NjhhZWVlYjZlODQ4Y2Y5OGRlM2E5NjZhOWM3Yy4uNDAxY2FmZTVhNDg0NGI4
MjcxYWEwZTRhYjVjNWY1YmRjN2U3NDMwMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKQEAgLTMxLDE2ICszMSwxNiBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9i
amVjdENvbnN0cnVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdERlZmluZVByb3BlcnR5KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWZsZWN0T2JqZWN0R2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0R2V0UHJvdG90eXBlT2YoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RPd25L
ZXlzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0UHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
ZmxlY3RPYmplY3RTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RTZXRQcm90b3R5cGVPZihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04ocmVmbGVjdE9iamVjdENvbnN0cnVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdEdldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWZsZWN0T2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RHZXRQcm90b3R5cGVPZik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0SXNFeHRlbnNpYmxl
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RPd25LZXlz
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RQcmV2ZW50
RXh0ZW5zaW9ucyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2Jq
ZWN0U2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RT
ZXRQcm90b3R5cGVPZik7CiAKIH0KIApAQCAtODUsNyArODUsNyBAQCB2b2lkIFJlZmxlY3RPYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqKQogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0
LmNvbnN0cnVjdAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0Q29u
c3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RDb25zdHJ1Y3QsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEyNCw3ICsxMjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZmxlY3RPYmplY3RDb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dAogfQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmRl
ZmluZXByb3BlcnR5Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RE
ZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWZsZWN0T2JqZWN0RGVmaW5lUHJv
cGVydHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3REZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsTwogfQogCiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3Nl
Yy1yZWZsZWN0LmdldAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0
R2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RHZXQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
ZmxlY3RPYmplY3RHZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogfQogCiAv
LyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmdldG93bnByb3Bl
cnR5ZGVzY3JpcHRvcgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0
R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmpl
Y3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4Nyw3
ICsxODcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplYwogfQogCiAvLyBodHRwczovL3RjMzku
Z2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmdldHByb3RvdHlwZW9mCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRQcm90b3R5cGVPZihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihyZWZsZWN0T2JqZWN0R2V0UHJvdG90eXBlT2YsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTE5OSw3ICsxOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxl
Y3RPYmplY3RHZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogfQogCiAvLyBo
dHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0LmlzZXh0ZW5zaWJsZQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0SXNFeHRlbnNpYmxlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogfQog
CiAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1yZWZsZWN0Lm93bmtleXMK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdE93bktleXMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdE93bktleXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIyNiw3ICsyMjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RP
YmplY3RPd25LZXlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QucHJldmVudGV4dGVuc2lvbnMK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFByZXZlbnRFeHRlbnNp
b25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5zaW9ucywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0
KiBnbG9iCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxl
Y3Quc2V0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RTZXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdFNldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjY1LDcgKzI2NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9i
amVjdFNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3Quc2V0cHJvdG90eXBlb2YKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFNldFByb3RvdHlwZU9mKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RTZXRQcm90b3R5cGVPZiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhw
Q29uc3RydWN0b3IuY3BwCmluZGV4IDIwMzE1M2QzODc0YjVlMDBhYTVkODVlNTQwZGEzM2M1MjA2
NGM3NGQuLjY0YjIxM2I3ZDkxMWM5NTFhOTEwNDAyNWRiNjkzZDNjYTI1MWU5MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAK
QEAgLTgyLDggKzgyLDggQEAgY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKICovCiAKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSZWdFeHBDb25z
dHJ1Y3Rvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRo
UmVnRXhwQ29uc3RydWN0b3IpOwogCiBSZWdFeHBDb25zdHJ1Y3Rvcjo6UmVnRXhwQ29uc3RydWN0
b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24o
dm0sIHN0cnVjdHVyZSwgY2FsbFJlZ0V4cENvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoUmVnRXhw
Q29uc3RydWN0b3IpCkBAIC0zMDksMjYgKzMwOSwyNiBAQCBKU09iamVjdCogY29uc3RydWN0UmVn
RXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MsICBK
UwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcmVnRXhwQ3JlYXRlKGdsb2JhbE9iamVj
dCwgbmV3VGFyZ2V0LCBwYXR0ZXJuQXJnLCBmbGFnc0FyZykpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGVzU3BlY1JlZ0V4cENyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihl
c1NwZWNSZWdFeHBDcmVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBwYXR0ZXJuQXJnID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIGZsYWdzQXJnID0gY2FsbEZyYW1lLT5hcmd1bWVudCgx
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlZ0V4cENyZWF0ZShnbG9iYWxPYmplY3Qs
IEpTVmFsdWUoKSwgcGF0dGVybkFyZywgZmxhZ3NBcmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBlc1NwZWNJc1JlZ0V4cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihlc1NwZWNJ
c1JlZ0V4cCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oaXNSZWdFeHAodm0sIGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0V2l0aFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZy
YW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdFJlZ0V4cChnbG9iYWxP
YmplY3QsIGFyZ3MsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSwgY2FsbEZyYW1lLT5uZXdUYXJnZXQo
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhw
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJlZ0V4cENvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0UmVnRXhwKGdsb2JhbE9iamVjdCwgYXJncywgY2FsbEZyYW1lLT5qc0NhbGxlZSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25z
dHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0
b3IuaAppbmRleCBiMmE2NDIxNDRkMDQ3ZjFiY2JjNjM0NDkxNDljYzJlMGQwNzdjNTE0Li5jYjU2
M2E0MmVmM2IwZmZmZDJlMWRiOWNkMTBjNzBiMjkwNjM2MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTcyLDcgKzcyLDcg
QEAgQUxXQVlTX0lOTElORSBib29sIGlzUmVnRXhwKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKICAgICByZXR1cm4gb2JqZWN0LT5pbmhlcml0czxS
ZWdFeHBPYmplY3Q+KHZtKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlc1Nw
ZWNSZWdFeHBDcmVhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZXNTcGVjSXNSZWdFeHAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZXNTcGVjUmVnRXhwQ3JlYXRlKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZXNTcGVjSXNSZWdFeHApOwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFBy
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5
cGUuY3BwCmluZGV4IDNlYTU1MDRkNjBkZmRhNDY0MzljZmNjMDk2YmZhOTIxY2M1YzE4YzkuLmMy
ZDY1NzIwYjhkMmU2ZjU4ZjYwMDgzZmEyMjE5YjYyYWM5NTk5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtMzYsMTcgKzM2
LDE3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21w
aWxlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJv
dG9HZXR0ZXJHbG9iYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0
dGVyRG90QWxsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclN0aWNreShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVn
RXhwUHJvdG9HZXR0ZXJVbmljb2RlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJGbGFncyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jRXhl
Yyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNDb21w
aWxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1Rv
U3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0
dGVyR2xvYmFsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3Rv
R2V0dGVySWdub3JlQ2FzZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdF
eHBQcm90b0dldHRlck11bHRpbGluZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihyZWdFeHBQcm90b0dldHRlckRvdEFsbCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWdFeHBQcm90b0dldHRlclN0aWNreSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJGbGFncyk7CiAKIGNvbnN0IENsYXNzSW5m
byBSZWdFeHBQcm90b3R5cGU6OnNfaW5mbyA9IHsgIk9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUmVnRXhwUHJvdG90eXBlKSB9Owog
CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgUmVnRXhwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTk2LDcgKzk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0Z1bmNUZXN0RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT50
ZXN0KGdsb2JhbE9iamVjdCwgc3RyaW5nKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNFeGVjKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFBy
b3RvRnVuY0V4ZWMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0V4ZWMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHJlZ2V4cC0+ZXhlYyhnbG9iYWxPYmplY3QsIHN0cmluZykpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFJlZ0V4cE9iamVj
dCogdGhpc09iamVjdCA9IGpzQ2FzdDxSZWdFeHBPYmplY3QqPihjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKICAgICBKU1N0cmluZyogc3RyaW5nID0ganNDYXN0PEpTU3RyaW5nKj4oY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QtPm1hdGNo
R2xvYmFsKGdsb2JhbE9iamVjdCwgc3RyaW5nKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jQ29tcGlsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdF
eHBQcm90b0Z1bmNDb21waWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDEsNyArMjAxLDcg
QEAgc3RhdGljIGlubGluZSBGbGFnc1N0cmluZyBmbGFnc1N0cmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU09iamVjdCogcmUKICAgICByZXR1cm4gc3RyaW5nOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMzEsNyArMjMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQ
cm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc01ha2VOb250cml2aWFsU3RyaW5n
KGdsb2JhbE9iamVjdCwgJy8nLCBzb3VyY2UsICcvJywgZmxhZ3MpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI0Nyw3ICsyNDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyR2xvYmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmdsb2JhbCgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVySWdub3JlQ2FzZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjYzLDcgKzI2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+
aWdub3JlQ2FzZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhw
UHJvdG9HZXR0ZXJNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0
ZXJNdWx0aWxpbmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3OSw3ICsyNzksNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyTXVsdGlsaW5lKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KHJlZ2V4cC0+cmVnRXhwKCktPm11bHRpbGluZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
cmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI5NSw3ICsy
OTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyRG90
QWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPmRvdEFsbCgpKSk7CiB9CiAgICAgCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0zMTEsNyArMzExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQ
cm90b0dldHRlclN0aWNreShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5zdGlja3koKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29k
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0dldHRlclVuaWNvZGUsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTMyNyw3ICszMjcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPnVu
aWNvZGUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3Rv
R2V0dGVyRmxhZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJGbGFncywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDQ5LDcgKzQ0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSByZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCByZXN1bHQudG9TdHJpbmcoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTQ2OCw3ICs0NjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvR2V0dGVyU291cmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwUHJvdG9HZXR0ZXJTb3VyY2VJbnRlcm5hbChnbG9i
YWxPYmplY3QsIHBhdHRlcm4sIHBhdHRlcm4uY2hhcmFjdGVyczE2KCksIHBhdHRlcm4ubGVuZ3Ro
KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNT
ZWFyY2hGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3Qs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIGdlbmVyaWNTcGxp
dCgKIH0KIAogLy8gRVMgMjEuMi41LjExIFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF0oc3RyaW5n
LCBsaW1pdCkKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU3Bs
aXRGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFzdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBQcm90b3R5cGUuaAppbmRleCBmZTEyYzljNGQyODY1MzUyYjg2NDlkZjc2MGZiNWViMDZiODJm
MTdmLi4xNWM3ODM5ODVmNzRiNmNlZjU2MGUwY2U5YmEyOWNmNzM4OWVlOWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAtNTYsOSAr
NTYsOSBAQCBjbGFzcyBSZWdFeHBQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9i
amVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9
OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFz
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NwbGl0RmFz
dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCByZWdFeHBQcm90b0Z1bmNUZXN0RmFzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNTZWFyY2hGYXN0KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0KTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QpOwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nl
dENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0
cnVjdG9yLmNwcAppbmRleCAwODZhNDY2NDdmOWJjNzZlYjEwNzdkYmVhNWZmZDlhM2I5ZTA2YWNi
Li45ZmRhODljNmQ3NmQ2ZGY2Y2VmMmVkZGIzMjkwZmNkODdiMWU5MmU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00MiwyMiAr
NDIsMjIgQEAgdm9pZCBTZXRDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBTZXRQ
cm90b3R5cGUqIHNldFByb3RvdHlwZSwgR2V0dGVyU2UKICAgICBwdXREaXJlY3ROb25JbmRleEFj
Y2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1i
b2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTZXQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdFNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbFNldCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RTZXQpOwogCiBTZXRDb25zdHJ1Y3Rvcjo6U2V0Q29uc3RydWN0b3IoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2Fs
bFNldCwgY29uc3RydWN0U2V0KQogewogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsU2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFNldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9u
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJTZXQiKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFNldChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RTZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk4LDcgKzk4LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRI
ZWFkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5jU2V0QnVja2V0SGVhZCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU1NldCo+KGdsb2Jh
bE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIEpTU2V0KiBzZXQg
PSBqc0Nhc3Q8SlNTZXQqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTEw
Nyw3ICsxMDcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVGdW5j
U2V0QnVja2V0SGVhZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoaGVhZCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJp
dmF0ZUZ1bmNTZXRCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5j
U2V0QnVja2V0TmV4dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoanNEeW5hbWljQ2FzdDxKU1NldDo6QnVja2V0VHlw
ZSo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIGF1
dG8qIGJ1Y2tldCA9IGpzQ2FzdDxKU1NldDo6QnVja2V0VHlwZSo+KGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoMCkpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXROZXh0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnbG9iYWxPYmplY3QtPnZtKCkuc2VudGlu
ZWxTZXRCdWNrZXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJp
dmF0ZUZ1bmNTZXRCdWNrZXRLZXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNT
ZXRCdWNrZXRLZXksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChnbG9iYWxPYmplY3QsIGpzRHluYW1pY0Nh
c3Q8SlNTZXQ6OkJ1Y2tldFR5cGUqPihnbG9iYWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCkpKTsKICAgICBhdXRvKiBidWNrZXQgPSBqc0Nhc3Q8SlNTZXQ6OkJ1Y2tldFR5cGUq
PihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCmluZGV4IGViMWM2MWIyMDIyNTBhZWJkZmY3
NTRiNWM0NzAzYjgzNGIzNjJjMjcuLjE3NmExY2RlN2Q5YTY2YWJkNWEwOTZmODhkZjY5YTliMDAz
OTc2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0
cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0
b3IuaApAQCAtNTYsOCArNTYsOCBAQCBjbGFzcyBTZXRDb25zdHJ1Y3RvciBmaW5hbCA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFS
QUJMRShTZXRDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRIZWFkKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByaXZhdGVG
dW5jU2V0QnVja2V0TmV4dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEtleShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRl
RnVuY1NldEJ1Y2tldEhlYWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRl
RnVuY1NldEJ1Y2tldE5leHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRl
RnVuY1NldEJ1Y2tldEtleSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAKaW5kZXggNGM0N2ZhYzA5N2Y1ZDgy
OTYxYTNiNGExNGI0ODM1ODZiNDJlYTUxNC4uMzNhMDQ5MWM2NTQ1NzZiNTMxNTM3NGY2YzRlMGRi
Zjc4Yjc3ZDA3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0
UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90
b3R5cGUuY3BwCkBAIC00MywxNCArNDMsMTQgQEAgY29uc3QgQ2xhc3NJbmZvIFNldFByb3RvdHlw
ZTo6c19pbmZvID0geyAiU2V0IiwgJkJhc2U6OnNfaW5mbywgJnNldFByb3RvdHlwZVRhYmwKIEBl
bmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVu
Y0FkZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0Rl
bGV0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jSGFzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNWYWx1
ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0FkZCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNDbGVhcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNEZWxldGUpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jSGFzKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY1ZhbHVlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNFbnRyaWVzKTsKIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jU2l6ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJv
dG9GdW5jU2l6ZSk7CiAKIHZvaWQgU2V0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC05Miw3ICs5Miw3IEBAIEFMV0FZ
U19JTkxJTkUgc3RhdGljIEpTU2V0KiBnZXRTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSB0aGlzVmFsCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQWRkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHNl
dFByb3RvRnVuY0FkZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1Zh
bHVlKCk7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSk7
CkBAIC0xMDIsNyArMTAyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90
b0Z1bmNBZGQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc2V0UHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5j
Q2xlYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+
dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAtMTExLDcgKzExMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNEZWxldGUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jRGVsZXRlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTU2V0KiBzZXQg
PSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAo
IXNldCkKQEAgLTExOSw3ICsxMTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNl
dFByb3RvRnVuY0RlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHNldC0+cmVtb3ZlKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzZXRQcm90b0Z1bmNIYXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jSGFz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIEpTU2V0KiBzZXQgPSBnZXRTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKICAgICBpZiAoIXNldCkKQEAgLTEyNyw3ICsxMjcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0hhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHNldC0+aGFz
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNTaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHNldFByb3RvRnVuY1NpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAtMTQ1LDEyICsxNDUs
MTIgQEAgaW5saW5lIEpTVmFsdWUgY3JlYXRlU2V0SXRlcmF0b3JPYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKgogICAgIHJldHVybiBKU1NldEl0ZXJhdG9yOjpj
cmVhdGUodm0sIGdsb2JhbE9iamVjdC0+c2V0SXRlcmF0b3JTdHJ1Y3R1cmUoKSwgc2V0LCBraW5k
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNWYWx1ZXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jVmFsdWVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY3JlYXRlU2V0SXRlcmF0b3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHNldFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9G
dW5jRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNyZWF0ZVNldEl0ZXJhdG9y
T2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggYWU2NzUyZDNhNjcyZDAyNGJmZWMwNzczYzNiNDJmMWZmYTA3MzllMC4u
ZjJiYTVjNDExYmE2MmUwNjBiZWE1ZGVjYzVlOGQ1NTkxZjVhMmNmMyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApAQCAtMjcs
OCArMjcsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nRnJvbUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBv
aW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihzdHJpbmdGcm9tQ2hhckNvZGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nRnJvbUNvZGVQb2ludCk7CiAKIH0KIApAQCAtNDksOCArNDksOCBAQCBj
b25zdCBDbGFzc0luZm8gU3RyaW5nQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwg
JkludGVybmFsRnVuY3Rpb246OnNfaQogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKFN0cmluZ0NvbnN0cnVjdG9yKTsKIAogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjYWxsU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhT
dHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFN0cmluZ0NvbnN0cnVjdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3Rvcik7
CiAKIFN0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxs
U3RyaW5nQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvcikKQEAgLTY1
LDcgKzY1LDcgQEAgdm9pZCBTdHJpbmdDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBTdHJpbmdQcm90b3R5cGUqIHN0cmluZ1Byb3RvdHlwZSkKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNv
ZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nRnJvbUNoYXJDb2RlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMDAsMTIgKzEwMCwxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBX
VEZNb3ZlKGltcGw4Qml0KSkpKTsKIH0KIAotSlNTdHJpbmcqIEpTQ19IT1NUX0NBTEwgc3RyaW5n
RnJvbUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3QgYXJnKQor
SlNTdHJpbmcqIHN0cmluZ0Zyb21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBpbnQzMl90IGFyZykKIHsKICAgICByZXR1cm4ganNTaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZ2xv
YmFsT2JqZWN0LT52bSgpLCBhcmcpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ0Zy
b21Db2RlUG9pbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNCw3ICsxMzQsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ29kZVBvaW50KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBidWlsZGVyLnRvU3RyaW5nKCkpKSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoU3RyaW5nQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2MCw3ICsxNjAsNyBAQCBKU1N0cmluZyogc3RyaW5n
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1bWVu
dCkKICAgICByZXR1cm4gYXJndW1lbnQudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN0cmluZ0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxTdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVj
dG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5o
CmluZGV4IDVmOTQ3MWVhNGMwYmVmOTE1MzBjMTcyZTRjNDM4YmU5OTA5OGVjMzEuLmJiOTQzMTA4
YjY3ODhkOGMxNzlmZTBkZmUwNmFjODgzNmVkMDU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaApAQCAtNTIsNyArNTIsNyBAQCBj
bGFzcyBTdHJpbmdDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsK
IH07CiBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShTdHJpbmdDb25zdHJ1Y3Rv
ciwgSW50ZXJuYWxGdW5jdGlvbik7CiAKLUpTU3RyaW5nKiBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zy
b21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QpOworSlNTdHJpbmcqIHN0cmluZ0Zy
b21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCosIGludDMyX3QpOwogSlNTdHJpbmcqIHN0cmluZ0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKaW5kZXggMWEyZGM1ZjU4YTI5MjI0MjYwMmFmMDMzMWM0ZGIxNDNhMzg2M2I3OS4uZTllYzY1
MTU5NGM2OGM4Nzc1NzQyYzI1NjRkODUwNDcyMzQ5MTI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC01MywzMSArNTMsMzEg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNU
SUJMRShTdHJpbmdQcm90b3R5cGUpOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJBdChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQ
cm90b0Z1bmNDaGFyQ29kZUF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY0luZGV4T2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2lu
Z1N0cmluZ1NlYXJjaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFy
Y2goSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RyaW5nUHJvdG9GdW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY1N1YnN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Rv
TG9jYWxlVXBwZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW0oSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
VHJpbVN0YXJ0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW1FbmQoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Rh
cnRzV2l0aChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmNs
dWRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSXRlcmF0
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oc3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNDaGFyQXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQ
cm90b0Z1bmNDaGFyQ29kZUF0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jQ29kZVBvaW50QXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNJbmRleE9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
TGFzdEluZGV4T2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNS
ZXBsYWNlVXNpbmdSZWdFeHApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFyY2gpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTbGljZSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1N1YnN0cik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RyaW0pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihzdHJpbmdQcm90b0Z1bmNUcmltU3RhcnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNUcmltRW5kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5n
UHJvdG9GdW5jU3RhcnRzV2l0aCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1By
b3RvRnVuY0VuZHNXaXRoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9G
dW5jSW5jbHVkZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNO
b3JtYWxpemUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNJdGVy
YXRvcik7CiAKIH0KIApAQCAtODQ0LDcgKzg0NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjaGVj
a09iamVjdENvZXJjaWJsZShKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFy
YWN0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MDAsNyArOTAwLDcgQEAgQUxXQVlTX0lOTElORSBK
U1N0cmluZyogcmVwbGFjZSgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIHJlcGxhY2Uo
dm0sIGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCByZXBsYWNl
VmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNSZXBsYWNlVXNpbmdSZWdFeHAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
UmVwbGFjZVVzaW5nUmVnRXhwLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05MTUsNyArOTE1LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNp
bmdSZWdFeHAoSlNHbG9iYWxPYmplY3QqIGcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShyZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2godm0sIGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBzdHJpbmcsIHNlYXJjaFZhbHVlLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Jl
cGxhY2VVc2luZ1N0cmluZ1NlYXJjaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1
bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyNiw3
ICs5MjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Jl
cGxhY2VVc2luZ1N0cmluZ1NlYXJjaChKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaCh2bSwgZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0cmluZywgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgY2Fs
bEZyYW1lLT5hcmd1bWVudCgxKSwgUmVwbGFjZU1vZGU6OlNpbmdsZSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJp
bmdTZWFyY2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwbGFjZUFsbFVz
aW5nU3RyaW5nU2VhcmNoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05NTAsNyArOTUwLDcgQEAg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ1Byb3RvRnVuY1JlcGxhY2VHZW5l
cmljKEpTR2xvYmFsT2JqZWN0KiBnbG8KIAogSUdOT1JFX1dBUk5JTkdTX0VORAogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC05NzEsNyArOTcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHN0cmluZ09iamVjdC0+aW50ZXJuYWxWYWx1ZSgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDaGFyQXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jQ2hhckF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05
OTgsNyArOTk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNDaGFyQXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzRW1wdHlTdHJpbmcodm0pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0
cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMzUsNyAr
MTAzNSw3IEBAIHN0YXRpYyBpbmxpbmUgVUNoYXIzMiBjb2RlUG9pbnRBdChjb25zdCBTdHJpbmcm
IHN0cmluZywgdW5zaWduZWQgcG9zaXRpb24sIHVuc2lnCiAgICAgcmV0dXJuIGNoYXJhY3RlcjsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNDb2RlUG9p
bnRBdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTExMiwxMiArMTExMiwxMiBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgc3RyaW5nSW5kZXhPZkltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0KSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSW5kZXhPZihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNJbmRleE9mLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBz
dHJpbmdJbmRleE9mSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpLmlzU3RyaW5nKCkpOwogICAgIEFTU0VSVChjYWxsRnJhbWUt
PmFyZ3VtZW50KDApLmlzU3RyaW5nKCkpOwpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gc3RyaW5nSW5kZXhPZkltcGwoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY0xhc3RJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0xh
c3RJbmRleE9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTcwLDcgKzExNzAsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
cmVzdWx0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jU2xpY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU2xpY2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTEyMzEsNyArMTIzMSw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IGJvb2wgc3BsaXRTdHJpbmdCeU9uZUNoYXJhY3RlckltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iCiB9CiAKIC8vIEVTIDIxLjEuMy4xNyBTdHJpbmcucHJvdG90eXBlLnNwbGl0KHNlcGFyYXRv
ciwgbGltaXQpCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1Nw
bGl0RmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihzdHJpbmdQcm90b0Z1bmNTdWJzdHIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0
NTUsMTIgKzE0NTUsMTIgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0cmluZ1N1YnN0cmluZ0lt
cGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N1YnN0cmluZyhnbG9iYWxPYmplY3Qs
IGpzU3RyaW5nLCBzdWJzdHJpbmdTdGFydCwgc3Vic3RyaW5nTGVuZ3RoKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTdWJzdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHN0cmlu
Z1N1YnN0cmluZ0ltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJU
KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkuaXNTdHJpbmcoKSk7CiAgICAgQVNTRVJUKGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCkuaXNOdW1iZXIoKSk7CkBAIC0xNDY4LDcgKzE0NjgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbChKU0ds
b2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBzdHJpbmdTdWJzdHJpbmdJbXBsKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lKTsgICAKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNUb0xvd2VyQ2FzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ4Niw3ICsxNDg2LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb0xvd2VyQ2Fz
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgbG93ZXJjYXNlZFN0cmluZykpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTUwNCw3ICsxNTA0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzdHJpbmdQcm90b0Z1bmNUb1VwcGVyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2
bSwgdXBwZXJjYXNlZFN0cmluZykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmlu
Z1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMTMuMS4xIFN0cmluZy5wcm90b3R5cGUu
bG9jYWxlQ29tcGFyZSAodGhhdCBbLCBsb2NhbGVzIFssIG9wdGlvbnMgXV0pIChFQ01BLTQwMiAy
LjApCiAgICAgLy8gaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvcHVibGljYXRpb25zL3N0
YW5kYXJkcy9FY21hLTQwMi5odG0KQEAgLTE2MjYsMTQgKzE2MjYsMTQgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHRvTG9jYWxlQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShqc1N0cmluZyh2bSwgU3RyaW5nKGJ1ZmZlcikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMTMuMS4y
IFN0cmluZy5wcm90b3R5cGUudG9Mb2NhbGVMb3dlckNhc2UgKFtsb2NhbGVzXSkKICAgICAvLyBo
dHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9wdWJsaWNhdGlvbnMvc3RhbmRhcmRzL0VjbWEt
NDAyLmh0bQogICAgIHJldHVybiB0b0xvY2FsZUNhc2U8Q2FzZUNvbnZlcnNpb25Nb2RlOjpMb3dl
cj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlVXBwZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1RvTG9jYWxlVXBwZXJDYXNlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIDEzLjEuMyBTdHJp
bmcucHJvdG90eXBlLnRvTG9jYWxlVXBwZXJDYXNlIChbbG9jYWxlc10pCiAgICAgLy8gaHR0cDov
L2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvcHVibGljYXRpb25zL3N0YW5kYXJkcy9FY21hLTQwMi5o
dG0KQEAgLTE2NzQsMTkgKzE2NzQsMTkgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHRyaW1TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0aGlzVmFsdWUKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGpzU3RyaW5nKHZtLCBzdHIuc3Vic3RyaW5nU2hhcmlu
Z0ltcGwobGVmdCwgcmlnaHQgLSBsZWZ0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW0oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jVHJpbSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVl
KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5nKGdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBUcmltU3RhcnQgfCBUcmltRW5kKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVHJpbVN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHN0cmluZ1Byb3RvRnVuY1RyaW1TdGFydCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5n
KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBUcmltU3RhcnQpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUcmltRW5kKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1RyaW1FbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBjYWxs
RnJhbWUtPnRoaXNWYWx1ZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodHJpbVN0cmlu
ZyhnbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgVHJpbUVuZCkpOwpAQCAtMTcwMSw3ICsxNzAxLDcg
QEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBjbGFtcEFuZFRydW5jYXRlVG9VbnNpZ25lZChkb3Vi
bGUgdmFsdWUsIHVuc2lnbmVkIG1pbiwgdW4KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNTdGFydHNXaXRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1N0YXJ0
c1dpdGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MzUsNyArMTczNSw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc3Ry
aW5nVG9TZWFyY2hJbi5oYXNJbmZpeFN0YXJ0aW5nQXQoc2VhcmNoU3RyaW5nLCBzdGFydCkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNFbmRzV2l0
aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNFbmRzV2l0aCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTc4NSw3ICsxNzg1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHN0
cmluZ0luY2x1ZGVzSW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIFMK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzdHJpbmdUb1NlYXJjaEluLmZp
bmQoc2VhcmNoU3RyaW5nLCBzdGFydCkgIT0gbm90Rm91bmQpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmNsdWRlcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihzdHJpbmdQcm90b0Z1bmNJbmNsdWRlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTgx
MSw3ICsxODExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1
bmNJbmNsdWRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4oc2NvcGUsIHN0cmluZ0luY2x1ZGVzSW1wbChnbG9iYWxPYmplY3QsIHZtLCBzdHJpbmdU
b1NlYXJjaEluLCBzZWFyY2hTdHJpbmcsIHBvc2l0aW9uQXJnKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE4MzEsNyArMTgzMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBzdHJpbmdJbmNsdWRlc0ltcGwoZ2xvYmFsT2JqZWN0
LCB2bSwgc3RyaW5nVG9TZWFyY2hJbiwgc2VhcmNoU3RyaW5nLCBwb3NpdGlvbkFyZykpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xOTI1LDcgKzE5MjUsNyBAQCBzdGF0aWMgSlNWYWx1ZSBub3JtYWxpemUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHN0cmluZywgTm9ybWFsaQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcodm0sIFdURk1vdmUocmVzdWx0KSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY05vcm1h
bGl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNOb3JtYWxpemUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmgKaW5kZXggZDEzMjFiNTQzMDkwYzFmZTFmZGM1NDEyMGVkZWU2ZmRiNzE1ODRh
MS4uNzg3MTM3MDA2YWEzMzIxZTYyZGQyNWJkNGI3M2IwOTgyMjEwNzNkNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmgKQEAgLTU1LDExICs1
NSwxMSBAQCBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVw
bGFjZVJlZ0V4cFN0cmluZyhKU0dsb2JhbE9iamVjdAogCiB2b2lkIHN1YnN0aXR1dGVCYWNrcmVm
ZXJlbmNlcyhTdHJpbmdCdWlsZGVyJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQs
IFN0cmluZ1ZpZXcgc291cmNlLCBjb25zdCBpbnQqIG92ZWN0b3IsIFJlZ0V4cCopOwogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlcihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVy
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KTsK
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYnVpbHRpblN0cmluZ0luY2x1ZGVzSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ0lu
ZGV4T2ZJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nU3Vic3RyaW5nSW50ZXJuYWwpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwpOwogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgK
aW5kZXggNzg5MGY2YWFlNmZjYTA2NjNhMWU1NzQ5MmQzNGI3Zjg1NWMwMDdmNS4uMDAwYmI5ODBk
N2NhNjliMWM4NmM2YmU2YmE4MjEwNzM2YmJmZTI4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTY2OSw2ICs2NjksOCBAQCBjbGFzcyBTdHJ1Y3R1cmUg
ZmluYWwgOiBwdWJsaWMgSlNDZWxsIHsKIAogICAgIHN0YXRpYyBib29sIHNob3VsZENvbnZlcnRU
b1BvbHlQcm90byhjb25zdCBTdHJ1Y3R1cmUqIGEsIGNvbnN0IFN0cnVjdHVyZSogYik7CiAKKyAg
ICBVbmlxdWVkU3RyaW5nSW1wbCogdHJhbnNpdGlvblByb3BlcnR5TmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhbnNpdGlvblByb3BlcnR5TmFtZS5nZXQoKTsgfQorCiAgICAgc3RydWN0IFByb3Bl
cnR5SGFzaEVudHJ5IHsKICAgICAgICAgY29uc3QgSGFzaFRhYmxlKiB0YWJsZTsKICAgICAgICAg
Y29uc3QgSGFzaFRhYmxlVmFsdWUqIHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ4YTU3NGE4NWZmMWJlZmU4
ZDUwNmVhNmM0NGVkNTMyZDkxODUwOWIuLmM1ZDAxYjQ0MzViYTdlMWIxOTU0NzAyOTA5OTRiZjM4
NjM5NGI5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJv
bENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1i
b2xDb25zdHJ1Y3Rvci5jcHAKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0cnVjdG9yRm9y
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzeW1ib2xDb25zdHJ1Y3RvcktleUZvcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sQ29uc3RydWN0
b3JGb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sQ29uc3RydWN0
b3JLZXlGb3IpOwogCiB9CiAKQEAgLTUzLDggKzUzLDggQEAgY29uc3QgQ2xhc3NJbmZvIFN5bWJv
bENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZzeW1i
b2wKIEBlbmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxT
eW1ib2woSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFN5bWJvbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFN5bWJvbCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTeW1ib2wpOwogCiBTeW1ib2xD
b25zdHJ1Y3Rvcjo6U3ltYm9sQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbFN5bWJvbCwgY29u
c3RydWN0U3ltYm9sKQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFN5bWJvbENvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihWTSYgdm0sIFN5bWJvbFByb3RvdHlwZSogcHJvdG90eXBlKQogCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3lt
Ym9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxTeW1ib2wsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTg4LDE0ICs4OCwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsU3ltYm9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoU3ltYm9sOjpjcmVhdGVXaXRoRGVzY3JpcHRpb24odm0sIHN0cmluZykp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTeW1i
b2woSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0U3ltYm9sLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVO
b3RBQ29uc3RydWN0b3JFcnJvcihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+anNDYWxsZWUoKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0cnVjdG9yRm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHN5bWJvbENvbnN0cnVjdG9yRm9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMTAsNyArMTEwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
eW1ib2xDb25zdHJ1Y3RvckZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogCiBjb25z
dCBBU0NJSUxpdGVyYWwgU3ltYm9sS2V5Rm9yVHlwZUVycm9yIHsgIlN5bWJvbC5rZXlGb3IgcmVx
dWlyZXMgdGhhdCB0aGUgZmlyc3QgYXJndW1lbnQgYmUgYSBzeW1ib2wiX3MgfTsKIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xDb25zdHJ1Y3RvcktleUZvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihzeW1ib2xDb25zdHJ1Y3RvcktleUZvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAK
aW5kZXggNmM1ZWVmOTc0ZWFkNGZjMjU3MmZiMzc2YmQ0MzQzOWMzODkzMjgwNi4uOWU4NWE5NmM3
YWU4YmE2MWUzOGQ2OTE2MTg2OGVjNDYwMDg2ZDQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCkBAIC0zMyw5ICszMyw5IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
eW1ib2xQcm90b0dldHRlckRlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNUb1N0
cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJvdG9H
ZXR0ZXJEZXNjcmlwdGlvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzeW1i
b2xQcm90b0Z1bmNUb1N0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
eW1ib2xQcm90b0Z1bmNWYWx1ZU9mKTsKIAogfQogCkBAIC04Nyw3ICs4Nyw3IEBAIGlubGluZSBT
eW1ib2wqIHRyeUV4dHJhY3RTeW1ib2woVk0mIHZtLCBKU1ZhbHVlIHRoaXNWYWx1ZSkKICAgICBy
ZXR1cm4gYXNTeW1ib2woanNDYXN0PFN5bWJvbE9iamVjdCo+KHRoaXNPYmplY3QpLT5pbnRlcm5h
bFZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3Rv
R2V0dGVyRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3ltYm9sUHJvdG9HZXR0ZXJE
ZXNjcmlwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAxLDcgKzEwMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9HZXR0ZXJEZXNjcmlwdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShkZXNjcmlwdGlv
bi5pc051bGwoKSA/IGpzVW5kZWZpbmVkKCkgOiBqc1N0cmluZyh2bSwgZGVzY3JpcHRpb24pKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNUb1N0cmlu
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihzeW1ib2xQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTEzLDcgKzExMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3ltYm9sUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOb250cml2aWFs
U3RyaW5nKHZtLCBzeW1ib2wtPmRlc2NyaXB0aXZlU3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9GdW5jVmFsdWVPZihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihzeW1ib2xQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNw
cAppbmRleCA5MjljNzViNDQ2YmIwMDc0YWFiMjU2OWNhNzg4NjkyYTI3YjVkYmVlLi45YThjNmZl
M2VkYzRiNmE1MTdjNjA4ZTg3ZDY4NWI3NTA4YzhlNDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKQEAgLTQxLDIyICs0
MSwyMiBAQCB2b2lkIFdlYWtNYXBDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBX
ZWFrTWFwUHJvdG90eXBlKiBwcm90b3R5cGUpCiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRp
b24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxXZWFrTWFwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrTWFwKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsV2Vha01hcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RX
ZWFrTWFwKTsKIAogV2Vha01hcENvbnN0cnVjdG9yOjpXZWFrTWFwQ29uc3RydWN0b3IoVk0mIHZt
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbFdl
YWtNYXAsIGNvbnN0cnVjdFdlYWtNYXApCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxXZWFrTWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYWtNYXAsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2Fs
bGVkQXNGdW5jdGlvblR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiV2Vha01hcCIpKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha01h
cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXZWFrTWFwLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwUHJv
dG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5
cGUuY3BwCmluZGV4IDU2ODg3M2ZhOTBhZmZiMjY4MjA3MDRkMzQyNjdlYWYwYjI4ODE2MDUuLmZi
N2I4Yzg2NmZjMTAxNmZiYjhmMjkxZWZiZjNkMTU2MGUyNmNkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3BwCkBAIC0zMywxMCAr
MzMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWFrTWFwUHJvdG90
eXBlOjpzX2luZm8gPSB7ICJXZWFrTWFwIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrTWFwUHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBwcm90b0Z1bmNXZWFrTWFwR2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwSGFzKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBwcm90b0Z1bmNXZWFrTWFwU2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBHZXQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcEhhcyk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwU2V0KTsKIAog
dm9pZCBXZWFrTWFwUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC02OSw3ICs2OSw3IEBAIEFMV0FZU19JTkxJTkUgc3Rh
dGljIEpTV2Vha01hcCogZ2V0V2Vha01hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBK
U1ZhbHVlCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcHJvdG9GdW5jV2Vha01hcERlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihwcm90b0Z1
bmNXZWFrTWFwRGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8qIG1hcCA9IGdldFdlYWtNYXAoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTc4LDcgKzc4LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
Qm9vbGVhbihrZXkuaXNPYmplY3QoKSAmJiBtYXAtPnJlbW92ZShhc09iamVjdChrZXkpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBHZXQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcEdldCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvKiBtYXAgPSBn
ZXRXZWFrTWFwKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYg
KCFtYXApCkBAIC04OSw3ICs4OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJv
dG9GdW5jV2Vha01hcEdldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmdldChhc09iamVjdChrZXkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcEhhcyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihwcm90b0Z1bmNXZWFrTWFwSGFzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8qIG1hcCA9IGdldFdlYWtNYXAo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAg
LTk4LDcgKzk4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFr
TWFwSGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihrZXkuaXNPYmplY3QoKSAmJiBtYXAtPmhhcyhhc09iamVjdChr
ZXkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtN
YXBTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcFNldCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a09iamVjdFJlZkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1dlYWtPYmplY3RSZWZDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjY5NTg0OTFiMDQ4Yjg2NTU5ZDRm
NGU3MDk3MmZiMTg4ZGEzNWFhNy4uNTY0ZDA5MzQyMDYwODg4YmQxZGQxN2VhMDYwNTA5NzA1NzRj
NTFlNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVj
dFJlZkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
ZWFrT2JqZWN0UmVmQ29uc3RydWN0b3IuY3BwCkBAIC00MCwyMiArNDAsMjIgQEAgdm9pZCBXZWFr
T2JqZWN0UmVmQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgV2Vha09iamVjdFJl
ZlByb3RvdHlwZSogcHIKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJv
cGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWFrUmVmKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtSZWYpOwogCiBX
ZWFrT2JqZWN0UmVmQ29uc3RydWN0b3I6OldlYWtPYmplY3RSZWZDb25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsV2Vh
a1JlZiwgY29uc3RydWN0V2Vha1JlZikKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2Vha1JlZiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxs
ZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJXZWFrUmVmIikpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrUmVm
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtSZWYsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RS
ZWZQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVj
dFJlZlByb3RvdHlwZS5jcHAKaW5kZXggNWEyZTM4Mjc4YTk3ZTA2MDE4NGNlMWVhODY2MGM3ZmVl
MDZjM2Q3Zi4uZmQwYTNlODYzZjA5M2M4ZTY1NTliMGMyZDVjYTMyY2NkNTEyODFkNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZlByb3RvdHlw
ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZlBy
b3RvdHlwZS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENs
YXNzSW5mbyBXZWFrT2JqZWN0UmVmUHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWFrUmVmIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrT2Jq
ZWN0UmVmUHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBwcm90b0Z1bmNXZWFrUmVmRGVyZWYoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtSZWZEZXJlZik7CiAK
IHZvaWQgV2Vha09iamVjdFJlZlByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewpAQCAtNjQsNyArNjQsNyBAQCBBTFdBWVNfSU5M
SU5FIHN0YXRpYyBKU1dlYWtPYmplY3RSZWYqIGdldFdlYWtSZWYoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtSZWZEZXJlZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihw
cm90b0Z1bmNXZWFrUmVmRGVyZWYsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8qIHJlZiA9IGdldFdlYWtSZWYoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtT
ZXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0
Q29uc3RydWN0b3IuY3BwCmluZGV4IDM5Zjg2N2QyMGFhZTA3MDU5MzdmOTBkY2Y2YTk2ZDllNjRh
NDRlZDIuLjM5MjljYzkyYTIwMjg4MTRiY2YwOWI0YTlkMTRlMjJhMmZkMDczZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNw
cApAQCAtNDEsMjIgKzQxLDIyIEBAIHZvaWQgV2Vha1NldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0sIFdlYWtTZXRQcm90b3R5cGUqIHByb3RvdHlwZSkKICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5
cGUsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdl
YWtTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxXZWFrU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGNvbnN0cnVjdFdlYWtTZXQpOwogCiBXZWFrU2V0Q29uc3RydWN0b3I6OldlYWtTZXRDb25z
dHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlLCBjYWxsV2Vha1NldCwgY29uc3RydWN0V2Vha1NldCkKIHsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFdlYWtTZXQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2Vh
a1NldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVj
dG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJXZWFrU2V0IikpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3RXZWFrU2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtTZXQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1dlYWtTZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2Vha1NldFByb3RvdHlwZS5jcHAKaW5kZXggYTNkMjQ2MGYxYjcwNDZiZDU0NDg4MTgwZmM1ZmYz
M2FhMWUwMjJjZC4uNjczY2FjMGE0M2MzYmEwZmI3ZTg5NGZmYTY1MWUwY2MwMDM0ZDhhNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldFByb3RvdHlwZS5j
cHAKQEAgLTMzLDkgKzMzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBX
ZWFrU2V0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJXZWFrU2V0IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWFrU2V0UHJvdG90eXBlKSB9Owog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0RGVs
ZXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0SGFzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFr
U2V0QWRkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrU2V0RGVsZXRlKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtTZXRIYXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha1NldEFkZCk7CiAKIHZvaWQgV2Vha1NldFByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogewpAQCAtNjcsNyArNjcsNyBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyBKU1dlYWtTZXQqIGdl
dFdlYWtTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZQogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dl
YWtTZXREZWxldGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha1NldERlbGV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBhdXRvKiBzZXQgPSBnZXRXZWFrU2V0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlz
VmFsdWUoKSk7CiAgICAgaWYgKCFzZXQpCkBAIC03Niw3ICs3Niw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldERlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oa2V5LmlzT2Jq
ZWN0KCkgJiYgc2V0LT5yZW1vdmUoYXNPYmplY3Qoa2V5KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0SGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHByb3RvRnVuY1dlYWtTZXRIYXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byogc2V0ID0gZ2V0V2Vha1NldChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAtODUsNyAr
ODUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtTZXRIYXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNCb29sZWFuKGtleS5pc09iamVjdCgpICYmIHNldC0+aGFzKGFzT2JqZWN0KGtleSkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldEFkZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrU2V0QWRkLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTS5jcHAKaW5kZXggNjEw
ZDI1NjAwNjM2YzJlNzNhMTUyMTJkOWM5M2NhNDRlZDdhZjM5OC4uZmI0YjIwZjUxMTA5OTFhNjY5
NTU3ZGUwYTE5YTBjNTJiZWJmNGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rvb2xzL0pTRG9sbGFyVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNLmNwcApAQCAtODIsOSArODIsNiBAQCBjbGFzcyBKU0RvbGxhclZNSGVscGVyIHsK
IAogICAgIHZvaWQgdXBkYXRlVk1TdGFja0xpbWl0cygpIHsgcmV0dXJuIG1fdm0udXBkYXRlU3Rh
Y2tMaW1pdHMoKTsgfTsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLQotcHJpdmF0ZToKICAgICBWTSYgbV92bTsKIH07CiAKQEAgLTkyLDYgKzg5LDEw
IEBAIGNsYXNzIEpTRG9sbGFyVk1IZWxwZXIgewogCiBuYW1lc3BhY2UgewogCitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBsZXhFbmFibGVF
eGNlcHRpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25ET01K
SVRGdW5jdGlvbk9iamVjdFdpdGhUeXBlQ2hlY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhUeXBlQ2hlY2spOwor
CiAvLyBXZSBtdXN0IFJFTEVBU0VfQVNTRVJUKE9wdGlvbnM6OnVzZURvbGxhclZNKCkpIGluIGFs
bCBKU0RvbGxhclZNIGZ1bmN0aW9ucwogLy8gdGhhdCBhcmUgbm9uLXRyaXZpYWwgYXQgYW4gZXll
J3MgZ2xhbmNlLiBUaGlzIGluY2x1ZGVzIChidXQgaXMgbm90IGxpbWl0ZWQgdG8pOgogLy8gICAg
ICBjb25zdHJ1Y3RvcnMKQEAgLTQ4OSwxMiArNDkwLDEyIEBAIGNsYXNzIEN1c3RvbUdldHRlciA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgICAgICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Q3VzdG9t
R2V0dGVyKj4ob2JqZWN0KTsKICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBQcm9wZXJ0eU5h
bWUoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlciIpKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0sIHRoaXNPYmplY3QtPmN1c3RvbUdldHRlcik7CisgICAgICAgICAg
ICBzbG90LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSwgY3VzdG9tR2V0dGVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IFByb3BlcnR5
TmFtZShJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyQWNjZXNzb3IiKSkp
IHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFj
Y2Vzc29yLCB0aGlzT2JqZWN0LT5jdXN0b21HZXR0ZXJBY2Vzc29yKTsKKyAgICAgICAgICAgIHNs
b3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yLCBjdXN0b21HZXR0
ZXJBY2Vzc29yKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtNTAyLDcgKzUwMyw3IEBAIGNsYXNzIEN1c3RvbUdldHRlciA6IHB1YmxpYyBKU05vbkZp
bmFsT2JqZWN0IHsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC01MTgsNyArNTE5LDcgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgewogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVt
YmVyKDEwMCkpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9t
R2V0dGVyQWNlc3NvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBjdXN0b21HZXR0ZXJBY2Vzc29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsKICAgICAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwpAQCAtNTc1LDcgKzU3Niw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQK
ICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBSdW50aW1lQXJy
YXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4ob2JqZWN0KTsKICAgICAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAg
ICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtLCB0aGlzT2JqZWN0LT5sZW5ndGhHZXR0ZXIpOworICAgICAgICAgICAg
c2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0sIGxlbmd0aEdldHRlcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogCkBAIC02NDUsNyArNjQ2LDcgQEAgSUdOT1JFX1dBUk5JTkdTX0VORAogICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIH0KIAotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gbGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsK
ICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNjY1LDcgKzY2Niw3IEBAIHN0YXRpYyBjb25zdCBz
dHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBzdGF0aWNDdXN0b21BY2Nlc3NvclRhYmxlSW5kZXhbMl0g
PSB7CiAgICAgeyAtMSwgLTEgfSwKIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSB0ZXN0U3Rh
dGljQWNjZXNzb3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiB0ZXN0U3RhdGljQWNjZXNzb3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC05NzQsNyArOTc1LDcgQEAgY2xhc3MgRE9NSklUR2V0dGVyIDogcHVibGlj
IERPTUpJVE5vZGUgewogcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAK
LSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAg
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldHRlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTEwNjgsNyArMTA2OSw3IEBA
IGNsYXNzIERPTUpJVEdldHRlck5vRWZmZWN0cyA6IHB1YmxpYyBET01KSVROb2RlIHsKIHByaXZh
dGU6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCi0gICAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0xMTcxLDIwICsxMTcyLDkgQEAgY2xhc3MgRE9NSklUR2V0dGVy
Q29tcGxleCA6IHB1YmxpYyBET01KSVROb2RlIHsKICNlbmRpZgogICAgIH07CiAKLXByaXZhdGU6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiAKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVuYWJsZUV4Y2VwdGlv
bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLSAg
ICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAgYXV0byogb2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxET01KSVRHZXR0ZXJDb21wbGV4Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkp
OwotICAgICAgICBpZiAob2JqZWN0KQotICAgICAgICAgICAgb2JqZWN0LT5tX2VuYWJsZUV4Y2Vw
dGlvbiA9IHRydWU7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci0gICAgfQotCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGN1c3RvbUdldHRlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBjdXN0b21H
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xMjAw
LDYgKzExOTAsMTYgQEAgY2xhc3MgRE9NSklUR2V0dGVyQ29tcGxleCA6IHB1YmxpYyBET01KSVRO
b2RlIHsKICAgICBib29sIG1fZW5hYmxlRXhjZXB0aW9uIHsgZmFsc2UgfTsKIH07CiAKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBsZXhFbmFibGVFeGNl
cHRpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byogb2JqZWN0ID0ganNEeW5hbWljQ2FzdDxE
T01KSVRHZXR0ZXJDb21wbGV4Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOworICAgIGlm
IChvYmplY3QpCisgICAgICAgIG9iamVjdC0+bV9lbmFibGVFeGNlcHRpb24gPSB0cnVlOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cit9CisKIHN0YXRpYyBjb25z
dCBET01KSVRHZXR0ZXJDb21wbGV4OjpET01KSVRBdHRyaWJ1dGUgRE9NSklUR2V0dGVyQ29tcGxl
eERPTUpJVDsKIAogdm9pZCBET01KSVRHZXR0ZXJDb21wbGV4OjpmaW5pc2hDcmVhdGlvbihWTSYg
dm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCkBAIC0xMjA5LDcgKzEyMDksNyBAQCB2
b2lkIERPTUpJVEdldHRlckNvbXBsZXg6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKICAgICBjb25zdCBET01KSVQ6OkdldHRlclNldHRlciogZG9t
SklUID0gJkRPTUpJVEdldHRlckNvbXBsZXhET01KSVQ7CiAgICAgYXV0byogY3VzdG9tR2V0dGVy
U2V0dGVyID0gRE9NQXR0cmlidXRlR2V0dGVyU2V0dGVyOjpjcmVhdGUodm0sIGRvbUpJVC0+Z2V0
dGVyKCksIG51bGxwdHIsIERPTUF0dHJpYnV0ZUFubm90YXRpb24geyBET01KSVRHZXR0ZXJDb21w
bGV4OjppbmZvKCksIGRvbUpJVCB9KTsKICAgICBwdXREaXJlY3RDdXN0b21BY2Nlc3Nvcih2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImN1c3RvbUdldHRlciIpLCBjdXN0b21HZXR0ZXJT
ZXR0ZXIsIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpD
dXN0b21BY2Nlc3Nvcik7Ci0gICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImVuYWJsZUV4Y2VwdGlvbiIpLCAwLCBm
dW5jdGlvbkVuYWJsZUV4Y2VwdGlvbiwgTm9JbnRyaW5zaWMsIDApOworICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJlbmFibGVFeGNlcHRpb24iKSwgMCwgZnVuY3Rpb25ET01KSVRHZXR0ZXJDb21wbGV4RW5hYmxl
RXhjZXB0aW9uLCBOb0ludHJpbnNpYywgMCk7CiB9CiAKIGNsYXNzIERPTUpJVEZ1bmN0aW9uT2Jq
ZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAtMTIzOCwxOCArMTIzOCw2IEBAIGNsYXNzIERP
TUpJVEZ1bmN0aW9uT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogICAgICAgICByZXR1cm4g
b2JqZWN0OwogICAgIH0KIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uV2l0aFR5cGVDaGVjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKLSAgICB7Ci0gICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7Ci0gICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgICAgIERPTUpJVE5v
ZGUqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSk7Ci0gICAgICAgIGlmICghdGhpc09iamVjdCkKLSAgICAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwotICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZhbHVlKCkpKTsKLSAgICB9
Ci0KICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBmdW5jdGlvbldpdGhv
dXRUeXBlQ2hlY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NSklUTm9kZSogbm9k
ZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CkBAIC0x
MjgyLDEzICsxMjcwLDI1IEBAIGNsYXNzIERPTUpJVEZ1bmN0aW9uT2JqZWN0IDogcHVibGljIERP
TUpJVE5vZGUgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2JhbE9iamVjdCop
OwogfTsKIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRE9NSklURnVuY3Rpb25P
YmplY3RXaXRoVHlwZUNoZWNrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQoreworICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgIERPTUpJVE5vZGUqIHRoaXNPYmplY3QgPSBqc0R5
bmFtaWNDYXN0PERPTUpJVE5vZGUqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAg
aWYgKCF0aGlzT2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNP
YmplY3QtPnZhbHVlKCkpKTsKK30KKwogc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERP
TUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlKERPTUpJVEZ1bmN0aW9uT2JqZWN0OjpmdW5jdGlv
bldpdGhvdXRUeXBlQ2hlY2ssIERPTUpJVEZ1bmN0aW9uT2JqZWN0OjppbmZvKCksIERPTUpJVDo6
RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlKERPTUpJVDo6SGVhcFJhbmdlOjpDb25z
dEV4cHIsIDAsIDEpKSwgU3BlY0ludDMyT25seSk7CiAKIHZvaWQgRE9NSklURnVuY3Rpb25PYmpl
Y3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2Jq
ZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbldpdGhU
eXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklURnVuY3Rpb25PYmplY3RTaWduYXR1cmUsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBw
dXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbkRPTUpJVEZ1bmN0aW9uT2JqZWN0V2l0aFR5
cGVDaGVjaywgTm9JbnRyaW5zaWMsICZET01KSVRGdW5jdGlvbk9iamVjdFNpZ25hdHVyZSwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOwogfQogCiBj
bGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKQEAgLTEz
MTcsMTggKzEzMTcsNiBAQCBjbGFzcyBET01KSVRDaGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBE
T01KSVROb2RlIHsKICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKLSAgICBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldpdGhUeXBlQ2hlY2soSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi0gICAgewotICAg
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwotICAgICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLQotICAgICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01K
SVRDaGVja0pTQ2FzdE9iamVjdCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKLSAgICAg
ICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOwotICAgIH0KLQogICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBET01KSVROb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgRG9s
bGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKQEAgLTEzNDIsMTMgKzEzMzAsMjUgQEAgY2xh
c3MgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhUeXBlQ2hl
Y2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
Cit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOworCisgICAgYXV0byogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgaWYgKCF0aGlz
T2JqZWN0KQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPnZh
bHVlKCkpKTsKK30KKwogc3RhdGljIGNvbnN0IERPTUpJVDo6U2lnbmF0dXJlIERPTUpJVENoZWNr
SlNDYXN0T2JqZWN0U2lnbmF0dXJlKERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmdW5jdGlvbldp
dGhvdXRUeXBlQ2hlY2ssIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjppbmZvKCksIERPTUpJVDo6
RWZmZWN0Ojpmb3JSZWFkKERPTUpJVDo6SGVhcFJhbmdlOjp0b3AoKSksIFNwZWNJbnQzMk9ubHkp
OwogCiB2b2lkIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcHV0RGly
ZWN0TmF0aXZlRnVuY3Rpb24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgImZ1bmMiKSwgMCwgZnVuY3Rpb25XaXRoVHlwZUNoZWNrLCBOb0ludHJpbnNpYywgJkRP
TUpJVENoZWNrSlNDYXN0T2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rpb24o
dm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImZ1bmMiKSwgMCwg
ZnVuY3Rpb25ET01KSVRDaGVja0pTQ2FzdE9iamVjdFdpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2lj
LCAmRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpKTsKIH0KIAogY2xhc3MgRE9NSklUR2V0dGVy
QmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAtMTQyNCw3ICsxNDI0LDcgQEAg
Y2xhc3MgRE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewogcHJp
dmF0ZToKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAg
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKQEAgLTE2MzAsOCArMTYzMCw4IEBAIHZvaWQgRWxlbWVudDo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBSb290KiByb290KQogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZ
KQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhc21TdHJl
YW1pbmdQYXJzZXJBZGRCeXRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2Vy
RmluYWxpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNlckFkZEJ5dGVzKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNl
ckZpbmFsaXplKTsKIAogY2xhc3MgV2FzbVN0cmVhbWluZ1BhcnNlciA6IHB1YmxpYyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzAxLDcgKzE3MDEsNyBAQCBjbGFzcyBXYXNt
U3RyZWFtaW5nUGFyc2VyIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogY29uc3Qg
Q2xhc3NJbmZvIFdhc21TdHJlYW1pbmdQYXJzZXI6OnNfaW5mbyA9IHsgIldhc21TdHJlYW1pbmdQ
YXJzZXIiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKFdhc21TdHJlYW1pbmdQYXJzZXIpIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyQWRkQnl0ZXMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyQWRkQnl0ZXMsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3Nl
cnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBA
IC0xNzE2LDcgKzE3MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
V2FzbVN0cmVhbWluZ1BhcnNlckFkZEJ5dGVzKEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KHRoaXNPYmplY3QtPnN0cmVhbWluZ1BhcnNlcigpLmFkZEJ5dGVzKGJpdHdpc2VfY2Fz
dDxjb25zdCB1aW50OF90Kj4oZGF0YS5maXJzdCksIGRhdGEuc2Vjb25kKSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmlu
YWxpemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmlu
YWxpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xNzMyLDYgKzE3MzIsMTA0IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmluYWxpemUoSlNH
bG9iYWxPYmplY3QqCiAKIG5hbWVzcGFjZSBKU0MgewogCitzdGF0aWMgTk9fUkVUVVJOX0RVRV9U
T19DUkFTSCBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jhc2gpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25CcmVha3BvaW50KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uREZHVHJ1ZSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZUTFRydWUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcHVNZmVuY2UpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DcHVSZHRzYyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkNwdUNwdWlkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQ3B1UGF1c2UpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DcHVDbGZsdXNoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uTExpbnRUcnVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQmFzZWxpbmVKSVRUcnVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uTm9JbmxpbmUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25HQyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVkZW5HQyk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdDU3dlZXBBc3luY2hy
b25vdXNseSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBT
dWJzcGFjZUhhc2hlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkNhbGxGcmFtZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNv
ZGVCbG9ja0ZvckZyYW1lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQ29kZUJsb2NrRm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRHVtcFNvdXJjZUZvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkR1bXBCeXRlY29kZUZvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkRhdGFMb2cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25QcmludCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBD
YWxsRnJhbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1w
U3RhY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wUmVn
aXN0ZXJzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcENl
bGwpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JbmRleGluZ01v
ZGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JbmxpbmVDYXBh
Y2l0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblZhbHVlKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UElEKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGF2ZUFCYWRUaW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNIYXZpbmdBQmFkVGltZSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXpl
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFs
T2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
UHJveHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVS
dW50aW1lQXJyYXkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25D
cmVhdGVOdWxsUm9wZVN0cmluZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkNyZWF0ZUltcHVyZUdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVE5vZGVPYmplY3QpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01K
SVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3Qp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRD
aGVja0pTQ2FzdE9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCk7CisjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVXYXNt
U3RyZWFtaW5nUGFyc2VyKTsKKyNlbmRpZgorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3Nvcik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlT2JqZWN0RG9pbmdTaWRl
RWZmZWN0UHV0V2l0aG91dENvcnJlY3RTbG90U3RhdHVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdh
dGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVCdWls
dGluKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UHJpdmF0
ZVByb3BlcnR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlUm9vdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZUVsZW1lbnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRF
bGVtZW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
U2ltcGxlT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
R2V0SGlkZGVuVmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25TZXRIaWRkZW5WYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90
VGhyb3cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5kVHlw
ZUZvckV4cHJlc3Npb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25SZXR1cm5UeXBlRm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRmxhdHRlbkRpY3Rpb25hcnlPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EdW1wQmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkJhc2ljQmxvY2tFeGVjdXRp
b25Db3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkVuYWJs
ZURlYnVnZ2VyTW9kZVdoZW5JZGxlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVsZXRlQWxsQ29kZVdoZW5JZGxlKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2xvYmFsT2JqZWN0Q291bnQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRHZXR0ZXJT
ZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Mb2FkR2V0
dGVyRnJvbUdldHRlclNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGllcyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkN1cnJlbnRDUFVUaW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVG90YWxHQ1RpbWUpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QYXJzZUNvdW50KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3Nz
aWJsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFN0cnVj
dHVyZVRyYW5zaXRpb25MaXN0KTs7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkdldENvbmN1cnJlbnRseSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uUmVqZWN0UHJvbWlzZUFzSGFuZGxlZCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JQ1VWZXJzaW9uKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVSGVhZGVyVmVyc2lvbik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkFzc2VydEVuYWJsZWQp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc01lbW9yeUxpbWl0
ZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VKSVQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxl
ZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblRvVW5jYWNoZWFi
bGVEaWN0aW9uYXJ5KTsKKwogY29uc3QgQ2xhc3NJbmZvIEpTRG9sbGFyVk06OnNfaW5mbyA9IHsg
IkRvbGxhclZNIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU0RvbGxhclZNKSB9OwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZG9QcmludChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgYm9vbCBh
ZGRMaW5lRmVlZCkKQEAgLTE3NTgsNyArMTg1Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBk
b1ByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
CiAKIC8vIFRyaWdnZXJzIGEgY3Jhc2ggYWZ0ZXIgZHVtcGluZyBhbnkgcGFyYW1hdGVyIHBhc3Nl
ZCB0byBpdC4KIC8vIFVzYWdlOiAkdm0uY3Jhc2goLi4uKQotc3RhdGljIE5PX1JFVFVSTl9EVUVf
VE9fQ1JBU0ggRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyYXNoKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorTk9fUkVUVVJO
X0RVRV9UT19DUkFTSCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmFzaCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogCkBAIC0xNzgwLDcgKzE4NzgsNyBA
QCBzdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3Jhc2goSlNHbG9iYQogCiAvLyBFeGVjdXRlcyBhIGJyZWFrcG9pbnQgaW5z
dHJ1Y3Rpb24gaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRydXRoeSBvciBpcyB1bnNldC4KIC8v
IFVzYWdlOiAkdm0uYnJlYWtwb2ludCg8Y29uZGl0aW9uPikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQnJlYWtwb2ludChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkJyZWFrcG9pbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICAvLyBOb3RoaW5nIHNob3VsZCB0aHJvdyBoZXJlIGJ1dCB3ZSBtaWdodCBhcyB3ZWxsIGRv
dWJsZSBjaGVjay4uLgpAQCAtMTc5NSw3ICsxODkzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25CcmVha3BvaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmoKIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgREZHIGZyYW1l
LgogLy8gVXNhZ2U6IGlzREZHID0gJHZtLmRmZ1RydWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25ERkdUcnVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRGR1RydWUsIChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKQEAgLTE4
MDMsMTMgKzE5MDEsMTMgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25ERkdUcnVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKIAogLy8gUmV0dXJucyB0
cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgRlRMIGZyYW1lLgogLy8gVXNhZ2U6IGlzRlRM
ID0gJHZtLmZ0bFRydWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25GVExUcnVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkZUTFRydWUsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZmFsc2UpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVNZmVuY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1TWZlbmNlLCAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTgxOCw3ICsx
OTE2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVN
ZmVuY2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNwdVJkdHNjKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdVJkdHNjLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lm
IENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTgzMSw3ICsxOTI5LDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVSZHRzYyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSoKICNlbmRpZgogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNwdUNwdWlkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNwdUNwdWlkLCAoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogI2lmIENQVShYODZfNjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTg0MCw3ICsxOTM4LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVDcHVpZChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNwdVBhdXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNwdVBhdXNlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lmIENQVShYODZf
NjQpICYmICFPUyhXSU5ET1dTKQpAQCAtMTg1OCw3ICsxOTU2LDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcHVQYXVzZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSoKIC8vCiAvLyBJZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgbm90IGEgSlNBcnJheUJ1
ZmZlciwgd2UgbG9hZCB0aGUgYnV0dGVyZmx5CiAvLyBhbmQgY2xmbHVzaCBhdCB0aGUgYWRkcmVz
cyBvZiB0aGUgYnV0dGVyZmx5Lgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcHVDbGZsdXNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1Q2xmbHVz
aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lmIENQVShYODZfNjQp
ICYmICFPUyhXSU5ET1dTKQpAQCAtMTk0Nyw3ICsyMDQ1LDcgQEAgc3RhdGljIEZ1bmN0aW9uRXhl
Y3V0YWJsZSogZ2V0RXhlY3V0YWJsZUZvckZ1bmN0aW9uKEpTVmFsdWUgdGhlRnVuY3Rpb25WYWx1
ZSkKIAogLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGZyYW1lIGlzIGEgTExJbnQgZnJh
bWUuCiAvLyBVc2FnZTogaXNMTEludCA9ICR2bS5sbGludFRydWUoKQotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25MTGludFRydWUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25MTGludFRydWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xOTYwLDcgKzIwNTgsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxMaW50VHJ1ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogCiAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJl
bnQgZnJhbWUgaXMgYSBiYXNlbGluZSBKSVQgZnJhbWUuCiAvLyBVc2FnZTogaXNCYXNlbGluZUpJ
VCA9ICR2bS5iYXNlbGluZUpJVFRydWUoKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25CYXNlbGluZUpJVFRydWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25CYXNlbGluZUpJVFRydWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0xOTc1LDcgKzIwNzMsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkJhc2VsaW5lSklUVHJ1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYgogLy8gVXNhZ2U6CiAvLyBmdW5jdGlvbiBmKCkgeyB9Owog
Ly8gJHZtLm5vSW5saW5lKGYpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Ob0lubGluZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9JbmxpbmUsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIGlmIChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpCkBAIC0x
OTkxLDcgKzIwODksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbk5vSW5saW5lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogCiAvLyBSdW5zIGEgZnVs
bCBHQyBzeW5jaHJvbm91c2x5LgogLy8gVXNhZ2U6ICR2bS5nYygpCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HQywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk1JbnNwZWN0b3I6OmdjKCZnbG9iYWxPYmpl
Y3QtPnZtKCkpOwpAQCAtMjAwMCw3ICsyMDk4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25HQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwK
IAogLy8gUnVucyB0aGUgZWRlbkdDIHN5bmNocm9ub3VzbHkuCiAvLyBVc2FnZTogJHZtLmVkZW5H
QygpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRWRlbkdDLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAg
ICBWTUluc3BlY3Rvcjo6ZWRlbkdDKCZnbG9iYWxPYmplY3QtPnZtKCkpOwpAQCAtMjAwOSw3ICsy
MTA3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVu
R0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIAogLy8gUnVucyBhIGZ1bGwgR0MsIGJ1
dCBzd2VlcCBhc3luY2hyb25vdXNseS4KIC8vIFVzYWdlOiAkdm0uZ2NTd2VlcEFzeW5jaHJvbm91
c2x5KCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NTd2Vl
cEFzeW5jaHJvbm91c2x5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9ub3VzbHks
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIGdsb2JhbE9iamVjdC0+dm0oKS5oZWFw
LmNvbGxlY3ROb3coQXN5bmMsIENvbGxlY3Rpb25TY29wZTo6RnVsbCk7CkBAIC0yMDE4LDcgKzIx
MTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDU3dl
ZXBBc3luY2hyb25vdXNseShKU0dsb2JhbE9iamVjdAogCiAvLyBEdW1wcyB0aGUgaGFzaGVzIG9m
IGFsbCBzdWJzcGFjZXMgY3VycmVudGx5IHJlZ2lzdGVyZWQgd2l0aCB0aGUgVk0uCiAvLyBVc2Fn
ZTogJHZtLmR1bXBTdWJzcGFjZUhhc2hlcygpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVt
cFN1YnNwYWNlSGFzaGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yMDQwLDcgKzIxMzgsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBTdWJzcGFjZUhhc2hlcyhKU0dsb2Jh
bE9iamVjdCogZwogLy8gTm90ZTogeW91IGNhbm5vdCB0b1N0cmluZygpIGEgY29kZUJsb2NrLCB1
bmxpbmtlZENvZGVCbG9jaywgb3IgZXhlY3V0YWJsZSBiZWNhdXNlCiAvLyB0aGVyZSBhcmUgaW50
ZXJuYWwgb2JqZWN0cyBhbmQgbm90IGEgSlMgb2JqZWN0LiBIZW5jZSwgeW91IGNhbm5vdCBkbyBz
dHJpbmcKIC8vIGNvbmNhdGVuYXRpb24gd2l0aCB0aGVtLgotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DYWxsRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25DYWxsRnJhbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAg
ICB1bnNpZ25lZCBmcmFtZU51bWJlciA9IDE7CkBAIC0yMDYxLDcgKzIxNTksNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxGcmFtZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZQogLy8gR2V0cyBhIHRva2VuIGZvciB0aGUgQ29kZUJsb2NrIGZvciBh
IHNwZWNpZmllZCBmcmFtZSBpbmRleC4KIC8vIFVzYWdlOiBjb2RlQmxvY2tUb2tlbiA9ICR2bS5j
b2RlQmxvY2tGb3JGcmFtZSgwKSAvLyBmcmFtZSAwIGlzIHRoZSB0b3AgZnJhbWUuCiAvLyBVc2Fn
ZTogY29kZUJsb2NrVG9rZW4gPSAkdm0uY29kZUJsb2NrRm9yRnJhbWUoKSAvLyBpbXBsaWVzIGZy
YW1lIDAgaS5lLiBjdXJyZW50IGZyYW1lLgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Db2RlQmxvY2tGb3JGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNvZGVCbG9ja0ZvckZyYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgdW5zaWduZWQgZnJhbWVOdW1iZXIgPSAxOwpAQCAtMjExNiw3ICsyMjE0LDcgQEAg
c3RhdGljIENvZGVCbG9jayogY29kZUJsb2NrRnJvbUFyZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGwKIC8vIFVzYWdlOiAkdm0ucHJpbnQoImNvZGVibG9jayA9
ICIsICR2bS5jb2RlQmxvY2tGb3IoY29kZUJsb2NrVG9rZW4pKQogLy8gTm90ZTogeW91IGNhbm5v
dCB0b1N0cmluZygpIGEgY29kZUJsb2NrIGJlY2F1c2UgaXQncyBhbiBpbnRlcm5hbCBvYmplY3Qg
YW5kIG5vdAogLy8gYSBKUyBvYmplY3QuIEhlbmNlLCB5b3UgY2Fubm90IGRvIHN0cmluZyBjb25j
YXRlbmF0aW9uIHdpdGggaXQuCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNvZGVCbG9ja0ZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNvZGVCbG9j
a0ZvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIENvZGVCbG9j
ayogY29kZUJsb2NrID0gY29kZUJsb2NrRnJvbUFyZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
CkBAIC0yMTMwLDcgKzIyMjgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNvZGVCbG9ja0ZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogCiAvLyBVc2Fn
ZTogJHZtLmR1bXBTb3VyY2VGb3IoZnVuY3Rpb25PYmopCiAvLyBVc2FnZTogJHZtLmR1bXBTb3Vy
Y2VGb3IoY29kZUJsb2NrVG9rZW4pCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkR1bXBTb3VyY2VGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1w
U291cmNlRm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSBjb2RlQmxvY2tGcm9tQXJnKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsKQEAgLTIxNDEsNyArMjIzOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRHVtcFNvdXJjZUZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAKIC8v
IFVzYWdlOiAkdm0uZHVtcEJ5dGVjb2RlRm9yKGZ1bmN0aW9uT2JqKQogLy8gVXNhZ2U6ICR2bS5k
dW1wQnl0ZWNvZGVGb3IoY29kZUJsb2NrKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25EdW1wQnl0ZWNvZGVGb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNvZGVCbG9ja0Zyb21BcmcoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOwpAQCAtMjE1Miw3ICsyMjUwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQnl0ZWNvZGVGb3IoSlNHbG9iYWxPYmplY3QqIGds
b2IKIAogLy8gUHJpbnRzIGEgc2VyaWVzIG9mIGNvbW1hIHNlcGFyYXRlIHN0cmluZ3Mgd2l0aG91
dCBhcHBlbmRpbmcgYSBuZXdsaW5lLgogLy8gVXNhZ2U6ICR2bS5kYXRhTG9nKHN0cjEsIHN0cjIs
IHN0cjMpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRhdGFM
b2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EYXRhTG9nLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgY29uc3QgYm9vbCBhZGRMaW5lRmVlZCA9IGZhbHNl
OwpAQCAtMjE2MSw3ICsyMjU5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25EYXRhTG9nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKIAogLy8gUHJp
bnRzIGEgc2VyaWVzIG9mIGNvbW1hIHNlcGFyYXRlIHN0cmluZ3MgYW5kIGFwcGVuZHMgYSBuZXds
aW5lLgogLy8gVXNhZ2U6ICR2bS5wcmludChzdHIxLCBzdHIyLCBzdHIzKQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvblByaW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgY29uc3QgYm9vbCBhZGRMaW5lRmVlZCA9IHRydWU7CkBAIC0yMTcwLDcgKzIyNjgsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKIC8vIER1bXBzIHRoZSBjdXJyZW50IENhbGxGcmFtZS4K
IC8vIFVzYWdlOiAkdm0uZHVtcENhbGxGcmFtZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25EdW1wQ2FsbEZyYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgLy8gV2hlbiB0aGUgY2FsbGVycyBjYWxsIHRoaXMgZnVuY3Rpb24sIHRoZXkgYXJlIGV4
cGVjdGluZyB0byBkdW1wIHRoZWlyCkBAIC0yMTgxLDcgKzIyNzksNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDYWxsRnJhbWUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogCiAvLyBEdW1wcyB0aGUgSlMgc3RhY2suCiAvLyBVc2FnZTogJHZtLnByaW50
U3RhY2soKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1w
U3RhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wU3RhY2ssIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAvLyBXaGVuIHRoZSBjYWxsZXJzIGNhbGwg
dGhpcyBmdW5jdGlvbiwgdGhleSBhcmUgZXhwZWN0aW5nIHRvIGR1bXAgdGhlCkBAIC0yMTk1LDcg
KzIyOTMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1
bXBTdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogLy8gVXNhZ2U6ICR2bS5kdW1wUmVn
aXN0ZXJzKCkgLy8gZHVtcCB0aGUgcmVnaXN0ZXJzIG9mIHRoZSBjdXJyZW50IENhbGxGcmFtZS4K
IC8vIEZJWE1FOiBDdXJyZW50bHksIHRoaXMgZnVuY3Rpb24gZHVtcHMgdGhlIHBoeXNpY2FsIGZy
YW1lLiBXZSBzaG91bGQgbWFrZQogLy8gaXQgZHVtcCB0aGUgbG9naWNhbCBmcmFtZSAoaS5lLiBi
ZSBhYmxlIHRvIGR1bXAgaW5saW5lZCBmcmFtZXMgYXMgd2VsbCkuCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBSZWdpc3RlcnMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EdW1wUmVnaXN0ZXJzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjIyNSw3ICsy
MzIzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1w
UmVnaXN0ZXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogLy8gRHVtcHMgdGhlIGludGVybmFs
IG1lbW9yeSBsYXlvdXQgb2YgYSBKU0NlbGwuCiAvLyBVc2FnZTogJHZtLmR1bXBDZWxsKGNlbGwp
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDZWxsKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EdW1wQ2VsbCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CkBAIC0yMjM4LDcgKzIzMzYsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBDZWxsKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogCiAvLyBHZXRzIHRoZSBkYXRhTG9nIGR1bXAgb2Yg
dGhlIGluZGV4aW5nTW9kZSBvZiB0aGUgcGFzc2VkIHZhbHVlLgogLy8gVXNhZ2U6ICR2bS5wcmlu
dCgiaW5kZXhpbmdNb2RlID0gIiArICR2bS5pbmRleGluZ01vZGUoanNWYWx1ZSkpCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkluZGV4aW5nTW9kZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkluZGV4aW5nTW9kZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIGlmICghY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5pc09iamVj
dCgpKQpAQCAtMjI0OSw3ICsyMzQ3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25JbmRleGluZ01vZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKGdsb2JhbE9iamVjdC0+dm0oKSwgc3RyZWFt
LnRvU3RyaW5nKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25JbmxpbmVDYXBhY2l0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklubGlu
ZUNhcGFjaXR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjI2MSw3ICsyMzU5LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JbmxpbmVDYXBhY2l0eShKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKIAogLy8gR2V0cyB0aGUgZGF0YUxvZyBkdW1wIG9mIGEgZ2l2ZW4gSlMg
dmFsdWUgYXMgYSBzdHJpbmcuCiAvLyBVc2FnZTogJHZtLnByaW50KCJ2YWx1ZSA9ICIgKyAkdm0u
dmFsdWUoanNWYWx1ZSkpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVmFsdWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBXVEY6OlN0cmluZ1ByaW50U3RyZWFtIHN0
cmVhbTsKQEAgLTIyNzYsNyArMjM3NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIAogLy8g
R2V0cyB0aGUgcGlkIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuCiAvLyBVc2FnZTogJHZtLnByaW50
KCJwaWQgPSAiICsgJHZtLmdldHBpZCgpKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25HZXRQSUQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UElELCAoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2V0Q3VycmVudFByb2Nlc3NJRCgpKSk7CkBA
IC0yMjg0LDcgKzIzODIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkdldFBJRChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCiAKIC8vIE1ha2UgdGhl
IGdsb2JhbE9iamVjdCBoYXZlIGEgYmFkIHRpbWUuIERvZXMgbm90aGluZyBpZiB0aGUgb2JqZWN0
IGlzIG5vdCBhIEpTR2xvYmFsT2JqZWN0LgogLy8gVXNhZ2U6ICR2bS5oYXZlQUJhZFRpbWUoZ2xv
YmFsT2JqZWN0KQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25I
YXZlQUJhZFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXZlQUJhZFRpbWUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yMzAzLDcgKzI0MDEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhdmVBQmFkVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
TwogCiAvLyBDaGVja3MgaWYgdGhlIG9iamVjdCAob3IgaXRzIGdsb2JhbCBpZiB0aGUgb2JqZWN0
IGlzIG5vdCBhIGdsb2JhbCkgaXMgaGF2aW5nIGEgYmFkIHRpbWUuCiAvLyBVc2FnZTogJHZtLmlz
SGF2aW5nQUJhZFRpbWUob2JqKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNI
YXZpbmdBQmFkVGltZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTIzNDgsNyArMjQ0Niw3IEBAIHN0YXRp
YyB2b2lkIGNhbGxXaXRoU3RhY2tTaXplUHJvYmVGdW5jdGlvbihQcm9iZTo6U3RhdGUqIHN0YXRl
KQogI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogCiBTVVBQUkVTU19BU0FOCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXplKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbFdpdGhTdGFja1NpemUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNDQ0LDcgKzI1NDIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNhbGxXaXRoU3RhY2tTaXplKEpTR2xvYmFsT2JqZWN0KiBnbAogCiAvLyBD
cmVhdGVzIGEgbmV3IGdsb2JhbCBvYmplY3QuCiAvLyBVc2FnZTogJHZtLmNyZWF0ZUdsb2JhbE9i
amVjdCgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0
ZUdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0yNDUyLDcgKzI1NTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdChKU0dsb2JhbE9iamVjdCogZwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZSh2bSwgSlNHbG9iYWxPYmpl
Y3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUHJveHkoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25DcmVhdGVQcm94eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0NjYsNyArMjU2
NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
UHJveHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShwcm94eSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ3JlYXRlUnVudGltZUFycmF5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
UnVudGltZUFycmF5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAg
SlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2JqZWN0KTsKQEAgLTI0NzQsNyArMjU3Miw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUnVudGltZUFy
cmF5KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhcnJheSk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
TnVsbFJvcGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNDgyLDcgKzI1ODAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZU51bGxSb3BlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNSb3BlU3RyaW5nOjpjcmVhdGVOdWxsRm9yVGVzdGluZyh2
bSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNy
ZWF0ZUltcHVyZUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUltcHVy
ZUdldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0OTYsNyArMjU5NCw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdl
dHRlck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNTA2LDcgKzI2MDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbUdldHRlck9iamVjdChKU0dsb2JhbE9iagogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DcmVhdGVET01KSVROb2RlT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTE2LDcgKzI2MTQsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25D
cmVhdGVET01KSVRHZXR0ZXJPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdl
dHRlck9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwpAQCAtMjUyNiw3ICsyNjI0LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJPYmplY3QoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9F
ZmZlY3RzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJOb0VmZmVj
dHNPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTI1MzYsNyArMjYzNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0
KEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBs
ZXhPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmpl
Y3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTI1NDYsNyArMjY0NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdChKU0dsCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjU1
Niw3ICsyNjU0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdChKU0dsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTY2LDcgKzI2NjQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURP
TUpJVENoZWNrSlNDYXN0T2JqZWN0KEpTR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVET01KSVRHZXR0ZXJCYXNlSlNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjU3Nyw3ICsyNjc1LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0
ZXJCYXNlSlNPYmplY3QoSlNHbG8KIH0KIAogI2lmIEVOQUJMRShXRUJBU1NFTUJMWSkKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWlu
Z1BhcnNlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwpAQCAtMjU4Niw3ICsyNjg0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyKEpTR2xvYmFsT2IKIH0KICNlbmRp
ZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVN0
YXRpY0N1c3RvbUFjY2Vzc29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21B
Y2Nlc3NvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtMjU5Niw3ICsyNjk0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21BY2Nlc3NvcihKU0dsb2Jh
bE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNjA2
LDcgKzI3MDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNyZWF0ZVN0YXRpY0N1c3RvbVZhbHVlKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNs
b3RTdGF0dXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1Np
ZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0y
NjE4LDcgKzI3MTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0yNjMxLDcgKzI3MjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZShKU0dsb2JhbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTRnVuY3Rpb246OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCAxLCBuYW1lLCBmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRo
TmFtZSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNl
dEltcHVyZUdldHRlckRlbGVnYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY1Myw3ICsyNzUxLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRJbXB1cmVH
ZXR0ZXJEZWxlZ2F0ZShKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNyZWF0ZUJ1aWx0aW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVC
dWlsdGluLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY3MSw3ICsyNzY5LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCdWlsdGluKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGZ1bmMpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0
eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKQEAgLTI2OTAsNyArMjc4OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uR2V0UHJpdmF0ZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS5nZXQoZ2xvYmFsT2JqZWN0LCBzeW1ib2wpKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlUm9vdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3JlYXRlUm9vdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjY5OCw3ICsyNzk2LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVSb290KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFJvb3Q6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3JlYXRlRWxlbWVudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZUVsZW1lbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNzExLDcgKzI4MDksNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUVsZW1lbnQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoRWxlbWVudDo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHJvb3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25HZXRFbGVtZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uR2V0RWxlbWVudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI3MjMsNyArMjgyMSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0RWxlbWVudChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQgPyBy
ZXN1bHQgOiBqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNy
ZWF0ZVNpbXBsZU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjczMSw3ICsyODI5LDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmplY3QoSlNHbG9i
YWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFNpbXBsZU9iamVjdDo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkdldEhpZGRlblZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjc0Niw3ICsyODQ0LDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRIaWRkZW5WYWx1
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNpbXBs
ZU9iamVjdC0+aGlkZGVuVmFsdWUoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25TZXRIaWRkZW5WYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3Bl
OwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI3NjMsNyArMjg2MSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0SGlkZGVuVmFs
dWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25TaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAt
Mjc4OSw3ICsyODg3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25TaGFkb3dDaGlja2VuRnVuY3Rpb25zT25TdGFjayhKU0dsb2IKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3co
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdFRo
cm93LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC0yNzk3LDcgKzI4OTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblNldEdsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZE5vdAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9u
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9uLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwpAQCAtMjgxNyw3ICsyOTE1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25GaW5kVHlwZUZvckV4cHJlc3Npb24oSlNHbG9iYWxPYmplY3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTT05QYXJzZShnbG9iYWxPYmplY3QsIGpzb25T
dHJpbmcpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25SZXR1cm5UeXBlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmV0dXJuVHlwZUZv
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4MzMsNyArMjkzMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmV0dXJuVHlwZUZvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU09OUGFyc2UoZ2xvYmFsT2JqZWN0
LCBqc29uU3RyaW5nKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRmxhdHRlbkRpY3Rpb25hcnlPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4NDMsNyAr
Mjk0MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmxh
dHRlbkRpY3Rpb25hcnlPYmplY3QoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIGVuY29kZWRKU1Vu
ZGVmaW5lZCgpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1w
QmFzaWNCbG9ja0V4ZWN1dGlvblJhbmdlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjg1Miw3ICsyOTUwLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EdW1wQmFzaWNCbG9ja0V4
ZWN1dGlvblJhbmdlcyhKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkhhc0Jhc2ljQmxvY2tFeGVjdXRlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhhc0Jh
c2ljQmxvY2tFeGVjdXRlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI4NzIsNyArMjk3MCw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4
ZWN1dGVkKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oaGFzRXhlY3V0ZWQpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25CYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25CYXNpY0Jsb2NrRXhlY3V0aW9uQ291bnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yOTM1
LDE5ICszMDMzLDE5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjaGFuZ2VEZWJ1Z2dlck1vZGVX
aGVuSWRsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBPCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRW5hYmxlRGVidWdnZXJNb2RlV2hlbklkbGUsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIHJldHVybiBjaGFuZ2VEZWJ1Z2dlck1vZGVXaGVuSWRsZShnbG9iYWxPYmpl
Y3QsIHsgQ29kZUdlbmVyYXRpb25Nb2RlOjpEZWJ1Z2dlciB9KTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EaXNhYmxlRGVidWdnZXJNb2RlV2hlbklk
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkRpc2FibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIGNoYW5nZURlYnVnZ2VyTW9kZVdoZW5J
ZGxlKGdsb2JhbE9iamVjdCwgeyB9KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hlbklkbGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkRlbGV0ZUFsbENvZGVXaGVuSWRsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAg
Vk0qIHZtID0gJmdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI5NTgsMTMgKzMwNTYsMTMgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hl
bklkbGUoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkdsb2JhbE9iamVjdENvdW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HbG9iYWxPYmplY3RDb3VudCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcC5nbG9iYWxPYmplY3RDb3VudCgpKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2xvYmFsT2Jq
ZWN0Rm9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2xvYmFsT2JqZWN0Rm9y
T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CkBAIC0yOTc0LDcgKzMwNzIsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdsb2JhbE9iamVjdEZv
ck9iamVjdChKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRH
ZXR0ZXJTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRHZXR0ZXJTZXR0ZXIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0zMDA0LDcgKzMxMDIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldEdldHRlclNldHRlcihKU0dsb2JhbE9iamVjdCog
Z2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkR2V0dGVyRnJvbUdldHRlclNl
dHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0
dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzAyMSwxNCArMzExOSwxNCBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0dGVy
KEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZ2V0dGVyKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVDdXN0b21UZXN0
R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0
dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDdXN0b21HZXR0ZXJT
ZXR0ZXI6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBKU1Rlc3RDdXN0b21HZXR0ZXJTZXR0ZXI6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0KSkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC0zMDQ1LDI2ICszMTQzLDI2IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMoSlNHbG9iYWxPYmpl
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90
PihkZWx0YSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25DdXJyZW50Q1BVVGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DdXJyZW50Q1BVVGltZSwgKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKENQVVRpbWU6OmZvckN1cnJlbnRU
aHJlYWQoKS52YWx1ZSgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uVG90YWxHQ1RpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblRvdGFsR0NUaW1lLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2bS5oZWFwLnRvdGFsR0NU
aW1lKCkuc2Vjb25kcygpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uUGFyc2VDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QYXJzZUNvdW50LCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ2xvYmFsUGFyc2VDb3VudC5sb2Fk
KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25J
c1dhc21TdXBwb3J0ZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lm
IEVOQUJMRShXRUJBU1NFTUJMWSkKQEAgLTMwNzQsNyArMzE3Miw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNXYXNtU3VwcG9ydGVkKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsCiAjZW5kaWYKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25NYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMw
ODksNyArMzE4Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZShKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1N0cmluZyh2bSwgU3RyaW5nOjphZG9wdChXVEZNb3ZlKGJ1ZmZlcikpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNEb2xsYXJWTUhlbHBlcjo6ZnVu
Y3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUg
YXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzExNCw4
ICszMjEyLDggQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RvbGxhclZNSGVscGVy
OjpmdW5jdGlvbkdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXMKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgcmVzdWx0LT5wdXNoKGdsb2JhbE9iamVjdCwg
SlNWYWx1ZShzdHJ1Y3R1cmUtPm1heE9mZnNldCgpKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGlmIChzdHJ1Y3R1cmUtPm1fdHJhbnNpdGlvblBy
b3BlcnR5TmFtZSkKLSAgICAgICAgICAgIHJlc3VsdC0+cHVzaChnbG9iYWxPYmplY3QsIGpzU3Ry
aW5nKHZtLCBTdHJpbmcoKnN0cnVjdHVyZS0+bV90cmFuc2l0aW9uUHJvcGVydHlOYW1lKSkpOwor
ICAgICAgICBpZiAoc3RydWN0dXJlLT50cmFuc2l0aW9uUHJvcGVydHlOYW1lKCkpCisgICAgICAg
ICAgICByZXN1bHQtPnB1c2goZ2xvYmFsT2JqZWN0LCBqc1N0cmluZyh2bSwgU3RyaW5nKCpzdHJ1
Y3R1cmUtPnRyYW5zaXRpb25Qcm9wZXJ0eU5hbWUoKSkpKTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgcmVzdWx0LT5wdXNoKGdsb2JhbE9iamVjdCwganNOdWxsKCkpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwpAQCAtMzEyNiw3ICszMjI0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RvbGxhclZNSGVscGVyOjpmdW5jdGlvbkdldFN0cnVj
dHVyZVRyYW5zaXRpb25MaXMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0Q29uY3Vy
cmVudGx5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0Q29uY3VycmVudGx5LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwpAQCAtMzE0Niw3ICszMjQ0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25HZXRDb25jdXJyZW50bHkoSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXNPd25MZW5ndGhQcm9wZXJ0eSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTMxNTYsNyArMzI1NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZnVuY3Rpb24tPmNhbkFzc3VtZU5hbWVBbmRM
ZW5ndGhBcmVPcmlnaW5hbCh2bSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25SZWplY3RQcm9taXNlQXNIYW5kbGVkKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uUmVqZWN0UHJvbWlzZUFzSGFuZGxlZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIEpTUHJvbWlzZSogcHJvbWlzZSA9IGpzQ2FzdDxKU1Byb21p
c2UqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKQEAgLTMxNjUsNyArMzI2Myw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUmVqZWN0UHJv
bWlzZUFzSGFuZGxlZChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25TZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uU2V0VXNlclByZWZlcnJlZExhbmd1YWdlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMxODcs
MjUgKzMyODUsMjUgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25TZXRVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbklDVVZlcnNpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVVmVyc2lvbiwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFdURjo6SUNVOjptYWpv
clZlcnNpb24oKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbklDVUhlYWRlclZlcnNpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSUNVSGVhZGVyVmVyc2lvbiwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFVfSUNVX1ZFUlNJT05f
TUFKT1JfTlVNKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQXNzZXJ0RW5hYmxlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3NlcnRFbmFibGVkLCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKEFTU0VSVF9FTkFCTEVEKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNNZW1vcnlM
aW1pdGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbklzTWVtb3J5TGltaXRlZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICNpZiBQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpIHx8IFBMQVRGT1JNKFdBVENIT1MpCkBAIC0zMjE1
LDE5ICszMzEzLDE5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSXNNZW1vcnlMaW1pdGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsCiAjZW5kaWYKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Vc2VKSVQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVXNl
SklULCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2Vy
dFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFu
KE9wdGlvbnM6OnVzZUpJVCgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uSXNHaWdhY2FnZUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNHaWdhY2FnZUVuYWJsZWQs
IChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oR2ln
YWNhZ2U6OmlzRW5hYmxlZCgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25hcnkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25Ub1VuY2FjaGVhYmxlRGljdGlvbmFyeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTMz
NzIsNyArMzQ3MCw3IEBAIHZvaWQgSlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQog
ICAgIGFkZEZ1bmN0aW9uKHZtLCAiaXNXYXNtU3VwcG9ydGVkIiwgZnVuY3Rpb25Jc1dhc21TdXBw
b3J0ZWQsIDApOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAibWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJs
ZSIsIGZ1bmN0aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSwgMSk7CiAKLSAgICBhZGRGdW5j
dGlvbih2bSwgImdldFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0IiwgSlNEb2xsYXJWTUhlbHBlcjo6
ZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdCwgMSk7CisgICAgYWRkRnVuY3Rpb24o
dm0sICJnZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdCIsIGZ1bmN0aW9uR2V0U3RydWN0dXJlVHJh
bnNpdGlvbkxpc3QsIDEpOwogICAgIGFkZEZ1bmN0aW9uKHZtLCAiZ2V0Q29uY3VycmVudGx5Iiwg
ZnVuY3Rpb25HZXRDb25jdXJyZW50bHksIDIpOwogCiAgICAgYWRkRnVuY3Rpb24odm0sICJoYXNP
d25MZW5ndGhQcm9wZXJ0eSIsIGZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHksIDEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcAppbmRleCBh
ZjQyZDhkNTcwOWYyMDZhN2E3ODcwOGY2NWQ3ZTUwYjU1OGU2MzYyLi4yMzgxZDMyODIxMzFmODU0
ZjhmNWJiMTY2N2UzMTBiZjBiMzM4MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcApAQCAtNjIsOSArNjIsOSBAQCBGT1JfRUFDSF9XRUJB
U1NFTUJMWV9DT05TVFJVQ1RPUl9UWVBFKERFRklORV9DQUxMQkFDS19GT1JfQ09OU1RSVUNUT1Ip
CiAKICN1bmRlZiBERUZJTkVfQ0FMTEJBQ0tfRk9SX0NPTlNUUlVDVE9SCiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZUZ1bmMoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVZhbGlkYXRl
RnVuYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlDb21waWxlRnVuYyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYyk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVZhbGlkYXRlRnVuYyk7CiAKIH0KIApAQCAt
MTUxLDcgKzE1MSw3IEBAIHN0YXRpYyB2b2lkIHdlYkFzc2VtYmx5TW9kdWxlVmFsaWRhdGVBc3lu
Y0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgfSkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVGdW5j
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5Q29tcGlsZUZ1bmMsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgSlNXZWJBc3NlbWJseTo6d2Vi
QXNzZW1ibHlNb2R1bGVJbnN0YW50aW5hdGVBc3luYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
CiAgICAgQ0xFQVJfQU5EX1JFVFVSTl9JRl9FWENFUFRJT04oY2F0Y2hTY29wZSwgdm9pZCgpKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0
YW50aWF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0YW50aWF0ZUZ1
bmMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCkBAIC0zMTcsNyArMzE3LDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW50
aWF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGcKICAgICB9CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0z
MzAsNyArMzMwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNz
ZW1ibHlWYWxpZGF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbih2YWxpZGF0aW9uUmVzdWx0Lmhhc192YWx1ZSgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5n
SW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5n
SW50ZXJuYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gY2F0
Y2hTY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwpAQCAtMzUzLDcgKzM1Myw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50
ZXJuYWwoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9taXNl
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbnRp
YXRlU3RyZWFtaW5nSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0
YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseS5oCmlu
ZGV4IDM2ZjcyZDU3MTg5ZmM2MzYxOWIyYThkYzA1MzJmYWVhZDk1NmNhOGMuLjUyNjE5YjQ1YTA2
NjM2MTNlZTVhOTQzOGY3OGQyODc2YTMzOTI0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmgKQEAgLTU4LDggKzU4LDggQEAgY2xhc3MgSlNXZWJB
c3NlbWJseSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNz
ZW1ibHlJbnN0YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5Q29tcGlsZVN0cmVh
bWluZ0ludGVybmFsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0
YW50aWF0ZVN0cmVhbWluZ0ludGVybmFsKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTI3ODYxNmZiN2MzNGRiOGUy
MmJkMmIwZWViMzFhNmI4Yzk3ZGI5ZC4uNWNkMDAzNWEwMWZkYjc4ZGRjMzVmYzQ3YjZiODU4MGJl
NDVkMzU5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4
LDEyICszOCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2Vt
Ymx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgJmNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9y
KSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJs
eUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yVGFibGVX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvcgogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
YXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTgsNyArNjEsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEpTR2xvYmFs
TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBzdHJ1Y3R1cmUsIG1l
c3NhZ2UpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxK
U1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlDb21waWxlRXJyb3JTdHJ1Y3R1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKaW5kZXggYzBiMzAx
NWI3YTA1ZDI5OGFjZmEyNGViY2RjZThlNTQyODc2YTI1Zi4uODEyOGNiMGNjNDhjZjY0MTFlMjhi
ODYxMTViYzUzMDU1OGIxYmU3MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAKQEAgLTU2LDcgKzU2LDkgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUZ1bmN0aW9uOjpzX2luZm8g
PSB7ICJXZWJBc3NlbWJseUZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUZ1bmN0aW9uKSB9OwogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2ViQXNzZW1ibHlGdW5jdGlvbihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uKTsKKworSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUdsb2JhbENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ1MmJhYjMyZTVhNjUw
NzcwYjhiOGQzZjU3ZjMyMWI4NzEwYzliMjQuLjMwMDJjNzhmNWIwNmQzNDlhZDU4OGJlMDdiZGY4
ZTc4MDRlMDU4ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IuY3BwCkBAIC0zOCwxMiArMzgs
MTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUdsb2Jh
bENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZjb25z
dHJ1Y3Rvckdsb2JhbFdlYkFzc2VtYmx5R2xvYmFsLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKFdlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlHbG9iYWwpOworCiAvKiBT
b3VyY2UgZm9yIFdlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0b3IubHV0LmgKICBAYmVnaW4gY29u
c3RydWN0b3JHbG9iYWxXZWJBc3NlbWJseUdsb2JhbAogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5R2xvYmFsKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTIyLDcgKzEyNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwoSlNHbG9iYWxPYmpl
Y3QqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZShK
U1dlYkFzc2VtYmx5R2xvYmFsOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2Jq
ZWN0LT53ZWJBc3NlbWJseUdsb2JhbFN0cnVjdHVyZSgpLCBXVEZNb3ZlKHdhc21HbG9iYWwpKSkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3Nl
bWJseUdsb2JhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5R2xvYmFsLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xv
YmFsUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG90eXBlLmNwcAppbmRleCA5YmRlNTM5YjJlZjJmMzc5OTFiMGQ0Y2Y2NTU3
NDRlMDVlYzAxODhmLi5hZmQ4YjAzMWJiOTc0OGRjNjI2YzM4NjFmZjE4MGEwOTQ3MmRlMTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlHbG9iYWxQcm90b3R5cGUuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAjaW5jbHVkZSAiSlNX
ZWJBc3NlbWJseUdsb2JhbC5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2Vi
QXNzZW1ibHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9i
YWxQcm90b0Z1bmNWYWx1ZU9mKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdl
YkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZSk7CiB9
CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5sdXQuaCIKQEAgLTY1LDcg
KzY1LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNXZWJBc3NlbWJseUdsb2JhbCogZ2V0R2xv
YmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUdsb2JhbFBy
b3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90
b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgxLDcgKzgxLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90
b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2IKICAgICB9CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFsdWUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9HZXR0ZXJGdW5jVmFs
dWUoSlNHbG9iCiAgICAgfQogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseUdsb2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggY2NjMjdlNjMx
YWY3N2U0YmM3MDlmZWFhOGUyNTcyYWU0ZGEyMTY3OS4uZjRhZTdhMzI2MWEwZDk0ZDJhMjlhZjQ0
OTFkYTJkMjE1ZmJjYWUwMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCkBAIC0z
OSw2ICszOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1i
bHlJbnN0YW5jZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2lu
Zm8sICZjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlJbnN0YW5jZSwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IpIH07CiAKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0YW5j
ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUlu
c3RhbmNlKTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3Iu
bHV0LmgKICBAYmVnaW4gY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5SW5zdGFuY2UKICBAZW5k
CkBAIC00Niw3ICs0OSw3IEBAIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUluc3RhbmNlQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfCiAKIHVzaW5nIFdhc206
OlBsYW47CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpT
V2ViQXNzZW1ibHlJbnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFz
c2VtYmx5SW5zdGFuY2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc2LDcgKzc5LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUlu
c3RhbmNlKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGluc3RhbmNl
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNz
ZW1ibHlJbnN0YW5jZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5SW5zdGFuY2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1i
bHlJbnN0YW5jZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAppbmRleCAzMGM3YzFmODYwYzIyMzgwYzU5
NDM1N2QzOWVlZWQ4NjE3MTM1ZGQ0Li42NjlmNjgyOGU4ZGYxNGQ5NjMwOGY5N2FmMjViMDFlYWQz
NTg5Mzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmNwcApAQCAtMzQsNyArMzQsNyBAQAog
I2luY2x1ZGUgIkpTV2ViQXNzZW1ibHlJbnN0YW5jZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90
b0Z1bmNFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbmNlUHJvdG9GdW5jRXhwb3J0cyk7
CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseUluc3RhbmNlUHJvdG90eXBlLmx1dC5oIgpAQCAt
NjEsNyArNjEsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1dlYkFzc2VtYmx5SW5zdGFuY2Uq
IGdldEluc3RhbmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b0Z1bmNFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5SW5z
dGFuY2VQcm90b0Z1bmNFeHBvcnRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlM
aW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMGRlM2ZiN2M3OWQ2NTk1NDE2YTZlN2I4YjAy
ZjJhOGU0YzkyMjg5Mi4uOTQ2ZGVmNGYxMTUyMjlhMjI1YmU5MzJhYzllNjQzNWI2YzhhYjJhOSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5r
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDEyICszOCwxNSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0cnVj
dG9yVGFibGVXZWJBc3NlbWJseUxpbmtFcnJvciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTsK
KwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0cnVjdG9yLmx1dC5oCiAg
QGJlZ2luIGNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseUxpbmtFcnJvcgogIEBlbmQKICAqLwog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTgsNyArNjEsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vy
cm9yKEpTR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKEpTV2ViQXNzZW1ibHlMaW5rRXJyb3I6OmNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBz
dHJ1Y3R1cmUsIG1lc3NhZ2UpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNh
bGxKU1dlYkFzc2VtYmx5TGlua0Vycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFt
ZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJlKiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9i
amVjdC0+d2ViQXNzZW1ibHlMaW5rRXJyb3JTdHJ1Y3R1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggMWUwY2JhMGYzYTgzNmJhOTY2MzAyYzBjZjVlZDhkMjU5ZjE1YmVmZC4u
NTBjY2NhMjQxZmQ1YmU5Nzk1NmRmMDg4Yjk0YThkOGFiMGZmMGQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlD
b25zdHJ1Y3Rvci5jcHAKQEAgLTQ0LDEyICs0NCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29u
c3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseU1lbW9y
eSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVj
dG9yKSB9OwogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dl
YkFzc2VtYmx5TWVtb3J5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxK
U1dlYkFzc2VtYmx5TWVtb3J5KTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseU1lbW9yeUNv
bnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseU1lbW9y
eQogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RKU1dlYkFzc2VtYmx5TWVtb3J5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
V2ViQXNzZW1ibHlNZW1vcnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE0LDcgKzEx
Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlNZW1vcnkoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc01lbW9yeSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxKU1dlYkFzc2VtYmx5TWVtb3J5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlNZW1vcnks
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5jcHAKaW5kZXggMmI5NzBmMDcwNDRj
OGQ0ZmJiODBmODBiYzkxOGEyOTBjYjdiNzBkMC4uYWI0YTJiZmVlZWZhNjg0MTdjMzhjYzE5NTRl
NWU5N2Y2MmY2MDA5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcApAQCAtMzgsOCArMzgsOCBA
QAogI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIKIAogbmFtZXNwYWNlIEpTQyB7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVu
Y0dyb3coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIpOwogfQogCiAjaW5jbHVk
ZSAiV2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUubHV0LmgiCkBAIC02OSw3ICs2OSw3IEBAIEFM
V0FZU19JTkxJTkUgSlNXZWJBc3NlbWJseU1lbW9yeSogZ2V0TWVtb3J5KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFZNJiB2CiAgICAgcmV0dXJuIG1lbW9yeTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3coSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNHcm93LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTg2LDcgKzg2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3coSlNHbG9iYWxPYmplY3QqIGdsb2IK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHJlc3VsdC5wYWdlQ291bnQoKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TWVtb3J5UHJv
dG9GdW5jQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9G
dW5jQnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggOWM3YWMwMjVlYzAyMTljYzBmMWU0MGNiYjgwMzI0NWFlODQ3Y2Y2MS4uNDgy
YjYyNDkxMWRjZjBmZGFhMTU1MjRiNzlkNjhmYzBmOGFkYmRjYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25z
dHJ1Y3Rvci5jcHAKQEAgLTQyLDkgKzQyLDExIEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHdlYkFzc2VtYmx5TW9kdWxlQ3VzdG9tU2VjdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5
TW9kdWxlSW1wb3J0cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVFeHBvcnRzKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1vZHVsZUN1c3RvbVNlY3Rpb25zKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5TW9kdWxlSW1wb3J0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseU1vZHVsZUV4cG9ydHMpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlNb2R1bGUpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseU1vZHVsZSk7CiB9CiAK
ICNpbmNsdWRlICJXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmx1dC5oIgpAQCAtNjEsNyAr
NjMsNyBAQCBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbgogIEBlbmQKICAqLwogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlQ3VzdG9tU2VjdGlvbnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNb2R1bGVDdXN0b21TZWN0aW9ucywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC05NCw3ICs5Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVDdXN0b21TZWN0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xv
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TW9kdWxlSW1wb3J0cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseU1vZHVsZUltcG9ydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTI1LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1i
bHlNb2R1bGVJbXBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHdlYkFzc2VtYmx5TW9kdWxlRXhwb3J0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJs
eU1vZHVsZUV4cG9ydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU0LDcgKzE1Niw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVFeHBvcnRz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RKU1dlYkFzc2VtYmx5TW9kdWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlNb2R1bGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NSw3ICsxNjcsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5
TW9kdWxlKEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKFdlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3I6OmNyZWF0ZU1vZHVsZShn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgV1RGTW92ZShzb3VyY2UpKSkpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseU1vZHVsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOWU1Yzc3MWI2MmUyMWM1NmJjZTc3ZDRlYjdi
NmQyNDYzMWE0NjFiZS4uM2RmZDkxNTY3YjYwYTU4ZGQ5YWE2ODQyZmY2NzkwMjFmNWNiOTI1MiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDEyICszOCwx
NSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5UnVudGlt
ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
JmNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShXZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yKSB9OwogCitz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVu
dGltZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFz
c2VtYmx5UnVudGltZUVycm9yKTsKKwogLyogU291cmNlIGZvciBXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvckNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNvbnN0cnVjdG9yVGFibGVXZWJBc3NlbWJs
eVJ1bnRpbWVFcnJvcgogIEBlbmQKICAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtNjAsNyArNjMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKEpTR2xvYmFsTwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvcjo6Y3JlYXRlKGds
b2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgV1RGTW92ZShtZXNzYWdlU3RyaW5nKSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseVJ1
bnRpbWVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseVJ1bnRpbWVF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBKU1ZhbHVlIG1lc3NhZ2UgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAg
IFN0cnVjdHVyZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPndlYkFzc2VtYmx5UnVu
dGltZUVycm9yU3RydWN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcAppbmRleCBkOTgz
ZjBhMDBkYjEzOWJkYzdiOGYwNWMxZGZjM2ZlMDAwZjE2YjkwLi4wM2JmOGRhMTFmMWE5NmY4ZDMz
OWE5YjczYjM5MjYxM2FiY2FmNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKQEAgLTQy
LDEyICs0MiwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2Vt
Ymx5VGFibGVDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCAmY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yKSB9OwogCitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseVRhYmxlKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSk7CisKIC8q
IFNvdXJjZSBmb3IgV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmx1dC5oCiAgQGJlZ2luIGNv
bnN0cnVjdG9yVGFibGVXZWJBc3NlbWJseVRhYmxlCiAgQGVuZAogICovCiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5VGFibGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTA2LDcgKzEwOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZShKU0dsb2JhbE9iamVjdCoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2Vi
QXNzZW1ibHlUYWJsZTo6dHJ5Q3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGdsb2JhbE9iamVjdC0+
d2ViQXNzZW1ibHlUYWJsZVN0cnVjdHVyZSgpLCB3YXNtVGFibGUucmVsZWFzZU5vbk51bGwoKSkp
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNz
ZW1ibHlUYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5VGFibGUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlUYWJs
ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcAppbmRleCA1NTFkOWY5N2FkMjRkMjUzZGQ3N2RmNjE4ZGQzYjI1
YjI2YjllY2QwLi44NmY0ZTc4ZmVhNTIxMDUxMDA2ODE1OTdlNDU2YTE4OTllY2ZiYTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJv
dG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eVRhYmxlUHJvdG90eXBlLmNwcApAQCAtMzcsMTAgKzM3LDEwIEBACiAjaW5jbHVkZSAiU3RydWN0
dXJlSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJv
dG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jTGVuZ3RoKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCk7
CiB9CiAKICNpbmNsdWRlICJXZWJBc3NlbWJseVRhYmxlUHJvdG90eXBlLmx1dC5oIgpAQCAtNzAs
NyArNzAsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBKU1dlYkFzc2VtYmx5VGFibGUqIGdldFRh
YmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVBy
b3RvRnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9G
dW5jTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgwLDcgKzgwLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVu
Y0xlbmd0aChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KHRhYmxlLT5sZW5ndGgoKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR3JvdywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC05OSw3ICs5OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFz
c2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihvbGRMZW5ndGgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0KgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGFibGUtPmdldChpbmRleCkpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCmluZGV4IDIxNzZiYzcy
ZGJmNWExNmVhZGQ3MWY3YWMyYjBjZTU3ZjZhYmM1ODEuLmRjZDBiNjhjYTE2NjRlNmM5ZjE2MGU5
NjQ3YzE1MDY1YWE4MTE1MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKQEAgLTM2LDE2ICsz
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlXcmFw
cGVyRnVuY3Rpb246OnNfaW5mbyA9IHsgIldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdhc21GdW5jdGlvbiA9IGpzQ2FzdDxXZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbio+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7Ci0gICAgSlNP
YmplY3QqIGZ1bmN0aW9uID0gd2FzbUZ1bmN0aW9uLT5mdW5jdGlvbigpOwotICAgIGF1dG8gY2Fs
bERhdGEgPSBnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24pOwotICAgIFJFTEVBU0VfQVNTRVJUKGNh
bGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5vbmUpOwotICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwoZ2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwg
Y2FsbERhdGEsIGpzVW5kZWZpbmVkKCksIEFyZ0xpc3QoY2FsbEZyYW1lKSkpKTsKLX0KK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
bik7CiAKIFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uOjpXZWJBc3NlbWJseVdyYXBwZXJGdW5j
dGlvbihWTSYgdm0sIE5hdGl2ZUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBXYXNtOjpXYXNtVG9XYXNtSW1w
b3J0YWJsZUZ1bmN0aW9uIGltcG9ydGFibGVGdW5jdGlvbikKICAgICA6IEJhc2Uodm0sIGV4ZWN1
dGFibGUsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQpAQCAtODUsNiArNzYsMTcgQEAgdm9pZCBX
ZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbjo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNs
b3RWaXNpdG9yJiB2aXNpdG8KICAgICB2aXNpdG9yLmFwcGVuZCh0aGlzT2JqZWN0LT5tX2Z1bmN0
aW9uKTsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWJBc3NlbWJseVdyYXBw
ZXJGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFdlYkFzc2VtYmx5V3JhcHBlckZ1
bmN0aW9uKiB3YXNtRnVuY3Rpb24gPSBqc0Nhc3Q8V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24q
PihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOworICAgIEpTT2JqZWN0KiBmdW5jdGlvbiA9IHdhc21G
dW5jdGlvbi0+ZnVuY3Rpb24oKTsKKyAgICBhdXRvIGNhbGxEYXRhID0gZ2V0Q2FsbERhdGEodm0s
IGZ1bmN0aW9uKTsKKyAgICBSRUxFQVNFX0FTU0VSVChjYWxsRGF0YS50eXBlICE9IENhbGxEYXRh
OjpUeXBlOjpOb25lKTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVu
Y29kZShjYWxsKGdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIGNhbGxEYXRhLCBqc1VuZGVmaW5lZCgp
LCBBcmdMaXN0KGNhbGxGcmFtZSkpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkFTU0VNQkxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtQ2FsbGlu
Z0NvbnZlbnRpb25zLmgKaW5kZXggZDQwYzVkZTIyYjM2OTE1NjExNjliMjU2YmVkNWU4Y2NmZDBl
Zjk4Mi4uZDU5MGM1NDMxYjkwNjAyMDVlNGE5NWQzMTgwN2RkYjNiMjlkNjQ0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlvbnMuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCkBAIC0zNSwxMyArMzUsMTkg
QEAKIAogCiAjaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgSlNDX0hPU1Rf
Q0FMTCBfX2Zhc3RjYWxsCisjZGVmaW5lIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBfX2Zhc3Rj
YWxsCiAjZWxpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLSNkZWZpbmUg
SlNDX0hPU1RfQ0FMTCBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQorI2RlZmluZSBKU0NfSE9T
VF9DQUxMX0FUVFJJQlVURVMgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKICNlbHNlCi0jZGVm
aW5lIEpTQ19IT1NUX0NBTEwKKyNkZWZpbmUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTCiAjZW5k
aWYKIAorI2RlZmluZSBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OYW1lLCBwYXJh
bWV0ZXJzKSBcCisgICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVU
RVMgZnVuY3Rpb25OYW1lIHBhcmFtZXRlcnMKKyNkZWZpbmUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbk5hbWUpIFwKKyAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TExfQVRUUklCVVRFUyBmdW5jdGlvbk5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKikKKyNkZWZpbmUgSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JZCwg
ZnVuY3Rpb24pCisKICNpZiBDUFUoWDg2KSAmJiBPUyhXSU5ET1dTKQogI2RlZmluZSBDQUxMSU5H
X0NPTlZFTlRJT05fSVNfU1REQ0FMTCAxCiAjaWZuZGVmIENERUNMCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvci5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CdWlsdGluQ29uc3RydWN0b3IuaAppbmRleCA2MTE0
NDVjOWMwYmIyMTczNDBiZWY1NzI0NmM5NmUyNzFmMmVhM2M4Li5mZjdhMDVkM2NiMjJmNzVhZWEw
YjEzYzFlNDk2OGVlMWJkNWJmY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQnVpbHRpbkNvbnN0cnVjdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01CdWlsdGluQ29uc3RydWN0b3IgZmluYWwg
OiBwdWJsaWMgSlNET01CdWkKIAogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpT
RE9NR2xvYmFsT2JqZWN0Jik7CiAgICAgc3RhdGljIEpTQzo6Q2FsbERhdGEgZ2V0Q29uc3RydWN0
RGF0YShKU0M6OkpTQ2VsbCopOwotICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OworICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRF
UyBjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiAKICAg
ICBKU0M6OkVuY29kZWRKU1ZhbHVlIGNhbGxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
JiwgSlNDOjpDYWxsRnJhbWUmLCBKU0M6OkpTT2JqZWN0Jik7CiAgICAgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBjYWxsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6Q2FsbEZyYW1l
JiwgSlNDOjpKU09iamVjdCopOwpAQCAtMTExLDcgKzExMSw3IEBAIHR5cGVuYW1lIHN0ZDo6ZW5h
YmxlX2lmPEpTRE9NT2JqZWN0SW5zcGVjdG9yPEpTQ2xhc3M+Ojppc0NvbXBsZXhXcmFwcGVyLCBK
U0M6OkpTCiAgICAgcmV0dXJuIGNvbnRleHQgPyBjcmVhdGVXcmFwcGVyPHR5cGVuYW1lIEpTQ2xh
c3M6OkRPTVdyYXBwZWQ+KGNvbnN0cnVjdG9yLmdsb2JhbE9iamVjdCgpLCBKU0NsYXNzOjpET01X
cmFwcGVkOjpjcmVhdGUoKmNvbnRleHQpKSA6IG51bGxwdHI7CiB9CiAKLXRlbXBsYXRlPHR5cGVu
YW1lIEpTQ2xhc3M+IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNE
T01CdWlsdGluQ29uc3RydWN0b3I8SlNDbGFzcz46OmNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQordGVt
cGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTF9BVFRSSUJVVEVTIEpTRE9NQnVpbHRpbkNvbnN0cnVjdG9yPEpTQ2xhc3M+Ojpjb25z
dHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBhdXRvKiBj
YXN0ZWRUaGlzID0gSlNDOjpqc0Nhc3Q8SlNET01CdWlsdGluQ29uc3RydWN0b3IqPihjYWxsRnJh
bWUtPmpzQ2FsbGVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db25zdHJ1Y3Rvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25z
dHJ1Y3Rvci5oCmluZGV4IDNmNmVhNzUwM2YyNWFlMzcxNzM5NGViMjc3OTg4MjJhNDQ4MWUzNzIu
LmFjZjkxOTBlYTc5ZmJhODU3YTZmMGEyNGE3YmQyYzFjMDYzNzYyYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01Db25zdHJ1Y3RvciBmaW5hbCA6
IHB1YmxpYyBKU0RPTUNvbnN0cnVjdG8KICAgICAvLyBVc3VhbGx5IGRlZmluZWQgZm9yIGVhY2gg
c3BlY2lhbGl6YXRpb24gY2xhc3MuCiAgICAgdm9pZCBpbml0aWFsaXplUHJvcGVydGllcyhKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKSB7IH0KICAgICAvLyBNdXN0IGJlIGRlZmluZWQgZm9y
IGVhY2ggc3BlY2lhbGl6YXRpb24gY2xhc3MuCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9B
VFRSSUJVVEVTIGNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGlubGluZSBKU0RPTUNvbnN0cnVj
dG9yPEpTQ2xhc3M+KiBKU0RPTUNvbnN0cnVjdG9yPEpTQ2xhc3M+OjpjcmVhdGUoSlNDOjpWTSYg
dm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0
cnVjdG9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVj
dG9yQmFzZS5jcHAKaW5kZXggMzBmNTk3MTk2YWE1NTA0OTExMWZmODhmMTdmM2IwZmU2MzJmNDQ3
OS4uMmE4NTJhNTAyZTE0MThkYjk0NzNhYjQ3MjE3MWQxYzc1NWExMWQ0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmNwcApAQCAt
MzAsNyArMzAsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBTVEFUSUNfQVNTRVJUX0lTX1RS
SVZJQUxMWV9ERVNUUlVDVElCTEUoSlNET01Db25zdHJ1Y3RvckJhc2UpOwogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsVGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxUaHJvd1R5cGVFcnJvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihj
YWxsVGhyb3dUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzgsNiArNDAsMTQgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFRocm93VHlwZUVycm9yKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKIH0K
IAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUaHJvd1R5cGVFcnJvckZvckpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSopKQoreworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKyAgICBK
U0M6OnRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbGxlZ2FsIGNvbnN0cnVj
dG9yIl9zKTsKKyAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUoSlNDOjpqc051bGwoKSk7
Cit9CisKIENhbGxEYXRhIEpTRE9NQ29uc3RydWN0b3JCYXNlOjpnZXRDYWxsRGF0YShKU0NlbGwq
KQogewogICAgIENhbGxEYXRhIGNhbGxEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgKaW5kZXggMDBlYjBiZTE5NzVhMzkxYjZiNjM3
YTVlZWE5ZjJmMjllNTU4ZTQ5OC4uMjVlZmQ2NjhhYzE4MTg4MjU5OTAxYjUzYzZkNjM2MzFiMjkz
Y2RjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1
Y3RvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVj
dG9yQmFzZS5oCkBAIC0yMyw2ICsyMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVGhyb3dUeXBlRXJyb3JGb3JKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZSk7CisKIC8vIEJhc2UgY2xhc3MgZm9yIGFsbCBjb25zdHJ1Y3Rv
ciBvYmplY3RzIGluIHRoZSBKU0MgYmluZGluZ3MuCiBjbGFzcyBKU0RPTUNvbnN0cnVjdG9yQmFz
ZSA6IHB1YmxpYyBKU0RPTU9iamVjdCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUu
aAppbmRleCA1OTg2ZmQ5Y2IzMTU5NTUxN2FkYzAyYzZiOWE2NmI2Y2U2ZWUyMjM2Li5jNDk5OWQ5
ZjI5Njc0MDlmMjdkMjNiNzUwM2Q1MWM3NTZiOWM0MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlLmgKQEAgLTQ2LDE5ICs0NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBjbGFz
cyBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZSBmaW5hbCA6IHB1YmxpYwogICAgIC8v
IFVzdWFsbHkgZGVmaW5lZCBmb3IgZWFjaCBzcGVjaWFsaXphdGlvbiBjbGFzcy4KICAgICB2b2lk
IGluaXRpYWxpemVQcm9wZXJ0aWVzKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpIHsgfQog
Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsVGhyb3dU
eXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSopCi0gICAgewotICAgICAgICBKU0M6OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAg
ICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgICAgICBKU0M6
OnRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJJbGxlZ2FsIGNvbnN0cnVjdG9y
Il9zKTsKLSAgICAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKEpTQzo6anNOdWxsKCkp
OwotICAgIH0KLQogICAgIHN0YXRpYyBKU0M6OkNhbGxEYXRhIGdldENhbGxEYXRhKEpTQzo6SlND
ZWxsKikKICAgICB7CiAgICAgICAgIEpTQzo6Q2FsbERhdGEgY2FsbERhdGE7CiAgICAgICAgIGNh
bGxEYXRhLnR5cGUgPSBKU0M6OkNhbGxEYXRhOjpUeXBlOjpOYXRpdmU7Ci0gICAgICAgIGNhbGxE
YXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNhbGxUaHJvd1R5cGVFcnJvcjsKKyAgICAgICAgY2FsbERh
dGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFRocm93VHlwZUVycm9yRm9ySlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGU7CiAgICAgICAgIHJldHVybiBjYWxsRGF0YTsKICAgICB9CiAKQEAg
LTY2LDcgKzU4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gY2xhc3MgSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUgZmluYWwgOiBwdWJsaWMKICAgICB7CiAgICAgICAgIEpT
Qzo6Q2FsbERhdGEgY2FsbERhdGE7CiAgICAgICAgIGNhbGxEYXRhLnR5cGUgPSBKU0M6OkNhbGxE
YXRhOjpUeXBlOjpOYXRpdmU7Ci0gICAgICAgIGNhbGxEYXRhLm5hdGl2ZS5mdW5jdGlvbiA9IGNh
bGxUaHJvd1R5cGVFcnJvcjsKKyAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2Fs
bFRocm93VHlwZUVycm9yRm9ySlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU7CiAgICAg
ICAgIHJldHVybiBjYWxsRGF0YTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwCmluZGV4IDgyODYzOGFkM2E0OWQzMTYyYjk4
ZTU1ZDQzNGFkNGMxZGRlZTBhNjcuLjRlMjZkN2Y5NTEyNWYwY2U0NTY2MTEzZWUyODM5NDE1MDdj
YjU5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9i
amVjdC5jcHAKQEAgLTU2LDEyICs1NiwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlVGhpc1R5
cGVFcnJvckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YWtlRE9NRXhjZXB0aW9uRm9yQnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNSZWFkYWJsZUJ5dGVTdHJlYW1BUElFbmFi
bGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGlzV3JpdGFibGVTdHJlYW1BUElFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdoZW5TaWduYWxBYm9ydGVkKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1h
a2VUaGlzVHlwZUVycm9yRm9yQnVpbHRpbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiht
YWtlR2V0dGVyVHlwZUVycm9yRm9yQnVpbHRpbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYWtlRE9NRXhjZXB0aW9uRm9yQnVpbHRpbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihpc1JlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihpc1dyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHdoZW5TaWduYWxBYm9ydGVkKTsKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NR2xvYmFsT2Jq
ZWN0OjpzX2luZm8gPSB7ICJET01HbG9iYWxPYmplY3QiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTUdsb2JhbE9iamVj
dCkgfTsKIApAQCAtODAsNyArODAsNyBAQCB2b2lkIEpTRE9NR2xvYmFsT2JqZWN0OjpkZXN0cm95
KEpTQ2VsbCogY2VsbCkKICAgICBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGNlbGwp
LT5KU0RPTUdsb2JhbE9iamVjdDo6fkpTRE9NR2xvYmFsT2JqZWN0KCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZVRoaXNUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihtYWtlVGhpc1R5cGVFcnJvckZvckJ1aWx0aW5zLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChj
YWxsRnJhbWUpOwogICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsK
QEAgLTk0LDcgKzk0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlVGhpc1R5
cGVFcnJvckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNyZWF0ZVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIG1ha2VUaGlzVHlwZUVy
cm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLnV0ZjgoKS5kYXRhKCksIGZ1bmN0aW9uTmFtZS51dGY4
KCkuZGF0YSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VHZXR0
ZXJUeXBlRXJyb3JGb3JCdWlsdGlucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYWtlR2V0dGVyVHlw
ZUVycm9yRm9yQnVpbHRpbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CiAgICAgQVNTRVJUKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID09IDIpOwpAQCAtMTExLDcgKzExMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5zKEpT
R2xvYmFsT2JqZWN0KiBnbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlcnJvcik7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZURPTUV4Y2VwdGlvbkZvckJ1aWx0
aW5zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1ha2VET01FeGNlcHRpb25Gb3JCdWlsdGlucywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCkgPT0gMik7CkBAIC0xMzUsMTcgKzEzNSwxNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1ha2VET01FeGNlcHRpb25Gb3JCdWlsdGlucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGlzUmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaXNSZWFkYWJsZUJ5dGVT
dHJlYW1BUElFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnJlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQoKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzV3JpdGFibGVTdHJlYW1BUElFbmFibGVkKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpc1dy
aXRhYmxlU3RyZWFtQVBJRW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53cml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdoZW5TaWduYWxBYm9ydGVkKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHdoZW5TaWduYWxBYm9ydGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChjYWxsRnJhbWUpOwog
ICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaAppbmRleCA5ZTFiNWMwMDhmNDRmOWFhMTIz
MWFiNThmZmI5NjI0OWM5NzM1YTg2Li5iMWQyN2Q0NWJjOTAyZWNlNTY1YTYzMjA4ZDg1NjcwYzE2
ODcxNzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJh
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oCkBA
IC03Myw3ICs3Myw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEpTV3JhcHBlciwgdHlwZW5hbWUgSXRl
cmF0b3JUcmFpdHM+IGNsYXNzIEpTRE9NSXRlcmF0b3JQcm90b3R5CiAgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG5leHQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CisgICAgc3RhdGljIEpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIG5leHQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CiAKIHByaXZhdGU6CiAgICAgSlNET01JdGVyYXRvclBy
b3RvdHlwZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpIHsgfQpAQCAtMjQ2LDcgKzI0Niw3IEBAIEpTQzo6SlNWYWx1ZSBKU0RPTUl0
ZXJhdG9yQmFzZTxKU1dyYXBwZXIsIEl0ZXJhdG9yVHJhaXRzPjo6bmV4dChKU0M6OkpTR2xvYmFs
T2JqCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEpTV3JhcHBlciwgdHlwZW5hbWUgSXRlcmF0b3JU
cmFpdHM+Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNET01JdGVyYXRvclBy
b3RvdHlwZTxKU1dyYXBwZXIsIEl0ZXJhdG9yVHJhaXRzPjo6bmV4dChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU0RPTUl0ZXJhdG9yUHJvdG90eXBl
PEpTV3JhcHBlciwgSXRlcmF0b3JUcmFpdHM+OjpuZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBKU0M6OlZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUxl
Z2FjeUZhY3RvcnlGdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01M
ZWdhY3lGYWN0b3J5RnVuY3Rpb24uaAppbmRleCBiYzk4ODY0MDdjOTA4YTJiY2UzYTYzNDMxMDc2
NzQwNjMwYzVhYzk1Li43ODMxYmYyODllZjY4NDU5ZTczZjJmMzk1MDM5MWU4YjM4YzFiOTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUxlZ2FjeUZhY3RvcnlG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTGVnYWN5RmFj
dG9yeUZ1bmN0aW9uLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFz
cz4gY2xhc3MgSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSlNET00K
ICAgICAvLyBVc3VhbGx5IGRlZmluZWQgZm9yIGVhY2ggc3BlY2lhbGl6YXRpb24gY2xhc3MuCiAg
ICAgdm9pZCBpbml0aWFsaXplUHJvcGVydGllcyhKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3Qm
KSB7IH0KICAgICAvLyBNdXN0IGJlIGRlZmluZWQgZm9yIGVhY2ggc3BlY2lhbGl6YXRpb24gY2xh
c3MuCi0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CisgICAgc3RhdGljIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIGNvbnN0cnVjdChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIH07CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEpTQ2xhc3M+IGlubGluZSBKU0RPTUxlZ2FjeUZhY3RvcnlGdW5jdGlvbjxKU0NsYXNzPiog
SlNET01MZWdhY3lGYWN0b3J5RnVuY3Rpb248SlNDbGFzcz46OmNyZWF0ZShKU0M6OlZNJiB2bSwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cAppbmRleCA3NWFiMjU5ZmZmZmNkOWFhNDY5Y2U4ZmFhMDM2MDJiMDE2YTI5ZmI3Li5jMDIxYTVj
Y2MwOGE2OWY1Y2Y5Y2IxYzA0YzM4ODRjZWFhYmEzYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC02Myw4ICs2Myw4IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvblNob3dNb2RhbERpYWxv
ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJ
bnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNlKTsKIAogdm9pZCBKU0RP
TVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnZpc2l0QWRkaXRpb25hbENoaWxk
cmVuKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogfQogCiAjaWYgRU5BQkxFKFVTRVJfTUVTU0FHRV9I
QU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktpdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdp
bmRvd1dlYktpdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01X
aW5kb3codm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKQEAgLTYzMyw3ICs2MzMsNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU0RPTVdpbmRvdyogSURMT3BlcmF0aW9uPEpTRE9NV2luZG93
Pjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiB0b0pTRE9NV2luZG93KGxleGlj
YWxHbG9iYWxPYmplY3Qudm0oKSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpLnRvVGhpcygmbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpFQ01BTW9kZTo6c2xvcHB5KCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJh
c2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uT3BlbkRh
dGFiYXNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNET01XaW5kb3c+OjpjYWxsPGpzRE9N
V2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZUJvZHk+KCpnbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJvcGVuRGF0YWJhc2UiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCmluZGV4IDIxMTQ4NzE3
YzM1MzgxODRlYmY5MTViYmQzNGE4YjJjMWRmNzdkOGMuLmY3YWJmNDI5NDMxM2E1M2QxOTkxZmYx
YTAzMTJhNzc5ZjJiYmRhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcApAQCAtMzUsNiArMzUsOCBAQCB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAvLyBKYXZhU2NyaXB0IGFjY2VzcyB0byBwbHVnLWlu
LWV4cG9ydGVkIHByb3BlcnRpZXMgZm9yIEpTSFRNTEFwcGxldEVsZW1lbnQsIEpTSFRNTEVtYmVk
RWxlbWVudCBhbmQgSlNIVE1MT2JqZWN0RWxlbWVudC4KIAorc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY2FsbFBsdWdpbik7CisKIEluc3RhbmNlKiBwbHVnaW5JbnN0YW5jZShIVE1M
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICAvLyBUaGUgcGx1Z2luIGVsZW1lbnQgaG9sZHMgYW4g
b3duaW5nIHJlZmVyZW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0by4KQEAgLTE0Niw3ICsxNDgsNyBA
QCBib29sIHBsdWdpbkVsZW1lbnRDdXN0b21QdXQoSlNIVE1MRWxlbWVudCogZWxlbWVudCwgSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUGx1Z2luKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsUGx1Z2luLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU0hUTUxFbGVtZW50KiBlbGVtZW50
ID0ganNDYXN0PEpTSFRNTEVsZW1lbnQqPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmNwcAppbmRleCA5ODVi
M2RiMGQzZjE2MTAwMGYxZmFkOWI0MzI5NzhlNTQ2MjNhZDYzLi45NDg1NTljZDM5N2MwYTEyMDlk
NGUxNjljMzAwNWNjZTAyNDMwOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1N0cnVjdHVyZWRDbG9uZS5jcHAKQEAgLTYyLDE3ICs2MiwxNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY2xvbmVBcnJheUJ1ZmZlckltcGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0FycmF5QnVmZmVyOjpjcmVhdGUo
bGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKSwgbGV4aWNhbEdsb2JhbE9iamVjdC0+YXJyYXlCdWZm
ZXJTdHJ1Y3R1cmUoQXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdCksIEFycmF5QnVmZmVy
Ojp0cnlDcmVhdGUoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNsb25lQXJyYXlCdWZmZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2xvbmVBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY2xvbmVBcnJheUJ1ZmZl
ckltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIENsb25lTW9kZTo6UGFydGlhbCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIGNsb25lQXJyYXlCdWZmZXJJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBDbG9uZU1v
ZGU6OkZ1bGwpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cnVjdHVyZWRD
bG9uZUFycmF5QnVmZmVyVmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJ1Y3R1cmVkQ2xvbmVB
cnJheUJ1ZmZlclZpZXcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CiAgICAgQVNTRVJUKGNhbGxG
cmFtZS0+YXJndW1lbnRDb3VudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3Ry
dWN0dXJlZENsb25lLmgKaW5kZXggZDAwMzY3MzYzMjM0YzljYTAzNmI5MDE2OWNmNjljOTQxOWY2
MWQ4Mi4uNzY3MTFiMDE0Nzk1YjNiMmU1NDhkYmUyYzkyZDkyMDJkNjVhNmEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJlZENsb25lLmgKQEAgLTM0LDggKzM0LDgg
QEAgdXNpbmcgRW5jb2RlZEpTVmFsdWUgPSBpbnQ2NF90OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjbG9uZUFycmF5QnVmZmVyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVyVmlldyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2xvbmVBcnJheUJ1
ZmZlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cnVjdHVyZWRDbG9uZUFycmF5QnVm
ZmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RydWN0dXJlZENsb25lQXJyYXlCdWZm
ZXJWaWV3KTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBiMTE3NGI4OWMxYmIx
ZjcxOTIzOWNiNTNmZGM2ZGI2MTU0NDc1Y2VhLi5lNzQyY2VhZjJmOGNjMzllNjhiMTgyMzM1N2I1
ZjVjM2Y4NWUyNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMzI1NCw3ICszMjU0LDcgQEAgc3ViIEdlbmVyYXRlSGVh
ZGVyCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29uZGl0aW9uYWxBdHRy
aWJ1dGUgPyAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRy
aWJ1dGVWYWx1ZSgkY29uZGl0aW9uYWxBdHRyaWJ1dGUpIDogdW5kZWY7CiAgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZnVuY3Rpb25OYW1lID0gR2V0RnVuY3Rp
b25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRvcGVyYXRpb24pOwotICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAk
e2Z1bmN0aW9uTmFtZX0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgfQogCkBA
IC0zMjcwLDEwICszMjcwLDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgbXkg
JGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxT
dHJpbmcoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lm
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAg
ICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJK
U0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7Z2V0
dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke3NldHRlcn0o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIH0KQEAgLTQy
NjIsNyArNDI2Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBt
eSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29uZGl0aW9uYWxBdHRyaWJ1dGUgPyAkY29kZUdlbmVy
YXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVWYWx1ZSgkY29uZGl0
aW9uYWxBdHRyaWJ1dGUpIDogdW5kZWY7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAg
ICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlLCAk
Y2xhc3NOYW1lLCAkb3BlcmF0aW9uKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSk7
XG4iKTsKICAgICAgICAgICAgIGlmICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntE
T01KSVR9KSB7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NSklUSURMVHlwZS5o
In0gPSAxOwogICAgICAgICAgICAgICAgIG15ICRuYW1lT2ZGdW5jdGlvbldpdGhvdXRUeXBlQ2hl
Y2sgPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkZnVuY3Rpb25OYW1lKSAuICJXaXRob3V0
VHlwZUNoZWNrIjsKQEAgLTQyODYsMTAgKzQyODYsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KIAogICAgICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JHZXR0ZXIgPSAianMiIC4gJGludGVyZmFj
ZU5hbWUgLiAiQ29uc3RydWN0b3IiOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJK
U0M6OkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JHZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICR7Y29uc3RydWN0b3JHZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKIAogICAgICAgICAgICAgbXkgJGNv
bnN0cnVjdG9yU2V0dGVyID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NvbnN0cnVjdG9yU2V0
dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBK
SVRfT1BFUkFUSU9OICR7Y29uc3RydWN0b3JTZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAgICAgICB9
CiAKICAgICAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0
ZXN9KSB7CkBAIC00Mjk5LDcgKzQyOTksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OICR7Z2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0
dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkcmVhZFdyaXRlQ29uZGl0aW9uYWwgPSAk
YXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbGx5UmVhZFdyaXRlfTsK
ICAgICAgICAgICAgICAgICBpZiAoJHJlYWRXcml0ZUNvbmRpdGlvbmFsKSB7CkBAIC00MzA3LDcg
KzQzMDcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke3JlYWRXcml0ZUNvbmRpdGlvbmFsU3RyaW5nfVxu
Iik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRB
dHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwot
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke3NldHRlcn0oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
O1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpJVF9PUEVS
QVRJT04gJHtzZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiI2VuZGlmXG4iKSBpZiAkcmVhZFdyaXRlQ29uZGl0aW9uYWw7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRp
dGlvbmFsU3RyaW5nOwpAQCAtNDg3MCw3ICs0ODcwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CiAg
ICAgICAgIG15ICRjb25zdHJ1Y3RvckdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJD
b25zdHJ1Y3RvciI7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1
ZSAke2NvbnN0cnVjdG9yR2V0dGVyfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OICR7Y29uc3Ry
dWN0b3JHZXR0ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpO1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
O1xuIik7CkBAIC00ODkwLDcgKzQ4OTAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgIG15ICRjb25zdHJ1Y3RvclNldHRlciA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFt
ZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7
Y29uc3RydWN0b3JTZXR0ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke2NvbnN0
cnVjdG9yU2V0dGVyfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTtcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTtcbiIpOwpAQCAtNTMzOCw3ICs1MzM4LDcgQEAgc3ViIEdlbmVyYXRl
QXR0cmlidXRlR2V0dGVyVHJhbXBvbGluZURlZmluaXRpb24KICAgICAgICAgcHVzaChAdGVtcGxh
dGVQYXJhbWV0ZXJzLCAiQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydCIpOwogICAgIH0K
ICAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSAke2F0dHJpYnV0
ZUdldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHthdHRyaWJ1dGVHZXR0ZXJOYW1l
fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4i
KTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIElETEF0dHJpYnV0ZTwke2Ns
YXNzTmFtZX0+Ojoke2NhbGxBdHRyaWJ1dGVHZXR0ZXJOYW1lfTwiIC4gam9pbigiLCAiLCBAdGVt
cGxhdGVQYXJhbWV0ZXJzKSAuICI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIFwi
IiAuICRhdHRyaWJ1dGUtPm5hbWUgLiAgIlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIn1cblxuIik7CkBAIC01NTI3LDcgKzU1MjcsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVT
ZXR0ZXJUcmFtcG9saW5lRGVmaW5pdGlvbgogICAgIHB1c2goQHRlbXBsYXRlUGFyYW1ldGVycywg
JGF0dHJpYnV0ZVNldHRlckJvZHlOYW1lKTsKICAgICBwdXNoKEB0ZW1wbGF0ZVBhcmFtZXRlcnMs
ICJDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHkiKSBpZiAkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lMZW5pZW50VGhpc307CiAgICAgCi0gICAgcHVzaChA
JG91dHB1dEFycmF5LCAiYm9vbCAke2F0dHJpYnV0ZVNldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wg
SklUX09QRVJBVElPTiAke2F0dHJpYnV0ZVNldHRlck5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSlcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSURMQXR0cmlidXRlPCR7Y2xhc3NOYW1l
fT46OiR7Y2FsbEF0dHJpYnV0ZVNldHRlck5hbWV9PCIgLiBqb2luKCIsICIsIEB0ZW1wbGF0ZVBh
cmFtZXRlcnMpIC4gIj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCBcIiIgLiAkYXR0cmlidXRlLT5uYW1lIC4gIlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIn1cblxuIik7CkBAIC01NTc4LDcgKzU1NzgsNyBAQCBzdWIgR2VuZXJhdGVPcGVy
YXRpb25UcmFtcG9saW5lRGVmaW5pdGlvbgogICAgIHB1c2goQGNhbGxGdW5jdGlvblRlbXBsYXRl
QXJndW1lbnRzLCAkZnVuY3Rpb25Cb2R5TmFtZSk7CiAgICAgcHVzaChAY2FsbEZ1bmN0aW9uVGVt
cGxhdGVBcmd1bWVudHMsICJDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0IikgaWYgKCRv
cGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1ByaXZhdGVJZGVudGlmaWVyfSBhbmQgbm90
ICRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1YmxpY0lkZW50aWZpZXJ9KTsKIAot
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtm
dW5jdGlvbk5hbWV9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSlcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTigke2Z1bmN0aW9uTmFtZX0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKVxuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiAke2lk
bE9wZXJhdGlvblR5cGV9PCR7Y2xhc3NOYW1lfT46OiR7Y2FsbEZ1bmN0aW9uTmFtZX08IiAuIGpv
aW4oIiwgIiwgQGNhbGxGdW5jdGlvblRlbXBsYXRlQXJndW1lbnRzKSAuICI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCBcIiIgLiAkb3BlcmF0aW9uLT5uYW1lIC4gIlwiKTtcbiIp
OwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CkBAIC01ODc5LDcgKzU4NzksNyBA
QCBzdWIgR2VuZXJhdGVEZWZhdWx0VG9KU09OT3BlcmF0aW9uRGVmaW5pdGlvbgogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIlxuIik7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWU7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpXG4iKTsK
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKUyR7aW50ZXJmYWNlTmFtZX0+OjpjYWxsPCR7ZnVu
Y3Rpb25OYW1lfUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCBcInRvSlNP
TlwiKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cbiIpOwpAQCAtNTkyNyw3ICs1
OTI3LDcgQEAgc3ViIEdlbmVyYXRlTGVnYWN5Q2FsbGVyRGVmaW5pdGlvbnMKIAogICAgICAgICBt
eSAkb3ZlcmxvYWRGdW5jdGlvblByZWZpeCA9ICJjYWxsJHtjbGFzc05hbWV9IjsKIAotICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7b3Zl
cmxvYWRGdW5jdGlvblByZWZpeH0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTigke292ZXJsb2FkRnVuY3Rpb25QcmVmaXh9LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSlc
biIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7XG4i
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pO1xuIik7CkBAIC01OTU4LDcgKzU5NTgsOCBAQCBzdWIgR2Vu
ZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0aW9uCiAgICAgaWYgKCRpc092ZXJsb2FkZWQpIHsKICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAic3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBj
YWxsJHtjbGFzc05hbWV9JG9wZXJhdGlvbi0+e292ZXJsb2FkSW5kZXh9KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIpOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGwke2NsYXNzTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgInN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGwke2NsYXNz
TmFtZX0pO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjYWxsJHtjbGFzc05hbWV9LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSlcbiIpOwogICAgIH0KIAogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIntcbiIpOwpAQCAtNjg2Niw2ICs2ODY3LDcgQEAgc3ViIEdlbmVyYXRl
SXRlcmFibGVEZWZpbml0aW9uCiB9OwogCiB1c2luZyAke2l0ZXJhdG9yUHJvdG90eXBlTmFtZX0g
PSBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPCR7Y2xhc3NOYW1lfSwgJHtpdGVyYXRvclRyYWl0c05h
bWV9PjsKK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKCR7aXRlcmF0b3JQcm90b3R5cGVOYW1l
fU5leHQsICR7aXRlcmF0b3JQcm90b3R5cGVOYW1lfTo6bmV4dCk7CiAKIHRlbXBsYXRlPD4KIGNv
bnN0IEpTQzo6Q2xhc3NJbmZvICR7aXRlcmF0b3JOYW1lfUJhc2U6OnNfaW5mbyA9IHsgIiR7dmlz
aWJsZUludGVyZmFjZU5hbWV9IEl0ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2l0ZXJhdG9yTmFtZX1CYXNlKSB9OwpAQCAtNjkw
Niw3ICs2OTA4LDcgQEAgRU5ECiAgICAgICAgIH0KIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIDw8RU5EKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9u
TmFtZX0oSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTigke2Z1bmN0aW9uTmFt
ZX0sIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPCR7Y2xhc3NOYW1l
fT46OmNhbGw8JHtmdW5jdGlvbk5hbWV9Q2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIiR7cHJvcGVydHlOYW1lfSIpOwogfQpAQCAtNzY5OCw3ICs3NzAwLDcgQEAgc3Vi
IEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9ucwogCiAgICAgICAgICAgICBteSAkb3Zlcmxv
YWRGdW5jdGlvblByZWZpeCA9ICJjb25zdHJ1Y3Qke2NsYXNzTmFtZX0iOwogCi0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgInRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTExfQVRUUklCVVRFUyAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pO1xuIik7CkBAIC03NzA2LDcgKzc3MDgsOCBAQCBz
dWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb25zCiAKICAgICAgICAgICAgIEdlbmVyYXRl
T3ZlcmxvYWREaXNwYXRjaGVyKEB7JGludGVyZmFjZS0+Y29uc3RydWN0b3JzfVswXSwgJGludGVy
ZmFjZSwgJG92ZXJsb2FkRnVuY3Rpb25QcmVmaXgsICIiLCAibGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lIik7CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIkpTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKCR7Y2xhc3NOYW1lfUNv
bnN0cnVjdG9yQ29uc3RydWN0LCAke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTtc
blxuIik7CiAgICAgICAgIH0gZWxzaWYgKEBjb25zdHJ1Y3RvcnMgPT0gMSkgewogICAgICAgICAg
ICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oJG91dHB1dEFycmF5LCAkY2xhc3NOYW1l
LCAkcHJvdG9DbGFzc05hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFtZSwgJGludGVyZmFjZSwgJGdl
bmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24sICRjb25zdHJ1Y3RvcnNbMF0pOwogICAgICAg
ICB9IGVsc2UgewpAQCAtNzcyOCwxNyArNzczMSwxOCBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24KIAogICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGludGVyZmFjZSkpIHsKICAg
ICAgICAgaWYgKEhhc0N1c3RvbUNvbnN0cnVjdG9yKCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJ0ZW1wbGF0ZTw+IEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUp
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInRlbXBsYXRlPD4gSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgJHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX06OmNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBB
U1NFUlQoY2FsbEZyYW1lKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiBjb25zdHJ1Y3Qke2NsYXNzTmFtZX0obGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7
CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX1Db25zdHJ1Y3QsICR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3Qp
O1xuXG4iKTsKICAgICAgICAgIH0gZWxzaWYgKCFIYXNDdXN0b21Db25zdHJ1Y3RvcigkaW50ZXJm
YWNlKSAmJiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xlZ2FjeUZhY3RvcnlG
dW5jdGlvbn0gfHwgJGdlbmVyYXRpbmdMZWdhY3lGYWN0b3J5RnVuY3Rpb24pKSB7CiAgICAgICAg
ICAgICBteSAkaXNPdmVybG9hZGVkID0gJG9wZXJhdGlvbi0+e292ZXJsb2Fkc30gJiYgQHskb3Bl
cmF0aW9uLT57b3ZlcmxvYWRzfX0gPiAxOwogICAgICAgICAgICAgaWYgKCRpc092ZXJsb2FkZWQp
IHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJzdGF0aWMgaW5saW5lIEVu
Y29kZWRKU1ZhbHVlIGNvbnN0cnVjdCR7Y2xhc3NOYW1lfSRvcGVyYXRpb24tPntvdmVybG9hZElu
ZGV4fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpXG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7
Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMX0FUVFJJQlVURVMgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmNvbnN0cnVjdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7
CkBAIC03NzgzLDcgKzc3ODcsMTEgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9u
CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc2V0U3ViY2xhc3NTdHJ1Y3R1
cmVJZk5lZWRlZDwke2ltcGxUeXBlfT4obGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBh
c09iamVjdChqc1ZhbHVlKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7XG4iKTsKICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFs
dWUpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOworICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuIik7CisgICAgICAgICAgICBpZiAoISRp
c092ZXJsb2FkZWQpIHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0Nf
QU5OT1RBVEVfSE9TVF9GVU5DVElPTigke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfUNvbnN0cnVjdCwg
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmNvbnN0cnVjdCk7XG4iKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIlxuIik7CiAgICAgICAgIH0KICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRE9NV2luZG93LmNwcAppbmRleCA2N2E0YzY1MGE4NGE4ZDQ2MDk0MDViZjVmZGNkNWRhZjZk
YjViZjQwLi5iZWUzNjg1ODEyOWNiZDJjMDQwNjcwZmUwZDY4NjBmN2JjMzZjNjIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdp
bmRvdy5jcHAKQEAgLTUxLDIwICs1MSwyMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5k
b3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE9i
amVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
d0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9N
V2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU0RPTVdpbmRv
d0NvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNET01XaW5k
b3c+OwogCkBAIC0xNjYsNyArMTY2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNET01XaW5kb3cq
IElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGwKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTc2LDcg
KzE3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU0RPTVdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTRE9N
V2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xOTUsNyArMTk1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICByZXR1
cm4gSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRvd0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93RXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKTsKIH0KQEAgLTIwNyw3ICsy
MDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3RvclNldHRlcihKU0dsbwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKSwgc3RybGVuKCJFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3ciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd0V4
cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dv
cmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6c2V0PHNldEpTRE9N
V2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkV4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvdyIpOwogfQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JHZXR0ZXIoSlNH
CiAgICAgcmV0dXJuIEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
RE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxq
c0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZSIpOwogfQpAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdp
bmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlIiksIHN0cmxlbigiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIik7CiB9CkBAIC0yNDEsNyAr
MjQxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2UKICAgICByZXR1cm4gSlNUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RP
TVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpz
RE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25z
dHJ1Y3RvclNlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkZp
bHRlcmVkQnlFeHBvc2VkIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2lu
ZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3Nl
ZENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBAIC0y
NjQsNyArMjY0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4gSlNUZXN0
Tm9kZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0
aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0Tm9kZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93VGVzdE5v
ZGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3ROb2RlIik7CiB9CkBAIC0yNzYsNyArMjc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5vZGUiKSwgc3RybGVu
KCJUZXN0Tm9kZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTRE9NV2luZG93VGVzdE5vZGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2lu
ZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5vZGUiKTsKIH0K
QEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0
T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiBK
U1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdE9iamVj
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5k
b3dUZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0T2JqZWN0Iik7CiB9CkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTRE9NV2luZG93VGVzdE9iamVjdENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXgKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9i
amVjdCIpLCBzdHJsZW4oIlRlc3RPYmplY3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU0RP
TVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RPYmplY3QiKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JH
ZXR0ZXIoSlNHbAogICAgIHJldHVybiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCAmdGhpc09iamVjdCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+
OjpnZXQ8anNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50Iik7CiB9CkBAIC0zMjIsNyArMzIyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0dGVyKEpTR2wK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudCIpLCBzdHJsZW4oIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCBmYWQzZDI3ZmZlZmJhMDFj
YTY0MTlmMjMwNDAwYmIxZTQ3MTA1MjQ2Li5mMjI0MDRmOTNkNjYzOTRkNmFiYjBjODVjZmJmZDY3
N2E1ODMzMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1
c2luZyBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPjsKIApA
QCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUgSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6
Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIGdl
dERPTUNvbnN0cnVjdG9yPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcj4o
dm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE2LDcgKzExNiw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
c2V0SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RlZGljYXRlZFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2VkVG9Xb3Jr
ZXJBbmRXaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcAppbmRleCAwYjgzZmI2NTNlODk0ZGNjNWIx
YWRjZjdhOTU5MWM0N2QyZjAwODczLi41ODlmNmMwMDg3MGYyYzVjYTE1ZjkzMzAwYTgxYmVkZjBi
MTg5YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAKQEAg
LTg3LDEyICs4NywxMiBAQCBKU0M6OkpTT2JqZWN0KiBjb252ZXJ0RGljdGlvbmFyeVRvSlMoSlND
OjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSgogCiAvLyBGdW5jdGlvbnMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKTsKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTI4LDcgKzEyOCw3IEBAIFNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90
eXBlLCBKU0V4cG9zCiAKIHVzaW5nIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yPEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93PjsKIAotdGVt
cGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0
cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xNDMsNiArMTQzLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3I6OmMKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpW
TSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yMTgs
NyArMjE5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3cq
IElETE9wZXJhdGlvbjxKU0V4cG9zZWRUb1dvcmtlckFuZFcKICAgICByZXR1cm4ganNEeW5hbWlj
Q2FzdDxKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIyOCw3ICsyMjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjUxLDcgKzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9u
RG9TCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETERpY3Rpb25hcnk8RXhwb3NlZFRvV29ya2VyQW5kV2luZG93OjpEaWN0Pj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5kb1NvbWV0
aGluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGVGdW5jdGlv
bkRvU29tZXRoaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Pjo6Y2FsbDxqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlw
ZUZ1bmN0aW9uRG9Tb21ldGhpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImRvU29tZXRoaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCmluZGV4IDNjYzczODA3ZDIyMWJkYjNmNTU4
NGI3ODI3YWQ5YzAxYmM4YjYwYmYuLjE3YWMwMGM3ODJiM2M4MzZmNjU5ZTgwZDkyY2YxZWQ3ZTU1
MTUxY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU01hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU01hcExpa2UuY3BwCkBAIC01MCwxNSArNTAsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0
dHJpYnV0ZXMKIApAQCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHkoSlNDOjpKU0dsb2JhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZEdldFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldCIpOwog
fQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0dsb2JhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMjcx
LDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJp
ZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U01hcExpa2U+OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMjg1LDcg
KzI4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNUb01h
cExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5j
dGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+Ojpj
YWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVl
c0JvZHkoSlNDOjpKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU01hcExpa2U+OjpjYWxsPGpzTWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShK
U0M6OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46
OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CkBAIC0zNDAsNyArMzQwLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uU2V0Qm9keShKU0M6OkpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkU2V0VG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpLCBX
VEZNb3ZlKHZhbHVlKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNldCIpOwogfQpAQCAtMzU2LDcgKzM1
Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6OkpTR2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KQEAgLTM3
NSw3ICszNzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5KEpTQzo6SlNHbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxl
dGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
LCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU01hcExpa2U+OjpjYWxsPGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVs
ZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAppbmRleCA2MjVhZGJjMjc0
NWRhMzlmZTkzZmM4ZmRmMDA4OGY5NTI5YTY1Y2M5Li45OGI1MzY0ZmQyYmZiZTczNDU5YmYyY2Ji
YjU5NzAyZDc1ZDllMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUu
Y3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU1BhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZTxKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlPjsKIApAQCAtMTA2LDcgKzEwNiw3IEBA
IEpTVmFsdWUgSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZt
LCBjb25zdCBKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNQ
YWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Bh
aW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xMTYsNyArMTE2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNQYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmEKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA0NDZiYTM5MDdmNzlmOWM5OTg1NDJjODg5MTc1MmRmOTI3YWFmZDBlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw0MTAgKzAsMCBAQAotLyoKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2Vi
S2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKLQotICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSlNSZWFkT25seU1hcExpa2UuaCIKLQotI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgotI2luY2x1ZGUg
IkpTRE9NQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAi
SlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZl
cnRBbnkuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oIgotI2luY2x1ZGUgIkpTRE9NTWFwTGlrZS5oIgotI2luY2x1
ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCi0jaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKLSNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5OYW1lcy5oPgotI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Ci0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSGVhcEFuYWx5emVyLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
SW5saW5lcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxlT2JqZWN0
SGVhcENlbGxUeXBlLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Vic3BhY2VJbmxpbmVz
Lmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJlcGFy
YXRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLS8vIEZ1bmN0aW9ucwotCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci0KLS8vIEF0dHJp
YnV0ZXMKLQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTUmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLQotY2xhc3MgSlNS
ZWFkT25seU1hcExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKLXB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0gSlNDOjpKU05vbkZpbmFsT2JqZWN0Owot
ICAgIHN0YXRpYyBKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSogY3JlYXRlKEpTQzo6Vk0mIHZt
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgIHsKLSAgICAgICAgSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUqIHB0ciA9IG5l
dyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNSZWFkT25seU1hcExpa2VQcm90b3R5cGU+
KHZtLmhlYXApKSBKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgcmV0
dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBERUNMQVJFX0lORk87Ci0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ2VsbFR5cGUsIEpTQzo6U3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIEpTQzo6SXNvU3Vi
c3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgU1RBVElDX0FT
U0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUsIEJh
c2UpOwotICAgICAgICByZXR1cm4gJnZtLnBsYWluT2JqZWN0U3BhY2U7Ci0gICAgfQotICAgIHN0
YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0
LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEpTUmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICAgICAgOiBKU0M6OkpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVy
ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci19
OwotU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNSZWFkT25seU1hcExpa2VQ
cm90b3R5cGUsIEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlOjpCYXNlKTsKLQotdXNpbmcgSlNS
ZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3Rh
YmxlPEpTUmVhZE9ubHlNYXBMaWtlPjsKLQotdGVtcGxhdGU8PiBKU1ZhbHVlIEpTUmVhZE9ubHlN
YXBMaWtlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0o
dm0pOwotICAgIHJldHVybiBnbG9iYWxPYmplY3QuZnVuY3Rpb25Qcm90b3R5cGUoKTsKLX0KLQot
dGVtcGxhdGU8PiB2b2lkIEpTUmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3I6OmluaXRpYWxpemVQ
cm9wZXJ0aWVzKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAg
ICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNSZWFkT25seU1h
cExpa2U6OnByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKHZtLCAiUmVhZE9ubHlNYXBMaWtlIl9z
KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5n
dGgsIGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQotdGVtcGxhdGU8PiBjb25zdCBDbGFz
c0luZm8gSlNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiUmVhZE9ubHlN
YXBMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1JlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKSB9OwotCi0vKiBIYXNoIHRhYmxlIGZv
ciBwcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAgeyAiY29uc3RydWN0b3IiLCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzUmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1JlYWRPbmx5TWFwTGlrZUNv
bnN0cnVjdG9yKSB9IH0sCi0gICAgeyAic2l6ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJl
YWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzUmVhZE9ubHlNYXBMaWtlU2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJnZXQiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxSYXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdl
dCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJoYXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyksIChp
bnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKSwg
KGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpLCAoaW50
cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
Qzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZl
RnVuY3Rpb24+KGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAoaW50
cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCi19OwotCi1jb25zdCBDbGFz
c0luZm8gSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlJlYWRPbmx5TWFw
TGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUpIH07Ci0KLXZvaWQgSlNSZWFkT25seU1hcExp
a2VQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7Ci0gICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1JlYWRPbmx5TWFw
TGlrZTo6aW5mbygpLCBKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhp
cyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwg
Z2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVi
bGljTmFtZSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtKSk7Ci0gICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7
Ci19Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1JlYWRPbmx5TWFwTGlrZTo6c19pbmZvID0geyAiUmVh
ZE9ubHlNYXBMaWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU1JlYWRPbmx5TWFwTGlrZSkgfTsKLQotSlNSZWFkT25seU1hcExpa2U6OkpT
UmVhZE9ubHlNYXBMaWtlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0LCBSZWY8UmVhZE9ubHlNYXBMaWtlPiYmIGltcGwpCi0gICAgOiBKU0RPTVdy
YXBwZXI8UmVhZE9ubHlNYXBMaWtlPihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShp
bXBsKSkKLXsKLX0KLQotdm9pZCBKU1JlYWRPbmx5TWFwTGlrZTo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBBU1NFUlQoaW5oZXJp
dHModm0sIGluZm8oKSkpOwotCi0gICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPEFj
dGl2ZURPTU9iamVjdCwgUmVhZE9ubHlNYXBMaWtlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90
IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBj
bGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKLQotfQotCi1KU09iamVjdCogSlNS
ZWFkT25seU1hcExpa2U6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBl
OjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sICZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90
b3R5cGUoKSkpOwotfQotCi1KU09iamVjdCogSlNSZWFkT25seU1hcExpa2U6OnByb3RvdHlwZShW
TSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIGdl
dERPTVByb3RvdHlwZTxKU1JlYWRPbmx5TWFwTGlrZT4odm0sIGdsb2JhbE9iamVjdCk7Ci19Ci0K
LUpTVmFsdWUgSlNSZWFkT25seU1hcExpa2U6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3Qg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NQ29uc3Ry
dWN0b3I8SlNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKLX0KLQotdm9pZCBKU1JlYWRPbmx5TWFw
TGlrZTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKLXsKLSAgICBKU1JlYWRPbmx5TWFwTGlr
ZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oY2VsbCk7Ci0g
ICAgdGhpc09iamVjdC0+SlNSZWFkT25seU1hcExpa2U6On5KU1JlYWRPbmx5TWFwTGlrZSgpOwot
fQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1JlYWRPbmx5TWFwTGlrZSogSURMQXR0cmlidXRlPEpT
UmVhZE9ubHlNYXBMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQotewotICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTUmVhZE9ubHlNYXBMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgSlNSZWFk
T25seU1hcExpa2UqIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46OmNhc3QoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSYgY2FsbEZyYW1lKQotewot
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7Ci19Ci0KLUVuY29k
ZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQotewotICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJv
dG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSo+KHZtLCBK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUp
KQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTUmVhZE9ubHlNYXBMaWtl
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7Ci19Ci0KLWJvb2wgc2V0SlNSZWFkT25seU1hcExpa2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFt
aWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKLSAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1
Y3RvcgotICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y29uc3RydWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKLX0KLQotc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNSZWFkT25seU1hcExpa2UmIHRoaXNPYmplY3Qp
Ci17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzT2JqZWN0KSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNSZWFkT25seU1hcExpa2VTaXpl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTUmVhZE9u
bHlNYXBMaWtlPjo6Z2V0PGpzUmVhZE9ubHlNYXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXRCb2R5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBj
YWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0o
Y2FsbEZyYW1lKTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkg
PCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+
dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBrZXkgPSBjb252ZXJ0PElETERPTVN0cmlu
Zz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRHZXRUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRU
aGlzLCBXVEZNb3ZlKGtleSkpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImdldCIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURM
T3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
LXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIGlmIChV
TkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVTdGls
bEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsK
LSAgICBhdXRvIGtleSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5
TWFwTGlrZT46OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTUmVhZE9u
bHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwot
ICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9NYXBM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7Ci19
Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25s
eU1hcExpa2U+OjpjYWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
UmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2Nv
cGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9N
YXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25s
eU1hcExpa2U+OjpjYWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNSZWFk
T25seU1hcExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvTWFw
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwot
fQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25s
eU1hcExpa2U+OjpjYWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwotfQotCi1z
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxK
U1JlYWRPbmx5TWFwTGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0
byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Nj
b3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBpZiAoVU5MSUtFTFkoY2Fs
bEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3Bl
IGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBj
YWxsYmFjayA9IGNvbnZlcnQ8SURMQW55PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQw
LnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb01hcExpa2UoKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7Ci19
Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFkT25s
eU1hcExpa2U+OjpjYWxsPGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7Ci19Ci0K
LUpTQzo6SXNvU3Vic3BhY2UqIEpTUmVhZE9ubHlNYXBMaWtlOjpzdWJzcGFjZUZvckltcGwoSlND
OjpWTSYgdm0pCi17Ci0gICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xp
ZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOwotICAgIGF1dG8mIHNwYWNlcyA9IGNsaWVudERhdGEu
c3Vic3BhY2VzKCk7Ci0gICAgaWYgKGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JS
ZWFkT25seU1hcExpa2UuZ2V0KCkpCi0gICAgICAgIHJldHVybiBzcGFjZTsKLSAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTUmVh
ZE9ubHlNYXBMaWtlPiB8fCAhSlNSZWFkT25seU1hcExpa2U6Om5lZWRzRGVzdHJ1Y3Rpb24pOwot
ICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9i
amVjdCwgSlNSZWFkT25seU1hcExpa2U+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclJl
YWRPbmx5TWFwTGlrZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklU
KHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNSZWFk
T25seU1hcExpa2UpOwotICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JSZWFk
T25seU1hcExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2
bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1JlYWRPbmx5TWFwTGlrZSk7Ci0g
ICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclJlYWRPbmx5TWFwTGlrZS5nZXQo
KTsKLUlHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCi1JR05PUkVfV0FS
TklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKLSAgICBpZiAoJkpTUmVhZE9ubHlN
YXBMaWtlOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzICE9ICZKU0M6OkpTQ2VsbDo6dmlzaXRPdXRw
dXRDb25zdHJhaW50cykKLSAgICAgICAgY2xpZW50RGF0YS5vdXRwdXRDb25zdHJhaW50U3BhY2Vz
KCkuYXBwZW5kKHNwYWNlKTsKLUlHTk9SRV9XQVJOSU5HU19FTkQKLUlHTk9SRV9XQVJOSU5HU19F
TkQKLSAgICByZXR1cm4gc3BhY2U7Ci19Ci0KLXZvaWQgSlNSZWFkT25seU1hcExpa2U6OmFuYWx5
emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikKLXsKLSAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oY2VsbCk7Ci0gICAgYW5h
bHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQo
KSk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAg
ICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwotICAgIEJhc2U6OmFuYWx5
emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKLX0KLQotYm9vbCBKU1JlYWRPbmx5TWFwTGlrZU93bmVy
Ojppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhh
bmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29uKQot
ewotICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwotICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9yKTsK
LSAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQg
SlNSZWFkT25seU1hcExpa2VPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgYXV0byoganNSZWFkT25seU1hcExpa2Ug
PSBzdGF0aWNfY2FzdDxKU1JlYWRPbmx5TWFwTGlrZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgp
KTsKLSAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250
ZXh0KTsKLSAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzUmVhZE9ubHlNYXBMaWtlLT53cmFw
cGVkKCksIGpzUmVhZE9ubHlNYXBMaWtlKTsKLX0KLQotI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVH
UklUWSkKLSNpZiBQTEFURk9STShXSU4pCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykK
LWV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCAoKmNvbnN0IF9faWRlbnRpZmllcigiPz9fN1JlYWRP
bmx5TWFwTGlrZUBXZWJDb3JlQEA2QkAiKVtdKSgpOyB9Ci0jZWxzZQotZXh0ZXJuICJDIiB7IGV4
dGVybiB2b2lkKiBfWlRWTjdXZWJDb3JlMTVSZWFkT25seU1hcExpa2VFW107IH0KLSNlbmRpZgot
I2VuZGlmCi0KLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8UmVhZE9ubHlNYXBMaWtl
PiYmIGltcGwpCi17Ci0KLSNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgY29uc3Qg
dm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IGdldFZUYWJsZVBvaW50ZXIoaW1wbC5wdHIoKSk7
Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IF9f
aWRlbnRpZmllcigiPz9fN1JlYWRPbmx5TWFwTGlrZUBXZWJDb3JlQEA2QkAiKTsKLSNlbHNlCi0g
ICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZON1dlYkNvcmUxNVJlYWRPbmx5
TWFwTGlrZUVbMl07Ci0jZW5kaWYKLQotICAgIC8vIElmIHRoaXMgZmFpbHMgUmVhZE9ubHlNYXBM
aWtlIGRvZXMgbm90IGhhdmUgYSB2dGFibGUsIHNvIHlvdSBuZWVkIHRvIGFkZCB0aGUKLSAgICAv
LyBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIGRl
ZmluaXRpb24KLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9seW1vcnBoaWM8UmVhZE9ubHlN
YXBMaWtlPjo6dmFsdWUsICJSZWFkT25seU1hcExpa2UgaXMgbm90IHBvbHltb3JwaGljIik7Ci0K
LSAgICAvLyBJZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBh
ZnRlciBmcmVlIGJ1Zywgb3IKLSAgICAvLyBSZWFkT25seU1hcExpa2UgaGFzIHN1YmNsYXNzZXMu
IElmIFJlYWRPbmx5TWFwTGlrZSBoYXMgc3ViY2xhc3NlcyB0aGF0IGdldCBwYXNzZWQKLSAgICAv
LyB0byB0b0pTKCkgd2UgY3VycmVudGx5IHJlcXVpcmUgUmVhZE9ubHlNYXBMaWtlIHlvdSB0byBv
cHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVuaW5nCi0gICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRh
YmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgot
ICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQ
b2ludGVyKTsKLSNlbmRpZgotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFJlYWRPbmx5TWFwTGlr
ZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKLX0KLQotSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUmVhZE9ubHlNYXBMaWtlJiBpbXBsKQotewotICAgIHJldHVybiB3
cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgaW1wbCk7Ci19Ci0KLVJlYWRP
bmx5TWFwTGlrZSogSlNSZWFkT25seU1hcExpa2U6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlND
OjpKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2Fz
dDxKU1JlYWRPbmx5TWFwTGlrZSo+KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiAmd3JhcHBl
ci0+d3JhcHBlZCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFw
TGlrZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWRjZGUwNDdmNWI1YjUxYTVh
NTM3ZmY1YzUyYTY2ZDBhMDQ0NzY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Jl
YWRPbmx5TWFwTGlrZS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoKLSAgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAg
VGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8g
Tk9UIE1PRElGWSEKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQot
ICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCi0qLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5o
IgotI2luY2x1ZGUgIlJlYWRPbmx5TWFwTGlrZS5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTUmVhZE9ubHlNYXBMaWtl
IDogcHVibGljIEpTRE9NV3JhcHBlcjxSZWFkT25seU1hcExpa2U+IHsKLXB1YmxpYzoKLSAgICB1
c2luZyBCYXNlID0gSlNET01XcmFwcGVyPFJlYWRPbmx5TWFwTGlrZT47Ci0gICAgc3RhdGljIEpT
UmVhZE9ubHlNYXBMaWtlKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFJlYWRPbmx5TWFwTGlrZT4mJiBpbXBsKQot
ICAgIHsKLSAgICAgICAgSlNSZWFkT25seU1hcExpa2UqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlND
OjphbGxvY2F0ZUNlbGw8SlNSZWFkT25seU1hcExpa2U+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFw
KSkgSlNSZWFkT25seU1hcExpa2Uoc3RydWN0dXJlLCAqZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwot
ICAgICAgICByZXR1cm4gcHRyOwotICAgIH0KLQotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0gICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsK
LSAgICBzdGF0aWMgUmVhZE9ubHlNYXBMaWtlKiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNW
YWx1ZSk7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwotCi0gICAgREVD
TEFSRV9JTkZPOwotCi0gICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpLCBKU0M6Ok5vbkFycmF5KTsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vic3Bh
Y2VBY2Nlc3MgbW9kZT4gc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6
Vk0mIHZtKQotICAgIHsKLSAgICAgICAgaWYgY29uc3RleHByIChtb2RlID09IEpTQzo6U3Vic3Bh
Y2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
ICAgICByZXR1cm4gc3Vic3BhY2VGb3JJbXBsKHZtKTsKLSAgICB9Ci0gICAgc3RhdGljIEpTQzo6
SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSk7Ci0gICAgc3RhdGljIHZv
aWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKLXByb3RlY3RlZDoK
LSAgICBKU1JlYWRPbmx5TWFwTGlrZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0
JiwgUmVmPFJlYWRPbmx5TWFwTGlrZT4mJik7Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKLX07Ci0KLWNsYXNzIEpTUmVhZE9ubHlNYXBMaWtlT3duZXIgOiBwdWJsaWMgSlND
OjpXZWFrSGFuZGxlT3duZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0
LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmlu
YWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7Ci19OwotCi1p
bmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQm
LCBSZWFkT25seU1hcExpa2UqKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1JlYWRP
bmx5TWFwTGlrZU93bmVyPiBvd25lcjsKLSAgICByZXR1cm4gJm93bmVyLmdldCgpOwotfQotCi1p
bmxpbmUgdm9pZCogd3JhcHBlcktleShSZWFkT25seU1hcExpa2UqIHdyYXBwYWJsZU9iamVjdCkK
LXsKLSAgICByZXR1cm4gd3JhcHBhYmxlT2JqZWN0OwotfQotCi1KU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWFkT25seU1hcExpa2Um
KTsKLWlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWFkT25seU1h
cExpa2UqIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdCwgKmltcGwpIDogSlNDOjpqc051bGwoKTsgfQotSlNDOjpKU1ZhbHVlIHRvSlNO
ZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVm
PFJlYWRPbmx5TWFwTGlrZT4mJik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVmUHRyPFJlYWRPbmx5TWFwTGlrZT4mJiBpbXBsKSB7IHJl
dHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsIGltcGwucmVsZWFzZU5vbk51bGwoKSkgOiBKU0M6OmpzTnVsbCgpOyB9Ci0KLXRlbXBs
YXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxSZWFkT25seU1hcExpa2U+
IHsKLSAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1JlYWRPbmx5TWFwTGlrZTsKLSAgICB1c2lu
ZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gUmVhZE9ubHlNYXBMaWtlKjsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlYzQ0NGY1NmRmNTlmMmVmOWFiODI1YTY3MmM3MTY1NTk1MGQ3ZjQwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwzODkgKzAsMCBAQAotLyoKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdl
bmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKLQotICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAg
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNSZWFkT25seVNldExpa2UuaCIKLQotI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgotI2lu
Y2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnZlcnRBbnkuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgotI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgi
Ci0jaW5jbHVkZSAiSlNET01TZXRMaWtlLmgiCi0jaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUu
aCIKLSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5OYW1lcy5o
PgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Ci0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSGVhcEFuYWx5emVyLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxl
T2JqZWN0SGVhcENlbGxUeXBlLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Vic3BhY2VJ
bmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Qb2ludGVy
UHJlcGFyYXRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLS8vIEZ1bmN0aW9ucwotCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotCi0v
LyBBdHRyaWJ1dGVzCi0KLUpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExpa2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExpa2VTaXplKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci0KLWNs
YXNzIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTQzo6SlNOb25GaW5hbE9i
amVjdDsKLSAgICBzdGF0aWMgSlNSZWFkT25seVNldExpa2VQcm90b3R5cGUqIGNyZWF0ZShKU0M6
OlZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgICAgIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlKiBw
dHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTUmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlPih2bS5oZWFwKSkgSlNSZWFkT25seVNldExpa2VQcm90b3R5cGUodm0sIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
ICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgREVDTEFSRV9JTkZPOwotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIENlbGxUeXBlLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgotICAgIHN0YXRpYyBKU0M6
Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIFNU
QVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90
eXBlLCBCYXNlKTsKLSAgICAgICAgcmV0dXJuICZ2bS5wbGFpbk9iamVjdFNwYWNlOwotICAgIH0K
LSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBKU1JlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KHZtLCBz
dHJ1Y3R1cmUpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpW
TSYpOwotfTsKLVNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlLCBKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZTo6QmFzZSk7Ci0KLXVz
aW5nIEpTUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1JlYWRPbmx5U2V0TGlrZT47Ci0KLXRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Jl
YWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VE
X1BBUkFNKHZtKTsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LmZ1bmN0aW9uUHJvdG90eXBlKCk7
Ci19Ci0KLXRlbXBsYXRlPD4gdm9pZCBKU1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yOjppbml0
aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
Ci17Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTUmVh
ZE9ubHlTZXRMaWtlOjpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8
IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlJlYWRPbmx5U2V0
TGlrZSJfcyksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci19Ci0KLXRlbXBsYXRlPD4gY29u
c3QgQ2xhc3NJbmZvIEpTUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlJl
YWRPbmx5U2V0TGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcikgfTsKLQotLyogSGFzaCB0
YWJsZSBmb3IgcHJvdG90eXBlICovCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Jl
YWRPbmx5U2V0TGlrZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsgImNvbnN0cnVj
dG9yIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNSZWFkT25seVNl
dExpa2VDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgInNpemUiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vzc29yKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1JlYWRPbmx5U2V0TGlrZVNpemUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAiaGFzIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25IYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW50cmllcyIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllcyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJrZXlzIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rp
b25LZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInZhbHVlcyIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
VmFsdWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2gpLCAoaW50cHRyX3QpICgxKSB9IH0sCi19OwotCi1jb25zdCBDbGFzc0luZm8gSlNS
ZWFkT25seVNldExpa2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlJlYWRPbmx5U2V0TGlrZSIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNSZWFk
T25seVNldExpa2VQcm90b3R5cGUpIH07Ci0KLXZvaWQgSlNSZWFkT25seVNldExpa2VQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2
bSk7Ci0gICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1JlYWRPbmx5U2V0TGlrZTo6aW5m
bygpLCBKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pdGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0
KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFtZXMoKS5lbnRyaWVzUHVibGljTmFtZSgp
KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSk7Ci0gICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFOU0lUSU9OKCk7Ci19Ci0KLWNv
bnN0IENsYXNzSW5mbyBKU1JlYWRPbmx5U2V0TGlrZTo6c19pbmZvID0geyAiUmVhZE9ubHlTZXRM
aWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1JlYWRPbmx5U2V0TGlrZSkgfTsKLQotSlNSZWFkT25seVNldExpa2U6OkpTUmVhZE9ubHlT
ZXRMaWtlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0LCBSZWY8UmVhZE9ubHlTZXRMaWtlPiYmIGltcGwpCi0gICAgOiBKU0RPTVdyYXBwZXI8UmVh
ZE9ubHlTZXRMaWtlPihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSkKLXsK
LX0KLQotdm9pZCBKU1JlYWRPbmx5U2V0TGlrZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQotewot
ICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBBU1NFUlQoaW5oZXJpdHModm0sIGlu
Zm8oKSkpOwotCi0gICAgc3RhdGljX2Fzc2VydCghc3RkOjppc19iYXNlX29mPEFjdGl2ZURPTU9i
amVjdCwgUmVhZE9ubHlTZXRMaWtlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBh
cyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJj
bGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKLQotfQotCi1KU09iamVjdCogSlNSZWFkT25seVNl
dExpa2U6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCi17Ci0gICAgcmV0dXJuIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlOjpjcmVhdGUo
dm0sICZnbG9iYWxPYmplY3QsIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sICZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSkp
OwotfQotCi1KU09iamVjdCogSlNSZWFkT25seVNldExpa2U6OnByb3RvdHlwZShWTSYgdm0sIEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIGdldERPTVByb3Rv
dHlwZTxKU1JlYWRPbmx5U2V0TGlrZT4odm0sIGdsb2JhbE9iamVjdCk7Ci19Ci0KLUpTVmFsdWUg
SlNSZWFkT25seVNldExpa2U6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNS
ZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpKTsKLX0KLQotdm9pZCBKU1JlYWRPbmx5U2V0TGlrZTo6ZGVz
dHJveShKU0M6OkpTQ2VsbCogY2VsbCkKLXsKLSAgICBKU1JlYWRPbmx5U2V0TGlrZSogdGhpc09i
amVjdCA9IHN0YXRpY19jYXN0PEpTUmVhZE9ubHlTZXRMaWtlKj4oY2VsbCk7Ci0gICAgdGhpc09i
amVjdC0+SlNSZWFkT25seVNldExpa2U6On5KU1JlYWRPbmx5U2V0TGlrZSgpOwotfQotCi10ZW1w
bGF0ZTw+IGlubGluZSBKU1JlYWRPbmx5U2V0TGlrZSogSURMQXR0cmlidXRlPEpTUmVhZE9ubHlT
ZXRMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlKQotewotICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTUmVhZE9u
bHlTZXRMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgSlNSZWFkT25seVNldExp
a2UqIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OmNhc3QoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSYgY2FsbEZyYW1lKQotewotICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTUmVhZE9ubHlTZXRMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVl
IGpzUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0g
anNEeW5hbWljQ2FzdDxKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
KTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTUmVhZE9ubHlTZXRMaWtlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7Ci19Ci0KLWJvb2wgc2V0SlNSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpT
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLSAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvcgotICAg
IHJldHVybiBwcm90b3R5cGUtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3Ry
dWN0b3IsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKLX0KLQotc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzUmVhZE9ubHlTZXRMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNSZWFkT25seVNldExpa2UmIHRoaXNPYmplY3QpCi17Ci0gICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBmb3J3YXJkU2l6ZVRvU2V0TGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0
KSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExpa2VTaXplKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTUmVhZE9ubHlTZXRMaWtl
Pjo6Z2V0PGpzUmVhZE9ubHlTZXRMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInNpemUiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUs
IHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVy
IGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1l
KTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0g
ICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoMCk7Ci0gICAgYXV0byBrZXkgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb1Nl
dExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZN
b3ZlKGtleSkpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNSZWFkT25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwot
fQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJh
dGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0g
ICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0
aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJk
RW50cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3Rl
ZFRoaXMpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50
cmllcyIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1JlYWRPbmx5U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
Ci17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9Q
QVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihm
b3J3YXJkS2V5c1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNh
c3RlZFRoaXMpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIp
OwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsK
LSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRWYWx1ZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1
ZXMiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJ
RExPcGVyYXRpb248SlNSZWFkT25seVNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlz
KQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURf
UEFSQU0odGhyb3dTY29wZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgaWYg
KFVOTElLRUxZKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAgIEVuc3VyZVN0
aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
OwotICAgIGF1dG8gY2FsbGJhY2sgPSBjb252ZXJ0PElETEFueT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9TZXRMaWtlKCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxs
YmFjaykpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9y
RWFjaCIpOwotfQotCi1KU0M6Oklzb1N1YnNwYWNlKiBKU1JlYWRPbmx5U2V0TGlrZTo6c3Vic3Bh
Y2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQotewotICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGlj
X2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKTsKLSAgICBhdXRvJiBzcGFjZXMg
PSBjbGllbnREYXRhLnN1YnNwYWNlcygpOwotICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5t
X3N1YnNwYWNlRm9yUmVhZE9ubHlTZXRMaWtlLmdldCgpKQotICAgICAgICByZXR1cm4gc3BhY2U7
Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxl
T2JqZWN0LCBKU1JlYWRPbmx5U2V0TGlrZT4gfHwgIUpTUmVhZE9ubHlTZXRMaWtlOjpuZWVkc0Rl
c3RydWN0aW9uKTsKLSAgICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNE
ZXN0cnVjdGlibGVPYmplY3QsIEpTUmVhZE9ubHlTZXRMaWtlPikKLSAgICAgICAgc3BhY2VzLm1f
c3Vic3BhY2VGb3JSZWFkT25seVNldExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09f
U1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUu
Z2V0KCksIEpTUmVhZE9ubHlTZXRMaWtlKTsKLSAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1
YnNwYWNlRm9yUmVhZE9ubHlTZXRMaWtlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NV
QlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNSZWFkT25s
eVNldExpa2UpOwotICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JSZWFkT25s
eVNldExpa2UuZ2V0KCk7Ci1JR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hhYmxlLWNvZGUi
KQotSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIpCi0gICAgaWYg
KCZKU1JlYWRPbmx5U2V0TGlrZTo6dmlzaXRPdXRwdXRDb25zdHJhaW50cyAhPSAmSlNDOjpKU0Nl
bGw6OnZpc2l0T3V0cHV0Q29uc3RyYWludHMpCi0gICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29u
c3RyYWludFNwYWNlcygpLmFwcGVuZChzcGFjZSk7Ci1JR05PUkVfV0FSTklOR1NfRU5ECi1JR05P
UkVfV0FSTklOR1NfRU5ECi0gICAgcmV0dXJuIHNwYWNlOwotfQotCi12b2lkIEpTUmVhZE9ubHlT
ZXRMaWtlOjphbmFseXplSGVhcChKU0NlbGwqIGNlbGwsIEhlYXBBbmFseXplciYgYW5hbHl6ZXIp
Ci17Ci0gICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1JlYWRPbmx5U2V0TGlrZSo+KGNl
bGwpOwotICAgIGFuYWx5emVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCi0gICAgICAgIGFuYWx5emVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKLSAg
ICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFseXplcik7Ci19Ci0KLWJvb2wgSlNSZWFkT25s
eVNldExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvciwgY29uc3QgY2hh
cioqIHJlYXNvbikKLXsKLSAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKLSAgICBVTlVTRURfUEFS
QU0odmlzaXRvcik7Ci0gICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi12b2lkIEpTUmVhZE9ubHlTZXRMaWtlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQotewotICAgIGF1dG8qIGpzUmVh
ZE9ubHlTZXRMaWtlID0gc3RhdGljX2Nhc3Q8SlNSZWFkT25seVNldExpa2UqPihoYW5kbGUuc2xv
dCgpLT5hc0NlbGwoKSk7Ci0gICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBl
cldvcmxkKj4oY29udGV4dCk7Ci0gICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1JlYWRPbmx5
U2V0TGlrZS0+d3JhcHBlZCgpLCBqc1JlYWRPbmx5U2V0TGlrZSk7Ci19Ci0KLSNpZiBFTkFCTEUo
QklORElOR19JTlRFR1JJVFkpCi0jaWYgUExBVEZPUk0oV0lOKQotI3ByYWdtYSB3YXJuaW5nKGRp
c2FibGU6IDQ0ODMpCi1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQgKCpjb25zdCBfX2lkZW50aWZp
ZXIoIj8/XzdSZWFkT25seVNldExpa2VAV2ViQ29yZUBANkJAIilbXSkoKTsgfQotI2Vsc2UKLWV4
dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTE1UmVhZE9ubHlTZXRMaWtlRVtd
OyB9Ci0jZW5kaWYKLSNlbmRpZgotCi1KU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFJl
YWRPbmx5U2V0TGlrZT4mJiBpbXBsKQotewotCi0jaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZ
KQotICAgIGNvbnN0IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBnZXRWVGFibGVQb2ludGVy
KGltcGwucHRyKCkpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkKiBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIgPSBfX2lkZW50aWZpZXIoIj8/XzdSZWFkT25seVNldExpa2VAV2ViQ29yZUBANkJA
Iik7Ci0jZWxzZQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9ICZfWlRWTjdXZWJD
b3JlMTVSZWFkT25seVNldExpa2VFWzJdOwotI2VuZGlmCi0KLSAgICAvLyBJZiB0aGlzIGZhaWxz
IFJlYWRPbmx5U2V0TGlrZSBkb2VzIG5vdCBoYXZlIGEgdnRhYmxlLCBzbyB5b3UgbmVlZCB0byBh
ZGQgdGhlCi0gICAgLy8gSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSBhdHRyaWJ1dGUgdG8gdGhl
IGludGVyZmFjZSBkZWZpbml0aW9uCi0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3BvbHltb3Jw
aGljPFJlYWRPbmx5U2V0TGlrZT46OnZhbHVlLCAiUmVhZE9ubHlTZXRMaWtlIGlzIG5vdCBwb2x5
bW9ycGhpYyIpOwotCi0gICAgLy8gSWYgeW91IGhpdCB0aGlzIGFzc2VydGlvbiB5b3UgZWl0aGVy
IGhhdmUgYSB1c2UgYWZ0ZXIgZnJlZSBidWcsIG9yCi0gICAgLy8gUmVhZE9ubHlTZXRMaWtlIGhh
cyBzdWJjbGFzc2VzLiBJZiBSZWFkT25seVNldExpa2UgaGFzIHN1YmNsYXNzZXMgdGhhdCBnZXQg
cGFzc2VkCi0gICAgLy8gdG8gdG9KUygpIHdlIGN1cnJlbnRseSByZXF1aXJlIFJlYWRPbmx5U2V0
TGlrZSB5b3UgdG8gb3B0IG91dCBvZiBiaW5kaW5nIGhhcmRlbmluZwotICAgIC8vIGJ5IGFkZGlu
ZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURM
IGRlZmluaXRpb24KLSAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4
cGVjdGVkVlRhYmxlUG9pbnRlcik7Ci0jZW5kaWYKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxS
ZWFkT25seVNldExpa2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Ci19Ci0KLUpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlYWRPbmx5U2V0TGlrZSYgaW1wbCkKLXsK
LSAgICByZXR1cm4gd3JhcChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGltcGwp
OwotfQotCi1SZWFkT25seVNldExpa2UqIEpTUmVhZE9ubHlTZXRMaWtlOjp0b1dyYXBwZWQoSlND
OjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9
IGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25seVNldExpa2UqPih2bSwgdmFsdWUpKQotICAgICAgICBy
ZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVh
ZE9ubHlTZXRMaWtlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNSZWFkT25seVNldExpa2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzZkNzBh
ODM3NDM4OGM1YTRlOWZjZGRkZTI4MjMyMjJlMjM2NGUwZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNSZWFkT25seVNldExpa2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAg
QEAKLS8qCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBw
cm9qZWN0LgotICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmlu
ZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJK
U0RPTVdyYXBwZXIuaCIKLSNpbmNsdWRlICJSZWFkT25seVNldExpa2UuaCIKLSNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU1Jl
YWRPbmx5U2V0TGlrZSA6IHB1YmxpYyBKU0RPTVdyYXBwZXI8UmVhZE9ubHlTZXRMaWtlPiB7Ci1w
dWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxSZWFkT25seVNldExpa2U+Owot
ICAgIHN0YXRpYyBKU1JlYWRPbmx5U2V0TGlrZSogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxSZWFkT25seVNldExp
a2U+JiYgaW1wbCkKLSAgICB7Ci0gICAgICAgIEpTUmVhZE9ubHlTZXRMaWtlKiBwdHIgPSBuZXcg
KE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTUmVhZE9ubHlTZXRMaWtlPihnbG9iYWxPYmpl
Y3QtPnZtKCkuaGVhcCkpIEpTUmVhZE9ubHlTZXRMaWtlKHN0cnVjdHVyZSwgKmdsb2JhbE9iamVj
dCwgV1RGTW92ZShpbXBsKSk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0LT52bSgpKTsKLSAgICAgICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlND
OjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYp
OwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xv
YmFsT2JqZWN0Jik7Ci0gICAgc3RhdGljIFJlYWRPbmx5U2V0TGlrZSogdG9XcmFwcGVkKEpTQzo6
Vk0mLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwq
KTsKLQotICAgIERFQ0xBUkVfSU5GTzsKLQotICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gSlNDOjpT
dHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSwgSlNDOjpOb25BcnJh
eSk7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6
OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHRlbXBsYXRlPHR5cGVuYW1l
LCBKU0M6OlN1YnNwYWNlQWNjZXNzIG1vZGU+IHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJz
cGFjZUZvcihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIGlmIGNvbnN0ZXhwciAobW9kZSA9
PSBKU0M6OlN1YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkpCi0gICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9ySW1wbCh2bSk7Ci0gICAgfQotICAg
IHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pOwot
ICAgIHN0YXRpYyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7
Ci1wcm90ZWN0ZWQ6Ci0gICAgSlNSZWFkT25seVNldExpa2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCYsIFJlZjxSZWFkT25seVNldExpa2U+JiYpOwotCi0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OlZNJik7Ci19OwotCi1jbGFzcyBKU1JlYWRPbmx5U2V0TGlrZU93bmVy
IDogcHVibGljIEpTQzo6V2Vha0hhbmRsZU93bmVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIGJv
b2wgaXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwg
dm9pZCogY29udGV4dCwgSlNDOjpTbG90VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7Ci0gICAgdmly
dHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRl
eHQpOwotfTsKLQotaW5saW5lIEpTQzo6V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9N
V3JhcHBlcldvcmxkJiwgUmVhZE9ubHlTZXRMaWtlKikKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SlNSZWFkT25seVNldExpa2VPd25lcj4gb3duZXI7Ci0gICAgcmV0dXJuICZvd25lci5n
ZXQoKTsKLX0KLQotaW5saW5lIHZvaWQqIHdyYXBwZXJLZXkoUmVhZE9ubHlTZXRMaWtlKiB3cmFw
cGFibGVPYmplY3QpCi17Ci0gICAgcmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKLX0KLQotSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVh
ZE9ubHlTZXRMaWtlJik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVhZE9ubHlTZXRMaWtlKiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhsZXhpY2FsR2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICppbXBsKSA6IEpTQzo6anNOdWxsKCk7IH0KLUpTQzo6
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2Jh
bE9iamVjdCosIFJlZjxSZWFkT25seVNldExpa2U+JiYpOwotaW5saW5lIEpTQzo6SlNWYWx1ZSB0
b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0cjxSZWFkT25seVNldExpa2U+
JiYgaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlNOZXdseUNyZWF0ZWQobGV4aWNhbEdsb2JhbE9i
amVjdCwgZ2xvYmFsT2JqZWN0LCBpbXBsLnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc051bGwo
KTsgfQotCi10ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8UmVh
ZE9ubHlTZXRMaWtlPiB7Ci0gICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNSZWFkT25seVNldExp
a2U7Ci0gICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9IFJlYWRPbmx5U2V0TGlrZSo7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmNwcAppbmRleCA0NDRjNmEzZGNjOTRiMDA2OTEwYzM5MDdjYjVjZTNkMGJkYWYy
NDQzLi5iZjQyMjE2YjQxYWZiOGRlOGZlMTRjZWFiOGYzZGFhOGZkOTg3ZDIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGU+OwogCkBAIC0xMDYsNyArMTA2LDcgQEAgSlNWYWx1ZSBKU1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9i
amVjdCoKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihn
bG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MTYsNyArMTE2LDcgQEAgRW5jb2RlZEpTVmFsdWUganNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLWJvb2wgc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NldExp
a2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlr
ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhNmYwODgyM2FmZDE5ZDdmMmM0
M2U2ODk1NjI4ZDA1NDgwYjRkMTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0
TGlrZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NDkgKzAsMCBAQAotLyoKLSAgICBUaGlzIGZp
bGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAgVGhpcyBm
aWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1P
RElGWSEKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0qLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNTZXRMaWtlLmgiCi0K
LSNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMu
aCIKLSNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgotI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCi0jaW5jbHVk
ZSAiSlNET01Db252ZXJ0QW55LmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5oIgot
I2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKLSNpbmNsdWRlICJKU0RPTU9wZXJh
dGlvbi5oIgotI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgotI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ckNhY2hlLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUg
IldlYkNvcmVKU0NsaWVudERhdGEuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9CdWlsdGlu
TmFtZXMuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblByb3RvdHlwZS5oPgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBBbmFseXplci5oPgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Rlc3Ry
dWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N1
YnNwYWNlSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UG9pbnRlclByZXBhcmF0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4KLQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi0vLyBGdW5jdGlvbnMKLQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
SGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25EZWxldGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci0K
LS8vIEF0dHJpYnV0ZXMKLQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1NldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzU2V0TGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLQotY2xhc3MgSlNTZXRMaWtlUHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdXNp
bmcgQmFzZSA9IEpTQzo6SlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgSlNTZXRMaWtlUHJv
dG90eXBlKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgewotICAgICAgICBKU1NldExpa2VQ
cm90b3R5cGUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNTZXRMaWtl
UHJvdG90eXBlPih2bS5oZWFwKSkgSlNTZXRMaWtlUHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICBy
ZXR1cm4gcHRyOwotICAgIH0KLQotICAgIERFQ0xBUkVfSU5GTzsKLSAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBDZWxsVHlwZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KLSAgICBzdGF0aWMgSlNDOjpJc29T
dWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBTVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1NldExpa2VQcm90b3R5cGUsIEJhc2UpOwot
ICAgICAgICByZXR1cm4gJnZtLnBsYWluT2JqZWN0U3BhY2U7Ci0gICAgfQotICAgIHN0YXRpYyBK
U0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEpTU2V0TGlrZVByb3RvdHlwZShKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0g
ICAgICAgIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAg
IH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotfTsKLVNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTU2V0TGlrZVByb3RvdHlwZSwgSlNTZXRMaWtlUHJv
dG90eXBlOjpCYXNlKTsKLQotdXNpbmcgSlNTZXRMaWtlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1NldExpa2U+OwotCi10ZW1wbGF0ZTw+IEpTVmFsdWUg
SlNTZXRMaWtlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFS
QU0odm0pOwotICAgIHJldHVybiBnbG9iYWxPYmplY3QuZnVuY3Rpb25Qcm90b3R5cGUoKTsKLX0K
LQotdGVtcGxhdGU8PiB2b2lkIEpTU2V0TGlrZUNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVy
dGllcyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTU2V0TGlrZTo6cHJvdG90
eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1l
LCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJTZXRMaWtlIl9zKSwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7Ci0gICAg
cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtKTsKLX0KLQotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNTZXRMaWtlQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlNldExpa2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2V0TGlrZUNvbnN0cnVjdG9yKSB9OwotCi0vKiBI
YXNoIHRhYmxlIGZvciBwcm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTU2V0TGlrZVByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsgImNvbnN0cnVjdG9y
Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVt
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1NldExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTU2V0TGlrZUNvbnN0cnVjdG9yKSB9
IH0sCi0gICAgeyAic2l6ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzU2V0TGlrZVNp
emUpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9IH0sCi0gICAgeyAiaGFzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24p
LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+
KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAg
IHsgImVudHJpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImtl
eXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25LZXlzKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgInZhbHVlcyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlcyksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCks
IChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJhZGQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQpLCAoaW50cHRyX3QpICgx
KSB9IH0sCi0gICAgeyAiY2xlYXIiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhciksIChpbnRwdHJfdCkgKDApIH0gfSwKLSAg
ICB7ICJkZWxldGUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25EZWxldGUpLCAoaW50cHRyX3QpICgxKSB9IH0sCi19OwotCi1jb25z
dCBDbGFzc0luZm8gSlNTZXRMaWtlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJTZXRMaWtlIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1NldExp
a2VQcm90b3R5cGUpIH07Ci0KLXZvaWQgSlNTZXRMaWtlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHJlaWZ5U3Rh
dGljUHJvcGVydGllcyh2bSwgSlNTZXRMaWtlOjppbmZvKCksIEpTU2V0TGlrZVByb3RvdHlwZVRh
YmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5p
dGVyYXRvclN5bWJvbCwgZ2V0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5idWlsdGluTmFt
ZXMoKS5lbnRyaWVzUHVibGljTmFtZSgpKSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9V
VF9UUkFOU0lUSU9OKCk7Ci19Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1NldExpa2U6OnNfaW5mbyA9
IHsgIlNldExpa2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVU
SE9EX1RBQkxFKEpTU2V0TGlrZSkgfTsKLQotSlNTZXRMaWtlOjpKU1NldExpa2UoU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxTZXRMaWtl
PiYmIGltcGwpCi0gICAgOiBKU0RPTVdyYXBwZXI8U2V0TGlrZT4oc3RydWN0dXJlLCBnbG9iYWxP
YmplY3QsIFdURk1vdmUoaW1wbCkpCi17Ci19Ci0KLXZvaWQgSlNTZXRMaWtlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEFTU0VS
VChpbmhlcml0cyh2bSwgaW5mbygpKSk7Ci0KLSAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jh
c2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBTZXRMaWtlPjo6dmFsdWUsICJJbnRlcmZhY2UgaXMgbm90
IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3VnaCBpbXBsZW1lbnRhdGlvbiBj
bGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKLQotfQotCi1KU09iamVjdCogSlNT
ZXRMaWtlOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQotewotICAgIHJldHVybiBKU1NldExpa2VQcm90b3R5cGU6OmNyZWF0ZSh2bSwgJmds
b2JhbE9iamVjdCwgSlNTZXRMaWtlUHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sICZnbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSkpOwotfQotCi1KU09iamVj
dCogSlNTZXRMaWtlOjpwcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQotewotICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNTZXRMaWtlPih2bSwgZ2xv
YmFsT2JqZWN0KTsKLX0KLQotSlNWYWx1ZSBKU1NldExpa2U6OmdldENvbnN0cnVjdG9yKFZNJiB2
bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0
RE9NQ29uc3RydWN0b3I8SlNTZXRMaWtlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7Ci19Ci0KLXZvaWQgSlNTZXRMaWtlOjpk
ZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQotewotICAgIEpTU2V0TGlrZSogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTU2V0TGlrZSo+KGNlbGwpOwotICAgIHRoaXNPYmplY3QtPkpTU2V0TGlr
ZTo6fkpTU2V0TGlrZSgpOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1NldExpa2UqIElETEF0
dHJpYnV0ZTxKU1NldExpa2U+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNTZXRMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgSlNTZXRMaWtlKiBJ
RExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNTZXRMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFt
ZS50aGlzVmFsdWUoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzU2V0TGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNTZXRMaWtlUHJvdG90
eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFko
IXByb3RvdHlwZSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNTZXRM
aWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7Ci19Ci0KLWJvb2wgc2V0SlNTZXRMaWtlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotewotICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2Fz
dDxKU1NldExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwot
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCi0gICAgcmV0
dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3Rv
ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUganNTZXRMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNTZXRMaWtlJiB0aGlzT2JqZWN0KQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1Nl
dExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7Ci19Ci0KLUVuY29kZWRK
U1ZhbHVlIGpzU2V0TGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNTZXRMaWtlPjo6Z2V0PGpzU2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsK
LSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAg
RW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJn
dW1lbnQoMCk7Ci0gICAgYXV0byBrZXkgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxH
bG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb1NldExp
a2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3Zl
KGtleSkpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlr
ZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2Fz
dGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwot
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmRFbnRyaWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvbktleXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1NldExp
a2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNUb1NldExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKLX0KLQotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQot
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImtleXMiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzU2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVy
YXRpb248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRv
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2Nv
cGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRWYWx1ZXNU
b1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkp
KTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+Ojpj
YWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHkoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNh
c3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsK
LSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAg
RW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJn
dW1lbnQoMCk7Ci0gICAgYXV0byBjYWxsYmFjayA9IGNvbnZlcnQ8SURMQW55PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1Nl
dExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZN
b3ZlKGNhbGxiYWNrKSkpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlv
bkFkZEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OkNs
YXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFS
QU0oY2FsbEZyYW1lKTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50
KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0KSk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFt
ZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBrZXkgPSBjb252ZXJ0PElETERPTVN0
cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZv
cndhcmRBZGRUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImFkZCIpOwotfQotCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVh
ckJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0o
Y2FsbEZyYW1lKTsKLSAgICB0aHJvd1Njb3BlLnJlbGVhc2UoKTsKLSAgICBmb3J3YXJkQ2xlYXJU
b1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQot
ewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJjbGVhciIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9w
ZXJhdGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dT
Y29wZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgaWYgKFVOTElLRUxZKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29w
ZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8g
a2V5ID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVu
dDAudmFsdWUoKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRGVsZXRlVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRl
bGV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJkZWxldGUiKTsKLX0KLQotSlNDOjpJc29TdWJzcGFjZSogSlNTZXRMaWtlOjpz
dWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCi17Ci0gICAgYXV0byYgY2xpZW50RGF0YSA9ICpz
dGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOwotICAgIGF1dG8mIHNw
YWNlcyA9IGNsaWVudERhdGEuc3Vic3BhY2VzKCk7Ci0gICAgaWYgKGF1dG8qIHNwYWNlID0gc3Bh
Y2VzLm1fc3Vic3BhY2VGb3JTZXRMaWtlLmdldCgpKQotICAgICAgICByZXR1cm4gc3BhY2U7Ci0g
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0LCBKU1NldExpa2U+IHx8ICFKU1NldExpa2U6Om5lZWRzRGVzdHJ1Y3Rpb24pOwotICAgIGlm
IGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwg
SlNTZXRMaWtlPikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JTZXRMaWtlID0gbWFrZVVu
aXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uZGVzdHJ1Y3Rp
YmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1NldExpa2UpOwotICAgIGVsc2UKLSAgICAg
ICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JTZXRMaWtlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4g
SVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNT
ZXRMaWtlKTsKLSAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yU2V0TGlrZS5n
ZXQoKTsKLUlHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCi1JR05PUkVf
V0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKLSAgICBpZiAoJkpTU2V0TGlr
ZTo6dmlzaXRPdXRwdXRDb25zdHJhaW50cyAhPSAmSlNDOjpKU0NlbGw6OnZpc2l0T3V0cHV0Q29u
c3RyYWludHMpCi0gICAgICAgIGNsaWVudERhdGEub3V0cHV0Q29uc3RyYWludFNwYWNlcygpLmFw
cGVuZChzcGFjZSk7Ci1JR05PUkVfV0FSTklOR1NfRU5ECi1JR05PUkVfV0FSTklOR1NfRU5ECi0g
ICAgcmV0dXJuIHNwYWNlOwotfQotCi12b2lkIEpTU2V0TGlrZTo6YW5hbHl6ZUhlYXAoSlNDZWxs
KiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQotewotICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNTZXRMaWtlKj4oY2VsbCk7Ci0gICAgYW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7Ci0gICAgaWYgKHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkpOwotICAgIEJhc2U6OmFuYWx5emVIZWFwKGNlbGwsIGFuYWx5emVy
KTsKLX0KLQotYm9vbCBKU1NldExpa2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKLXsKLSAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsK
LSAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7Ci0gICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIEpTU2V0TGlrZU93bmVyOjpmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKLXsKLSAgICBhdXRv
KiBqc1NldExpa2UgPSBzdGF0aWNfY2FzdDxKU1NldExpa2UqPihoYW5kbGUuc2xvdCgpLT5hc0Nl
bGwoKSk7Ci0gICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4o
Y29udGV4dCk7Ci0gICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1NldExpa2UtPndyYXBwZWQo
KSwganNTZXRMaWtlKTsKLX0KLQotI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSNpZiBQ
TEFURk9STShXSU4pCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKLWV4dGVybiAiQyIg
eyBleHRlcm4gdm9pZCAoKmNvbnN0IF9faWRlbnRpZmllcigiPz9fN1NldExpa2VAV2ViQ29yZUBA
NkJAIilbXSkoKTsgfQotI2Vsc2UKLWV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2Vi
Q29yZTdTZXRMaWtlRVtdOyB9Ci0jZW5kaWYKLSNlbmRpZgotCi1KU0M6OkpTVmFsdWUgdG9KU05l
d2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFNldExpa2U+JiYgaW1wbCkKLXsKLQotI2lmIEVOQUJMRShCSU5ESU5HX0lO
VEVHUklUWSkKLSAgICBjb25zdCB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gZ2V0VlRhYmxl
UG9pbnRlcihpbXBsLnB0cigpKTsKLSNpZiBQTEFURk9STShXSU4pCi0gICAgdm9pZCogZXhwZWN0
ZWRWVGFibGVQb2ludGVyID0gX19pZGVudGlmaWVyKCI/P183U2V0TGlrZUBXZWJDb3JlQEA2QkAi
KTsKLSNlbHNlCi0gICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZON1dlYkNv
cmU3U2V0TGlrZUVbMl07Ci0jZW5kaWYKLQotICAgIC8vIElmIHRoaXMgZmFpbHMgU2V0TGlrZSBk
b2VzIG5vdCBoYXZlIGEgdnRhYmxlLCBzbyB5b3UgbmVlZCB0byBhZGQgdGhlCi0gICAgLy8gSW1w
bGVtZW50YXRpb25MYWNrc1ZUYWJsZSBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBkZWZpbml0
aW9uCi0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3BvbHltb3JwaGljPFNldExpa2U+Ojp2YWx1
ZSwgIlNldExpa2UgaXMgbm90IHBvbHltb3JwaGljIik7Ci0KLSAgICAvLyBJZiB5b3UgaGl0IHRo
aXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBhZnRlciBmcmVlIGJ1Zywgb3IKLSAg
ICAvLyBTZXRMaWtlIGhhcyBzdWJjbGFzc2VzLiBJZiBTZXRMaWtlIGhhcyBzdWJjbGFzc2VzIHRo
YXQgZ2V0IHBhc3NlZAotICAgIC8vIHRvIHRvSlMoKSB3ZSBjdXJyZW50bHkgcmVxdWlyZSBTZXRM
aWtlIHlvdSB0byBvcHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVuaW5nCi0gICAgLy8gYnkgYWRkaW5n
IHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwg
ZGVmaW5pdGlvbgotICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhw
ZWN0ZWRWVGFibGVQb2ludGVyKTsKLSNlbmRpZgotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFNl
dExpa2U+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Ci19Ci0KLUpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFNldExpa2UmIGltcGwpCi17Ci0gICAgcmV0dXJuIHdyYXAo
bGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKLX0KLQotU2V0TGlrZSog
SlNTZXRMaWtlOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKLXsK
LSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNTZXRMaWtlKj4odm0sIHZh
bHVlKSkKLSAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7Ci0gICAgcmV0dXJuIG51
bGxwdHI7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1NldExpa2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1NldExpa2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVlYWZi
NjRjMmRiZTYyZWYzZTNhZjYwZWE0NWY2NTBiNGQyZmQwNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNTZXRMaWtlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgot
ICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4K
LSAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBs
LiBETyBOT1QgTU9ESUZZIQotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNET01XcmFw
cGVyLmgiCi0jaW5jbHVkZSAiU2V0TGlrZS5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTU2V0TGlrZSA6IHB1YmxpYyBK
U0RPTVdyYXBwZXI8U2V0TGlrZT4gewotcHVibGljOgotICAgIHVzaW5nIEJhc2UgPSBKU0RPTVdy
YXBwZXI8U2V0TGlrZT47Ci0gICAgc3RhdGljIEpTU2V0TGlrZSogY3JlYXRlKEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxTZXRM
aWtlPiYmIGltcGwpCi0gICAgewotICAgICAgICBKU1NldExpa2UqIHB0ciA9IG5ldyAoTm90TnVs
bCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNTZXRMaWtlPihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkp
IEpTU2V0TGlrZShzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwotICAg
ICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgICAgIHJl
dHVybiBwdHI7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKLSAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogcHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0YXRp
YyBTZXRMaWtlKiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGlj
IHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwotCi0gICAgREVDTEFSRV9JTkZPOwotCi0gICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpLCBKU0M6Ok5vbkFycmF5KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vic3BhY2VBY2Nlc3MgbW9kZT4gc3Rh
dGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAg
ICAgICAgaWYgY29uc3RleHByIChtb2RlID09IEpTQzo6U3Vic3BhY2VBY2Nlc3M6OkNvbmN1cnJl
bnRseSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gc3Vic3Bh
Y2VGb3JJbXBsKHZtKTsKLSAgICB9Ci0gICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNw
YWNlRm9ySW1wbChKU0M6OlZNJiB2bSk7Ci0gICAgc3RhdGljIHZvaWQgYW5hbHl6ZUhlYXAoSlND
ZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKLXByb3RlY3RlZDoKLSAgICBKU1NldExpa2UoSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxTZXRMaWtlPiYmKTsKLQotICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotfTsKLQotY2xhc3MgSlNTZXRMaWtlT3du
ZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIgewotcHVibGljOgotICAgIHZpcnR1YWwg
Ym9vbCBpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29u
dGV4dCk7Ci19OwotCi1pbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihE
T01XcmFwcGVyV29ybGQmLCBTZXRMaWtlKikKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SlNTZXRMaWtlT3duZXI+IG93bmVyOwotICAgIHJldHVybiAmb3duZXIuZ2V0KCk7Ci19Ci0KLWlu
bGluZSB2b2lkKiB3cmFwcGVyS2V5KFNldExpa2UqIHdyYXBwYWJsZU9iamVjdCkKLXsKLSAgICBy
ZXR1cm4gd3JhcHBhYmxlT2JqZWN0OwotfQotCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBTZXRMaWtlJik7Ci1pbmxpbmUgSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU2V0TGlrZSogaW1wbCkgeyByZXR1cm4gaW1w
bCA/IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCAqaW1wbCkgOiBKU0M6
OmpzTnVsbCgpOyB9Ci1KU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8U2V0TGlrZT4mJik7Ci1pbmxpbmUgSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmUHRyPFNldExp
a2U+JiYgaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlNOZXdseUNyZWF0ZWQobGV4aWNhbEdsb2Jh
bE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbXBsLnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc051
bGwoKTsgfQotCi10ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8
U2V0TGlrZT4gewotICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IEpTU2V0TGlrZTsKLSAgICB1c2lu
ZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gU2V0TGlrZSo7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2ZGZjNDJmZmRjZjQ4NDQzMzFhZTk1ZGI5NzQxNzkzY2M5Y2Q3NjYzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNDMxICswLDAgQEAKLS8qCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgotICAgIFRoaXMgZmlsZSBoYXMgYmVl
biBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCi0KLSAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTVGVzdEFjdGl2ZURPTU9iamVjdC5oIgot
Ci0jaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJl
YWN0aW9uUXVldWUuaCIKLSNpbmNsdWRlICJET01Jc29TdWJzcGFjZXMuaCIKLSNpbmNsdWRlICJK
U0RPTUF0dHJpYnV0ZS5oIgotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpT
RE9NQmluZGluZ1NlY3VyaXR5LmgiCi0jaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRJbnRlcmZhY2UuaCIKLSNpbmNsdWRl
ICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0U3RyaW5ncy5o
IgotI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaCIKLSNpbmNsdWRlICJKU0RPTU9w
ZXJhdGlvbi5oIgotI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCi0jaW5jbHVkZSAiSlNO
b2RlLmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgotI2luY2x1ZGUgIldl
YkNvcmVKU0NsaWVudERhdGEuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9GdW5jdGlvblBy
b3RvdHlwZS5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0hlYXBBbmFseXplci5oPgotI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oPgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1N1YnNwYWNlSW5saW5lcy5oPgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUG9pbnRlclByZXBhcmF0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9VUkwuaD4K
LQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci11c2luZyBuYW1lc3BhY2UgSlNDOwotCi0vLyBGdW5j
dGlvbnMKLQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURP
TU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLQotLy8g
QXR0cmlidXRlcwotCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRp
bmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci0KLWNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewotcHVibGljOgotICAgIHVzaW5nIEJh
c2UgPSBKU0M6OkpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGljIEpTVGVzdEFjdGl2ZURPTU9i
amVjdFByb3RvdHlwZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIHsKLSAgICAgICAgSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxs
b2NhdGVDZWxsPEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZT4odm0uaGVhcCkpIEpTVGVz
dEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOwot
ICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgcmV0dXJuIHB0cjsKLSAg
ICB9Ci0KLSAgICBERUNMQVJFX0lORk87Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUs
IEpTQzo6U3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNw
YWNlRm9yKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgU1RBVElDX0FTU0VSVF9JU09fU1VC
U1BBQ0VfU0hBUkFCTEUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlLCBCYXNlKTsKLSAg
ICAgICAgcmV0dXJuICZ2bS5wbGFpbk9iamVjdFNwYWNlOwotICAgIH0KLSAgICBzdGF0aWMgSlND
OjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5
cGUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlKQotICAgICAgICA6IEpTQzo6SlNOb25GaW5hbE9iamVjdCh2bSwgc3RydWN0dXJlKQot
ICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLX07Ci1T
VEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3RQ
cm90b3R5cGUsIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6QmFzZSk7Ci0KLXVzaW5n
IEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENv
bnN0cnVjdGFibGU8SlNUZXN0QWN0aXZlRE9NT2JqZWN0PjsKLQotLyogSGFzaCB0YWJsZSAqLwot
Ci1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0VGFibGVJbmRleFsyXSA9IHsKLSAgICB7IDAsIC0xIH0sCi0gICAgeyAtMSwgLTEgfSwKLX07
Ci0KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEFjdGl2ZURPTU9iamVjdFRh
YmxlVmFsdWVzW10gPQotewotICAgIHsgImV4Y2l0aW5nQXR0ciIsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OkN1c3RvbUFjY2Vzc29yIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RE9NQXR0cmli
dXRlKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCi19
OwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdEFjdGl2ZURPTU9iamVjdFRhYmxlID0g
eyAxLCAxLCB0cnVlLCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmluZm8oKSwgSlNUZXN0QWN0aXZl
RE9NT2JqZWN0VGFibGVWYWx1ZXMsIEpTVGVzdEFjdGl2ZURPTU9iamVjdFRhYmxlSW5kZXggfTsK
LXRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0gICAgcmV0dXJuIGdsb2Jh
bE9iamVjdC5mdW5jdGlvblByb3RvdHlwZSgpOwotfQotCi10ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0
QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojpwcm90b3R5
cGUodm0sIGdsb2JhbE9iamVjdCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUg
fCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnRFbnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUs
IGpzTm9udHJpdmlhbFN0cmluZyh2bSwgIlRlc3RBY3RpdmVET01PYmplY3QiX3MpLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rl
c3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEFjdGl2ZURPTU9i
amVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFC
TEUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IpIH07Ci0KLS8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0QWN0
aXZlRE9NT2JqZWN0UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAgeyAiY29uc3RydWN0
b3IiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0QWN0
aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJleGNpdGluZ0Z1bmN0aW9uIiwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwg
Tm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihq
c1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24pLCAo
aW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAicG9zdE1lc3NhZ2UiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEFjdGl2ZURPTU9i
amVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0g
ICAgeyAib3ZlcmxvYWRlZE1ldGhvZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAotfTsKLQotY29uc3Qg
Q2xhc3NJbmZvIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6c19pbmZvID0geyAiVGVz
dEFjdGl2ZURPTU9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlKSB9OwotCi12b2lk
IEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQot
ewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICByZWlmeVN0YXRpY1Byb3BlcnRp
ZXModm0sIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6aW5mbygpLCBKU1Rlc3RBY3RpdmVET01PYmpl
Y3RQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwotICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJ
VEhPVVRfVFJBTlNJVElPTigpOwotfQotCi1jb25zdCBDbGFzc0luZm8gSlNUZXN0QWN0aXZlRE9N
T2JqZWN0OjpzX2luZm8gPSB7ICJUZXN0QWN0aXZlRE9NT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywg
JkpTVGVzdEFjdGl2ZURPTU9iamVjdFRhYmxlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTVGVzdEFjdGl2ZURPTU9iamVjdCkgfTsKLQotSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpKU1Rl
c3RBY3RpdmVET01PYmplY3QoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0QWN0aXZlRE9NT2JqZWN0PiYmIGltcGwpCi0gICAgOiBK
U0RPTVdyYXBwZXI8VGVzdEFjdGl2ZURPTU9iamVjdD4oc3RydWN0dXJlLCBnbG9iYWxPYmplY3Qs
IFdURk1vdmUoaW1wbCkpCi17Ci19Ci0KLXZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
IEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Ci0KLSAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6
OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6dmFsdWUs
ICJJbnRlcmZhY2UgaXMgbm90IG1hcmtlZCBhcyBbQWN0aXZlRE9NT2JqZWN0XSBldmVuIHRob3Vn
aCBpbXBsZW1lbnRhdGlvbiBjbGFzcyBzdWJjbGFzc2VzIEFjdGl2ZURPTU9iamVjdC4iKTsKLQot
fQotCi1KU09iamVjdCogSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpjcmVhdGVQcm90b3R5cGUoVk0m
IHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBKU1Rl
c3RBY3RpdmVET01PYmplY3RQcm90b3R5cGU6OmNyZWF0ZSh2bSwgJmdsb2JhbE9iamVjdCwgSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sICZnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90b3R5cGUoKSkpOwotfQotCi1KU09iamVjdCog
SlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojpwcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNUZXN0QWN0
aXZlRE9NT2JqZWN0Pih2bSwgZ2xvYmFsT2JqZWN0KTsKLX0KLQotSlNWYWx1ZSBKU1Rlc3RBY3Rp
dmVET01PYmplY3Q6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0QWN0
aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7Ci19Ci0KLXZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojpk
ZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQotewotICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KGNlbGwpOwot
ICAgIHRoaXNPYmplY3QtPkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6fkpTVGVzdEFjdGl2ZURPTU9i
amVjdCgpOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RBY3RpdmVET01PYmplY3QqIElE
TEF0dHJpYnV0ZTxKU1Rlc3RBY3RpdmVET01PYmplY3Q+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCi17Ci0gICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLX0KLQotdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBJRExPcGVyYXRpb248SlNUZXN0
QWN0aXZlRE9NT2JqZWN0Pjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0QWN0aXZlRE9NT2JqZWN0Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURP
TU9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7Ci19Ci0KLWJvb2wgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotewotICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwotICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewotICAgICAgICB0aHJvd1ZN
VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9y
Ci0gICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5j
b25zdHJ1Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi1zdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RBY3RpdmVET01PYmplY3Qm
IHRoaXNPYmplY3QpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBib29sIHNob3VsZEFsbG93QWNjZXNzID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxv
d0FjY2Vzc1RvRE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBw
ZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKTsKLSAgICBFWENFUFRJT05fQVNTRVJU
X1VOVVNFRCh0aHJvd1Njb3BlLCAhdGhyb3dTY29wZS5leGNlcHRpb24oKSB8fCAhc2hvdWxkQWxs
b3dBY2Nlc3MpOwotICAgIGlmICghc2hvdWxkQWxsb3dBY2Nlc3MpCi0gICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKLSAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5leGNpdGluZ0F0dHIoKSkpKTsKLX0KLQotRW5j
b2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEFjdGl2ZURPTU9iamVj
dD46OmdldDxqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJleGNpdGluZ0F0dHIiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbkJv
ZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVj
dD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVT
RURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBib29sIHNob3VsZEFsbG93QWNjZXNzID0gQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKTsK
LSAgICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRCh0aHJvd1Njb3BlLCAhdGhyb3dTY29wZS5leGNl
cHRpb24oKSB8fCAhc2hvdWxkQWxsb3dBY2Nlc3MpOwotICAgIGlmICghc2hvdWxkQWxsb3dBY2Nl
c3MpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
YXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBpZiAoVU5MSUtFTFkoY2Fs
bEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3Bl
IGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBu
ZXh0Q2hpbGQgPSBjb252ZXJ0PElETEludGVyZmFjZTxOb2RlPj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIGFyZ3VtZW50MC52YWx1ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRUeXBlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDAsICJuZXh0Q2hpbGQiLCAiVGVzdEFjdGl2
ZURPTU9iamVjdCIsICJleGNpdGluZ0Z1bmN0aW9uIiwgIk5vZGUiKTsgfSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB0aHJvd1Nj
b3BlLnJlbGVhc2UoKTsKLSAgICBpbXBsLmV4Y2l0aW5nRnVuY3Rpb24oKm5leHRDaGlsZCk7Ci0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlv
bkV4Y2l0aW5nRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0QWN0
aXZlRE9NT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlv
bkV4Y2l0aW5nRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImV4Y2l0aW5nRnVuY3Rpb24iKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2VCb2R5
KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1l
KiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQo
KTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAg
ICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0g
ICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoMCk7Ci0gICAgYXV0byBtZXNzYWdlID0gY29udmVydDxJRExET01TdHJpbmc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB0aHJvd1Njb3BlLnJl
bGVhc2UoKTsKLSAgICBpbXBsLnBvc3RNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0
TWVzc2FnZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q+OjpjYWxsPGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3Nh
Z2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBvc3RNZXNzYWdlIik7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01P
YmplY3RQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxQm9keShKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0
eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJh
bWUpOwotICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblN0YWNrIGN1c3RvbUVsZW1lbnRSZWFjdGlv
blN0YWNrKCpsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhp
cy0+d3JhcHBlZCgpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDAgPSBjYWxs
RnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8gcGFyYW0gPSBjb252ZXJ0PElE
TERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
IHRocm93U2NvcGUucmVsZWFzZSgpOwotICAgIGltcGwub3ZlcmxvYWRlZE1ldGhvZChXVEZNb3Zl
KHBhcmFtKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0K
LQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVj
dFByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDJCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBj
YXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7
Ci0gICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBFbnN1cmVTdGls
bEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsK
LSAgICBhdXRvIHBhcmFtMSA9IGNvbnZlcnQ8SURMSW50ZXJmYWNlPE5vZGU+PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVu
dFR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgMCwgInBhcmFtMSIsICJUZXN0
QWN0aXZlRE9NT2JqZWN0IiwgIm92ZXJsb2FkZWRNZXRob2QiLCAiTm9kZSIpOyB9KTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIEVu
c3VyZVN0aWxsQWxpdmVTY29wZSBhcmd1bWVudDEgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDEpOwotICAgIGF1dG8gcGFyYW0yID0gY29udmVydDxJRExJbnRlcmZhY2U8Tm9kZT4+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDEudmFsdWUoKSwgW10oSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJv
d0FyZ3VtZW50VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAxLCAicGFyYW0y
IiwgIlRlc3RBY3RpdmVET01PYmplY3QiLCAib3ZlcmxvYWRlZE1ldGhvZCIsICJOb2RlIik7IH0p
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
Ci0gICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7Ci0gICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kKCpw
YXJhbTEsICpwYXJhbTIpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVE
T01PYmplY3RQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNo
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVj
dD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVT
RURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBib29sIHNob3VsZEFsbG93QWNjZXNzID0gQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKTsK
LSAgICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRCh0aHJvd1Njb3BlLCAhdGhyb3dTY29wZS5leGNl
cHRpb24oKSB8fCAhc2hvdWxkQWxsb3dBY2Nlc3MpOwotICAgIGlmICghc2hvdWxkQWxsb3dBY2Nl
c3MpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAg
c2l6ZV90IGFyZ3NDb3VudCA9IHN0ZDo6bWluPHNpemVfdD4oMiwgY2FsbEZyYW1lLT5hcmd1bWVu
dENvdW50KCkpOwotICAgIGlmIChhcmdzQ291bnQgPT0gMSkgewotICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDFCb2R5KGxleGljYWxHbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwg
Y2FzdGVkVGhpcykpKTsKLSAgICB9Ci0gICAgaWYgKGFyZ3NDb3VudCA9PSAyKSB7Ci0gICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCBjYXN0ZWRUaGlzKSkpOwotICAgIH0KLSAgICByZXR1cm4gYXJnc0NvdW50IDwg
MSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlw
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotfQotCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RBY3Rp
dmVET01PYmplY3Q+OjpjYWxsPGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kIik7Ci19Ci0KLUpTQzo6SXNvU3Vic3BhY2Uq
IEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQotewot
ICAgIGF1dG8mIGNsaWVudERhdGEgPSAqc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKTsKLSAgICBhdXRvJiBzcGFjZXMgPSBjbGllbnREYXRhLnN1YnNwYWNlcygpOwot
ICAgIGlmIChhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEFjdGl2ZURPTU9i
amVjdC5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHNwYWNlOwotICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0QWN0aXZlRE9N
T2JqZWN0PiB8fCAhSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpuZWVkc0Rlc3RydWN0aW9uKTsKLSAg
ICBpZiBjb25zdGV4cHIgKHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmpl
Y3QsIEpTVGVzdEFjdGl2ZURPTU9iamVjdD4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9y
VGVzdEFjdGl2ZURPTU9iamVjdCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFD
RV9JTklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwg
SlNUZXN0QWN0aXZlRE9NT2JqZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHNwYWNlcy5tX3N1YnNw
YWNlRm9yVGVzdEFjdGl2ZURPTU9iamVjdCA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19T
VUJTUEFDRV9JTklUKHZtLmhlYXAsIHZtLmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTVGVzdEFj
dGl2ZURPTU9iamVjdCk7Ci0gICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclRl
c3RBY3RpdmVET01PYmplY3QuZ2V0KCk7Ci1JR05PUkVfV0FSTklOR1NfQkVHSU4oInVucmVhY2hh
YmxlLWNvZGUiKQotSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJ0YXV0b2xvZ2ljYWwtY29tcGFyZSIp
Ci0gICAgaWYgKCZKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnZpc2l0T3V0cHV0Q29uc3RyYWludHMg
IT0gJkpTQzo6SlNDZWxsOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzKQotICAgICAgICBjbGllbnRE
YXRhLm91dHB1dENvbnN0cmFpbnRTcGFjZXMoKS5hcHBlbmQoc3BhY2UpOwotSUdOT1JFX1dBUk5J
TkdTX0VORAotSUdOT1JFX1dBUk5JTkdTX0VORAotICAgIHJldHVybiBzcGFjZTsKLX0KLQotdm9p
ZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmFuYWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFu
YWx5emVyJiBhbmFseXplcikKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dEFjdGl2ZURPTU9iamVjdCo+KGNlbGwpOwotICAgIGFuYWx5emVyLnNldFdyYXBwZWRPYmplY3RG
b3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwotICAgIGlmICh0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGFuYWx5emVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKLSAgICBCYXNlOjphbmFseXplSGVhcChjZWxsLCBhbmFseXplcik7
Ci19Ci0KLWJvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZp
c2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCi17Ci0gICAgVU5VU0VEX1BBUkFN
KGhhbmRsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwotICAgIFVOVVNFRF9QQVJBTShy
ZWFzb24pOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBKU1Rlc3RBY3RpdmVET01PYmpl
Y3RPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQq
IGNvbnRleHQpCi17Ci0gICAgYXV0byoganNUZXN0QWN0aXZlRE9NT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwotICAg
IGF1dG8mIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwot
ICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0QWN0aXZlRE9NT2JqZWN0LT53cmFwcGVk
KCksIGpzVGVzdEFjdGl2ZURPTU9iamVjdCk7Ci19Ci0KLSNpZiBFTkFCTEUoQklORElOR19JTlRF
R1JJVFkpCi0jaWYgUExBVEZPUk0oV0lOKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0ODMp
Ci1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQgKCpjb25zdCBfX2lkZW50aWZpZXIoIj8/XzdUZXN0
QWN0aXZlRE9NT2JqZWN0QFdlYkNvcmVAQDZCQCIpW10pKCk7IH0KLSNlbHNlCi1leHRlcm4gIkMi
IHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dlYkNvcmUxOVRlc3RBY3RpdmVET01PYmplY3RFW107IH0K
LSNlbmRpZgotI2VuZGlmCi0KLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEFj
dGl2ZURPTU9iamVjdD4mJiBpbXBsKQotewotCi0jaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZ
KQotICAgIGNvbnN0IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBnZXRWVGFibGVQb2ludGVy
KGltcGwucHRyKCkpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkKiBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIgPSBfX2lkZW50aWZpZXIoIj8/XzdUZXN0QWN0aXZlRE9NT2JqZWN0QFdlYkNvcmVA
QDZCQCIpOwotI2Vsc2UKLSAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43
V2ViQ29yZTE5VGVzdEFjdGl2ZURPTU9iamVjdEVbMl07Ci0jZW5kaWYKLQotICAgIC8vIElmIHRo
aXMgZmFpbHMgVGVzdEFjdGl2ZURPTU9iamVjdCBkb2VzIG5vdCBoYXZlIGEgdnRhYmxlLCBzbyB5
b3UgbmVlZCB0byBhZGQgdGhlCi0gICAgLy8gSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSBhdHRy
aWJ1dGUgdG8gdGhlIGludGVyZmFjZSBkZWZpbml0aW9uCi0gICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3BvbHltb3JwaGljPFRlc3RBY3RpdmVET01PYmplY3Q+Ojp2YWx1ZSwgIlRlc3RBY3RpdmVE
T01PYmplY3QgaXMgbm90IHBvbHltb3JwaGljIik7Ci0KLSAgICAvLyBJZiB5b3UgaGl0IHRoaXMg
YXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBhZnRlciBmcmVlIGJ1Zywgb3IKLSAgICAv
LyBUZXN0QWN0aXZlRE9NT2JqZWN0IGhhcyBzdWJjbGFzc2VzLiBJZiBUZXN0QWN0aXZlRE9NT2Jq
ZWN0IGhhcyBzdWJjbGFzc2VzIHRoYXQgZ2V0IHBhc3NlZAotICAgIC8vIHRvIHRvSlMoKSB3ZSBj
dXJyZW50bHkgcmVxdWlyZSBUZXN0QWN0aXZlRE9NT2JqZWN0IHlvdSB0byBvcHQgb3V0IG9mIGJp
bmRpbmcgaGFyZGVuaW5nCi0gICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlv
biBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgotICAgIFJFTEVBU0Vf
QVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKLSNl
bmRpZgotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFRlc3RBY3RpdmVET01PYmplY3Q+KGdsb2Jh
bE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Ci19Ci0KLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFRlc3RBY3RpdmVET01PYmplY3QmIGltcGwpCi17Ci0gICAgcmV0dXJuIHdyYXAo
bGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKLX0KLQotVGVzdEFjdGl2
ZURPTU9iamVjdCogSlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojp0b1dyYXBwZWQoSlNDOjpWTSYgdm0s
IEpTQzo6SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4odm0sIHZhbHVlKSkKLSAgICAgICAgcmV0dXJu
ICZ3cmFwcGVyLT53cmFwcGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU3
NTI0MTllNGVhZmVhZjllYTBlMTNjNjE0MGRjMmQ3ZTc1ZWE4ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5
NiArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBz
b3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVy
YXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5j
bHVkZSAiSlNET01XcmFwcGVyLmgiCi0jaW5jbHVkZSAiVGVzdEFjdGl2ZURPTU9iamVjdC5oIgot
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVjdCA6IHB1YmxpYyBKU0RPTVdyYXBwZXI8VGVzdEFj
dGl2ZURPTU9iamVjdD4gewotcHVibGljOgotICAgIHVzaW5nIEJhc2UgPSBKU0RPTVdyYXBwZXI8
VGVzdEFjdGl2ZURPTU9iamVjdD47Ci0gICAgc3RhdGljIEpTVGVzdEFjdGl2ZURPTU9iamVjdCog
Y3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFJlZjxUZXN0QWN0aXZlRE9NT2JqZWN0PiYmIGltcGwpCi0gICAgewotICAgICAg
ICBKU1Rlc3RBY3RpdmVET01PYmplY3QqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0
ZUNlbGw8SlNUZXN0QWN0aXZlRE9NT2JqZWN0PihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpT
VGVzdEFjdGl2ZURPTU9iamVjdChzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1w
bCkpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0g
ICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNy
ZWF0ZVByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKLSAgICBzdGF0aWMg
SlNDOjpKU09iamVjdCogcHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwot
ICAgIHN0YXRpYyBUZXN0QWN0aXZlRE9NT2JqZWN0KiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIHZvaWQgZG9QdXRQcm9wZXJ0eVNlY3VyaXR5Q2hlY2soSlND
OjpKU09iamVjdCosIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlND
OjpQdXRQcm9wZXJ0eVNsb3QmKTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxs
Kik7Ci0KLSAgICBERUNMQVJFX0lORk87Ci0KLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6
U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJ
bmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJy
YXkpOwotICAgIH0KLQotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlND
OjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vi
c3BhY2VGb3IoSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBpZiBjb25zdGV4cHIgKG1vZGUg
PT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6Q29uY3VycmVudGx5KQotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBzdWJzcGFjZUZvckltcGwodm0pOwotICAgIH0KLSAg
ICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKTsK
LSAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYp
OwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEpTQzo6SGFzUHV0UHJvcGVydHlTZWN1cml0eUNoZWNr
IHwgSlNDOjpIYXNTdGF0aWNQcm9wZXJ0eVRhYmxlOwotcHJvdGVjdGVkOgotICAgIEpTVGVzdEFj
dGl2ZURPTU9iamVjdChKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRl
c3RBY3RpdmVET01PYmplY3Q+JiYpOwotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZN
Jik7Ci19OwotCi1jbGFzcyBKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lciA6IHB1YmxpYyBKU0M6
OldlYWtIYW5kbGVPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQs
IEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwotICAgIHZpcnR1YWwgdm9pZCBmaW5h
bGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKLX07Ci0KLWlu
bGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYs
IFRlc3RBY3RpdmVET01PYmplY3QqKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rl
c3RBY3RpdmVET01PYmplY3RPd25lcj4gb3duZXI7Ci0gICAgcmV0dXJuICZvd25lci5nZXQoKTsK
LX0KLQotaW5saW5lIHZvaWQqIHdyYXBwZXJLZXkoVGVzdEFjdGl2ZURPTU9iamVjdCogd3JhcHBh
YmxlT2JqZWN0KQotewotICAgIHJldHVybiB3cmFwcGFibGVPYmplY3Q7Ci19Ci0KLUpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RB
Y3RpdmVET01PYmplY3QmKTsKLWlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUZXN0QWN0aXZlRE9NT2JqZWN0KiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICppbXBsKSA6IEpTQzo6anNOdWxsKCk7IH0K
LUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RP
TUdsb2JhbE9iamVjdCosIFJlZjxUZXN0QWN0aXZlRE9NT2JqZWN0PiYmKTsKLWlubGluZSBKU0M6
OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWZQdHI8VGVzdEFj
dGl2ZURPTU9iamVjdD4mJiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGltcGwucmVsZWFzZU5vbk51bGwoKSkg
OiBKU0M6OmpzTnVsbCgpOyB9Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZl
cnRlclRyYWl0czxUZXN0QWN0aXZlRE9NT2JqZWN0PiB7Ci0gICAgdXNpbmcgV3JhcHBlckNsYXNz
ID0gSlNUZXN0QWN0aXZlRE9NT2JqZWN0OwotICAgIHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUg
PSBUZXN0QWN0aXZlRE9NT2JqZWN0KjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q0VSZWFjdGlvbnMuY3BwCmluZGV4IDQ2NzMzYTdkNWU3M2FhOGM3OGQyYWM5ZjQxZjc2
MDZjNjg5ODlhMzEuLjY1MmYxZjVhN2Q5OWU1MjYwYWQ3YTk0YTE2ZTA1ZDJlNGNhYzM2NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcApAQCAtNTIsMjUgKzUyLDI1IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0
aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhD
RVJlYWN0aW9uc05vdE5lZWRlZCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENF
UmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZp
ZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9u
c0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rp
b25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0
aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25z
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0
aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rp
b25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVkKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE5Miw3ICsxOTIsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RDRVJlYWN0aW9ucyogSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25z
Pjo6Y2FzdChKU0dsbwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25z
Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAyLDcgKzIwMiw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDRVJlYWN0aW9uczo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25z
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucygpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVz
dENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zIik7CiB9CkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zU2V0
dGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJl
YWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0
Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
cyIpOwogfQpAQCAtMjU1LDcgKzI1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RD
RVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIoSlNHCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0dHJpYnV0ZXdpdGhjZXJlYWN0aW9u
c0F0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VS
ZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9ucyIpOwogfQpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXIoSlNH
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0
Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0QXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zIik7CiB9CkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50
ZXJmYWNlPFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5naWZpZXJB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+
OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CkBAIC0zMTAsNyArMzEwLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CkBAIC0z
MjMsNyArMzIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkR2V0dGVyKEoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZCgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVl
ZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENFUmVhY3Rpb25zPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zTm90TmVlZGVkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkIik7CiB9CkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkU2V0dGVyKEoK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0
ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNU
ZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzU1LDcgKzM1NSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnNOb3ROZWVkZWRHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGF0
dHJpYnV0ZXdpdGhjZXJlYWN0aW9uc25vdG5lZWRlZEF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3RO
ZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VS
ZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zTm90TmVlZGVkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9uc05vdE5lZWRlZCIpOwogfQpAQCAtMzc0LDcgKzM3NCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNO
b3ROZWVkZWRTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlv
bnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0
aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0
aENFUmVhY3Rpb25zTm90TmVlZGVkU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVl
ZGVkIik7CiB9CkBAIC0zODcsNyArMzg3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRHZXR0ZXIoSlNHbG8KICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5naWZpZXJBdHRyaWJ1dGVOb3RO
ZWVkZWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckF0dHJpYnV0ZU5vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3RO
ZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0
ZU5vdE5lZWRlZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVk
Iik7CiB9CkBAIC00MTAsNyArNDEwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRTZXR0ZXIoSlNHbG8KICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0
cmlidXRlTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90
TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVk
Iik7CiB9CkBAIC00MjgsNyArNDI4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0UKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rp
b25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlvbnM+OjpjYWxsPGpzVGVzdENFUmVhY3Rp
b25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnNCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDRVJlYWN0aW9ucyIpOwogfQpAQCAt
NDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
RVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rp
b25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENFUmVhY3Rpb25zPjo6Y2FsbDxqc1Rlc3RD
RVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zTm90TmVlZGVk
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQ0VSZWFj
dGlvbnNOb3ROZWVkZWQiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyLmNwcAppbmRleCBkZTE5NGQ0NTUzNTNkY2NkODk2YTg4MzUyNzc2NDA0NzczYTBjMWJl
Li4zMDUxZjYxZWRkZGI1YTI0NmRkMWE5YmU2M2EzOTc2MGJmNzA1MWM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCkBAIC00OCwxNiArNDgsMTYgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVu
Y3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclByb3Rv
dHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVh
Y3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdp
dGhvdXRSZWFjdGlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllclZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFj
dGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25z
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
clZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE3NCw3ICsxNzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlvbnNTdAog
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihK
U0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg0LDcgKzE4NCw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDUs
NyArMjA1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJWYWx1ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnZhbHVlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyPjo6Z2V0PGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInZhbHVlIik7CiB9CkBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6c2V0PHNldEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXJWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAidmFsdWUiKTsKIH0KQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91
dFJlYWN0aW9uc0dldHRlcihKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
dmFsdWVXaXRob3V0UmVhY3Rpb25zKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+OjpnZXQ8anNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9uc0dldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOwogfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRo
b3V0UmVhY3Rpb25zU2V0dGVyKEpTCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyPjo6c2V0PHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJW
YWx1ZVdpdGhvdXRSZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlV2l0aG91dFJlYWN0aW9ucyIpOwogfQpAQCAtMjcxLDcg
KzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25UCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxH
bG9iYWxPYmplY3QsIGltcGwudmFsdWUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmNhbGw8anNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5j
cHAKaW5kZXggNDBjMzQzNzMwMjM0NzM3YTk3NmE3Njg1MWMxODRlNjY4NjNkNTUzMC4uNGI2MTY5
Mjg4Y2FmNmE4Yjg3MjAzMGY4ODQ5MGI5YjhjYWQwMWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2Vy
LmNwcApAQCAtNTYsMjYgKzU2LDI2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0
aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbkludGVyZmFjZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uU3BlY2lmaWVk
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RP
cGVyYXRpb25XaXRoQXJndW1lbnRzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQ
cm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVBcmd1bWVudChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9u
V2l0aFZhcmlhbnRBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVy
YXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFu
dEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uSW50ZXJmYWNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RP
cGVyYXRpb25XaXRoQXJndW1lbnRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3Vt
ZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlw
ZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0
aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhPcHRp
b25hbFZhcmlhbnRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVsdFZhcmlhbnRB
cmd1bWVudCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
YWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJh
Y2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lm
aWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVTcGVjaWZpZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2Vy
VGVzdFJlYWRvbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdENhbGxUcmFjZXJQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTIxMiw3ICsyMTIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDYWxsVHJhY2VyKiBJRExP
cGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhc3QoSlNHbG9iYQogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIyLDcg
KzIyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdENhbGxUcmFjZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0NSw3ICsyNDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2VHZXR0ZXIoSlNHbG9iYWxP
YmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFu
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVJbnRl
cmZhY2UoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVJbnRlcmZhY2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6
Z2V0PGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAidGVzdEF0dHJpYnV0ZUludGVyZmFjZSIpOwogfQpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZVNl
dHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0
cmlidXRlSW50ZXJmYWNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpzZXQ8c2V0SlNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2VTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVJbnRlcmZhY2UiKTsKIH0K
QEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVTcGVjaWZpZWRHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxs
VHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6Z2V0PGpzVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZVNw
ZWNpZmllZCIpOwogfQpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZFNldHRlcihKU0dsb2JhbE9iamVj
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVTcGVjaWZpZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENhbGxUcmFjZXI+OjpzZXQ8c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1
dGVTcGVjaWZpZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQiKTsKIH0KQEAgLTMxNSw3ICszMTUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRo
VmFyaWFudEdldHRlcihKU0dsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExVbmlvbjxJRExCb29sZWFuLCBJRExGbG9hdCwgSURMRE9NU3RyaW5nPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwudGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVz
dEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0Q2FsbFRyYWNlclRlc3RB
dHRyaWJ1dGVXaXRoVmFyaWFudEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVXaXRoVmFy
aWFudCIpOwogfQpAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50U2V0dGVyKEpTR2xvYmFsT2JqCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1
dGVXaXRoVmFyaWFudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDYWxsVHJhY2VyPjo6c2V0PHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmli
dXRlV2l0aFZhcmlhbnRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgInRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCIpOwogfQpAQCAtMzQ4LDcgKzM0
OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5
QXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwudGVzdFJlYWRvbmx5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRv
bmx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RSZWFkb25seUF0dHJpYnV0ZSIpOwogfQpAQCAt
MzY3LDcgKzM2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJm
YWNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVG
dW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25JbnRlcmZhY2UiKTsKIH0KQEAgLTM4Niw3ICszODYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvblNwZWNpZmllZChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvblNwZWNpZmllZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0
T3BlcmF0aW9uU3BlY2lmaWVkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0T3BlcmF0aW9uU3BlY2lmaWVkIik7CiB9CkBAIC00MTYsNyArNDE2LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5j
dGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQ
cm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoQXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0
aW9uV2l0aEFyZ3VtZW50cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RD
YWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3Bl
cmF0aW9uV2l0aEFyZ3VtZW50c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHMiKTsKIH0KQEAgLTQ0MCw3ICs0NDAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlw
ZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRy
YWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3Rv
dHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJn
dW1lbnQiKTsKIH0KQEAgLTQ2NCw3ICs0NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoVmFyaWFu
dEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFj
ZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25X
aXRoVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVudCIpOwogfQpAQCAtNDg4LDcgKzQ4OCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFu
dEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlVmFyaWFudEFyZ3VtZW50LCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpz
VGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVW
YXJpYW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRl
c3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1lbnQiKTsKIH0KQEAgLTUxMCw3ICs1
MTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZh
cmlhbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNl
clByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlhbnRBcmd1bWVu
dCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2Fs
bDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlv
bmFsVmFyaWFudEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFyZ3VtZW50Iik7CiB9CkBAIC01MzIs
NyArNTMyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxU
cmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVmYXVs
dFZhcmlhbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRy
YWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3Vt
ZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+Ojpj
YWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoRGVm
YXVsdFZhcmlhbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50Iik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAppbmRl
eCBiYjQzYjVlMjg3OTI3Zjk2ZmZjNWExMmE5ZTBlOGIyNTE0NDBkM2MyLi4zOTRlOWE1NWNlN2Y5
ZmRkYjkwMzEyYTI3ZjJhOTQ4MTg4NTVjYzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTU1LDcgKzE1
NSw3IEBAIHZvaWQgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6OmRlc3Ryb3ko
SlNDOjpKU0NlbGwqIGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3I6On5KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvcigpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTE2NSw3ICsxNjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXMuY3BwCmluZGV4IDI2ZTJjMzg5NWYxYTVlNmYyNDJiYzMzNWM5NGQ5MjcwMWQzOTIwYTQu
LjliNDUxYjE2YWUzOWJmZDM2Zjk3YTQ3ZmYxNmE3NGIwY2NjNDUxN2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAKQEAgLTYzLDQ5ICs2Myw0OSBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogLy8gRnVuY3Rpb25zCiAKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIChFTkFCTEUo
Q29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24y
MykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJh
dGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0
aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5D
dXN0b21PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5
cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIChFTkFCTEUoQ29u
ZGl0aW9uMTEpICYmIEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9u
YWxPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVG
dW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShD
b25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5T
ZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0
aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3Bl
cmF0aW9uKTsKICNlbmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25k
aXRpb24yMikgJiYgRU5BQkxFKENvbmRpdGlvbjMzKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4
aW5PcGVyYXRpb25Gcm9tUGFydGlhbCk7CiAjZW5kaWYKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzVGVzdEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lm
IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24y
MikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5D
dXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVG
cm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwogI2VuZGlmCiAKIGNsYXNzIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTQ5MCw3ICs0OTAsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzKiBJRExPcGVyYXRpb248
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2Fs
bEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtNTAwLDcgKzUwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC01MjEsNyArNTIxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNUZXN0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0
ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyIik7CiB9CkBAIC01MzUsNyArNTM1LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5
QXR0cmlidXRlR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
Lm1peGluUmVhZE9ubHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
bWl4aW5SZWFkT25seUF0dHJpYnV0ZSIpOwogfQpAQCAtNTUxLDcgKzU1MSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5taXhp
bkF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbkF0dHJpYnV0ZSIpOwogfQpAQCAtNTcyLDcgKzU3Miw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5B
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
cz46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluQXR0
cmlidXRlIik7CiB9CkBAIC01ODYsNyArNTg2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZUdldHRlcihKU0dsb2IK
ICAgICByZXR1cm4gdGhpc09iamVjdC5taXhpbkN1c3RvbUF0dHJpYnV0ZShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENv
bmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3Vz
dG9tQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1dGUiKTsKIH0K
QEAgLTYwMSw3ICs2MDEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlU2V0dGVyKEpTR2xvYgogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAt
NjE3LDcgKzYxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4
aW5Ob2RlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2Rl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c01peGluTm9kZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIp
OwogfQpAQCAtNjM4LDcgKzYzOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9k
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjU0
LDcgKzY1NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0
cmlidXRlRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUGFydGlhbE1peGluQXR0cmlidXRl
RnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWxHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwYXJ0
aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbCIpOwogfQpAQCAtNjc0LDcgKzY3NCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25NaXhpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9wZXJhdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9u
TWl4aW5PcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1peGluT3BlcmF0aW9uIik7CiB9CkBAIC03MDMsNyArNzAzLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5
cGVGdW5jdGlvbk1peGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQ29t
cGxleE9wZXJhdGlvbigqY29udGV4dCwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
UHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGlu
Q29tcGxleE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1peGluQ29tcGxleE9wZXJhdGlvbiIpOwogfQpAQCAtNzIwLDcgKzcy
MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+bWl4aW5DdXN0b21PcGVyYXRp
b24oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5j
dGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhp
bkN1c3RvbU9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWl4aW5DdXN0b21PcGVyYXRpb24iKTsKIH0KQEAgLTc0MCw3ICs3NDAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNs
dWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0
aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9u
Iik7CiB9CkBAIC03NjAsNyArNzYwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGkKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlv
bk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0
aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlvbkJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5TZXR0aW5nc0NvbmRpdGlv
bmFsT3BlcmF0aW9uIik7CiB9CkBAIC03NzksNyArNzc5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlv
bk1peGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPE5vZGU+Pj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShpbXBsUmVzdWx0Lm5vZGVz
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluUmVzdWx0RmllbGRPcGVy
YXRpb24iKTsKIH0KQEAgLTc5OSw3ICs3OTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uUGFydAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1
bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRp
YWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwYXJ0aWFsTWl4aW5PcGVyYXRp
b25Gcm9tUGFydGlhbCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGUuY3BwCmluZGV4IDVhODQ1MzIyZGM0ZDhjYTNhMjk2MTYzNWYxODhhMzRjMDM0NjdjNzMu
LjlkYTBjYzI2NDhmOGY2MzAwNjA1ZTE5OGYyNGRiMDcyYzljOWJmYTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAKQEAgLTU0LDM0ICs1NCwzNCBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lmIEVOQUJM
RShDT05ESVRJT04pCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ09ORElUSU9OMikKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNpZiBFTkFCTEUoQ09ORElUSU9OKQotYm9v
bCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVu
dGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9t
aXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNzQsNyArMjc0LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSogSURMQXR0cmlidXRlPEpT
VGVzdENvbmRpdGlvbmFsbHkKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjg0LDcgKzI4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNl
PE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTMyNCw3ICsz
MjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dAogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0zNDAsNyArMzQwLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25k
aXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEFuZENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0zNjIsNyArMzYyLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRp
dGlvbmFsbHlSZWEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlIik7CiB9CkBAIC0zNzksNyArMzc5LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJm
YWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
UnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzk3LDcgKzM5Nyw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC00MTAs
NyArNDEwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ydW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKIH0KQEAg
LTQyOCw3ICs0MjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJs
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
Iik7CiB9CkBAIC00NDEsNyArNDQxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC5ydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVBy
aXZhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJydW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxl
UHJpdmF0ZSIpOwogfQpAQCAtNDU5LDcgKzQ1OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2
YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlIik7CiB9CkBAIC00
NzIsNyArNDcyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExEb3VibGU+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5y
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1bnRp
bWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpAQCAtNDkwLDcg
KzQ5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1bnRpbWVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpAQCAtNTAzLDcgKzUwMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAt
NTIxLDcgKzUyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTM0LDcgKzUzNCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETElu
dGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlVW5mb3JnZWFibGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKIH0KQEAgLTU1Miw3ICs1NTIsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNl
dHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIpOwogfQpAQCAtNTY1LDcg
KzU2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2Vh
YmxlUHJpdmF0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwog
fQpAQCAtNTgzLDcgKzU4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRp
b25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdz
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Pjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZSIpOwogfQpAQCAtNTk2LDcgKzU5
Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMRG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+
OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVByb21pc2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpS
ZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpAQCAtNjE0LDcgKzYx
NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0
aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2VTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UiKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAK
aW5kZXggNTk3Zjc2ZjRlMzgyMmZmYjk1OGI2OWI2OGM3MTllZjIxNTJjMTk3Mi4uZDNmMWIzNTZm
ZmFmYjc4MTA4ZTQ2NjZjNzI3OThmYTIyZjI0ZTAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAKQEAgLTU5
LDU2ICs1OSw1NiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0
aW9uR2V0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdl
dEF0dHJpYnV0ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9N
SklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElE
TERPTVN0cmluZz4pOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERP
TUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25JdGVtKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1XaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2ln
bmVkU2hvcnQ+LCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETFVuc2lnbmVkU2hvcnQ+KTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVG
dW5jdGlvbkhhc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25IYXNBdHRyaWJ1dGUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlV2l0aG91dFR5cGVDaGVjayhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZChK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCk7CiBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRFbGVtZW50QnlJZFdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMUmVxdWlyZXNFeGlz
dGluZ0F0b21TdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRz
QnlOYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRz
QnlOYW1lKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lV2l0aG91dFR5cGVDaGVjayhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9NSklUKiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJ
RExBdG9tU3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+Pik7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVEFueUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
Qm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUT2N0ZXRBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0QXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RET01KSVRGbG9hdEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVERvdWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9N
SklUVW5yZXN0cmljdGVkRG91YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RET01KSVREb21TdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERP
TUpJVEJ5dGVTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJ
VFVzdlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTm9k
ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQm9vbGVhbk51bGxh
YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlTnVsbGFi
bGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0TnVsbGFi
bGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0TnVsbGFi
bGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hv
cnROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9u
Z051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNp
Z25lZExvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9N
SklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxh
YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5n
TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0
cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRO
b2RlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUQW55QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVEJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRPY3RldEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRTaG9ydEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZFNo
b3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVExvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURmxvYXRBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5y
ZXN0cmljdGVkRmxvYXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklURG91YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZVN0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRVc3ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUTm9kZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0TnVs
bGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUU2hvcnROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVu
c2lnbmVkTG9uZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxh
YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVEZsb2F0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJs
ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVREb21TdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlU3RyaW5n
TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBzdGF0
aWMgY29uc3QgSlNDOjpET01KSVQ6OlNpZ25hdHVyZSBET01KSVRTaWduYXR1cmVGb3JUZXN0RE9N
SklUR2V0QXR0cmlidXRlKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRl
V2l0aG91dFR5cGVDaGVjaywgSlNUZXN0RE9NSklUOjppbmZvKCksIEpTQzo6RE9NSklUOjpFZmZl
Y3Q6OmZvclJlYWQoRE9NSklUOjpBYnN0cmFjdEhlYXBSZXBvc2l0b3J5OjpET00pLCBET01KSVQ6
OklETFJlc3VsdFR5cGVGaWx0ZXI8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj46OnZhbHVlLCBE
T01KSVQ6OklETEFyZ3VtZW50VHlwZUZpbHRlcjxJRExET01TdHJpbmc+Ojp2YWx1ZSk7CiAKQEAg
LTYxNSw3ICs2MTUsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RET01KSVQqIElETE9wZXJh
dGlvbjxKU1Rlc3RET01KSVQ+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdERPTUpJVCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01K
SVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjI1LDcgKzYyNSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RE
T01KSVQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RET01KSVRDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02
NDYsNyArNjQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEFueUF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmFueUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9N
SklUQW55QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERPTUpJVEFueUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEFueUF0dHJHZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhbnlBdHRyIik7CiB9CkBAIC02
NTksNyArNjU5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEJvb2xlYW5B
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5ib29sZWFuQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RET01KSVRCb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RE
T01KSVRCb29sZWFuQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImJvb2xlYW5BdHRyIik7CiB9CkBAIC02NzIsNyArNjcyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERPTUpJVEJ5dGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQnl0ZT4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRCeXRlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImJ5dGVBdHRyIik7CiB9CkBAIC02ODUsNyArNjg1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
T2N0ZXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwub2N0ZXRBdHRyKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUT2N0ZXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAib2N0ZXRBdHRyIik7CiB9CkBAIC02OTgsNyArNjk4LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0QXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMU2hvcnQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
c2hvcnRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0QXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUU2hvcnRBdHRyR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hvcnRBdHRyIik7CiB9CkBAIC03MTEs
NyArNzExLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hv
cnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZFNob3J0QXR0cigpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0QXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRyIik7CiB9CkBAIC03
MjQsNyArNzI0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5sb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
T01KSVRMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVExvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRMb25nQXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdBdHRyIik7CiB9
CkBAIC03MzcsNyArNzM3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVu
c2lnbmVkTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ0F0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVk
TG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdBdHRyIik7CiB9CkBA
IC03NTAsNyArNzUwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdM
b25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25nQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8
anNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibG9uZ0xvbmdBdHRyIik7CiB9CkBAIC03NjMsNyArNzYzLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMVW5zaWduZWRMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC51bnNpZ25lZExvbmdMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RE
T01KSVRVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC03NzYs
NyArNzc2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0QXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRmxvYXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZmxvYXRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERP
TUpJVEZsb2F0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVEZsb2F0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURmxvYXRB
dHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmxvYXRBdHRyIik7
CiB9CkBAIC03ODksNyArNzg5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJ
VFVucmVzdHJpY3RlZEZsb2F0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5yZXN0cmljdGVkRmxvYXQ+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRmxvYXRBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5y
ZXN0cmljdGVkRmxvYXRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAidW5yZXN0cmljdGVkRmxvYXRBdHRyIik7CiB9CkBAIC04MDIsNyArODAyLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvdWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvdWJs
ZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURG91YmxlQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERP
TUpJVERvdWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVERvdWJsZUF0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb3VibGVBdHRyIik7CiB9CkBAIC04MTUs
NyArODE1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3Rl
ZERvdWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5yZXN0cmljdGVkRG91YmxlPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVzdHJpY3RlZERvdWJsZUF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VFVucmVzdHJpY3RlZERvdWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVucmVzdHJpY3Rl
ZERvdWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJl
c3RyaWN0ZWREb3VibGVBdHRyIik7CiB9CkBAIC04MjgsNyArODI4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvbVN0cmlu
Z0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURG9tU3RyaW5nQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVERvbVN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHJH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb21TdHJpbmdBdHRyIik7
CiB9CkBAIC04NDEsNyArODQxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJ
VEJ5dGVTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2wKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQnl0ZVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nQXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0ckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ5dGVTdHJpbmdBdHRyIik7CiB9CkBAIC04NTQsNyAr
ODU0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnVzdlN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0RE9NSklUVXN2U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVzdlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVFVzdlN0cmluZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJ1c3ZTdHJpbmdBdHRyIik7CiB9CkBAIC04NjcsNyArODY3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
SW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5ub2RlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVROb2RlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5vZGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RE
T01KSVROb2RlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5v
ZGVBdHRyIik7CiB9CkBAIC04ODAsNyArODgwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURM
Qm9vbGVhbj4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYm9vbGVhbk51
bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFu
TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUQm9vbGVhbk51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9N
SklUQm9vbGVhbk51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImJvb2xlYW5OdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTg5Myw3ICs4OTMsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZU51bGxhYmxlQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExOdWxsYWJsZTxJRExCeXRlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5ieXRlTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxq
c1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYnl0ZU51bGxhYmxlQXR0ciIpOwogfQpAQCAtOTA2LDcgKzkwNiw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETE51bGxhYmxlPElETE9jdGV0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5vY3RldE51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0TnVsbGFibGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRPY3RldE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm9jdGV0TnVsbGFibGVBdHRyIik7CiB9CkBAIC05MTksNyArOTE5
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMU2hvcnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFNob3J0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hvcnROdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTkz
Miw3ICs5MzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRT
aG9ydE51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnNpZ25lZFNob3J0Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZFNob3J0TnVsbGFibGVB
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRO
dWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rl
c3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRTaG9ydE51bGxhYmxlQXR0ciIpOwogfQpAQCAtOTQ1
LDcgKzk0NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTnVsbGFi
bGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETExvbmc+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdOdWxsYWJs
ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25nTnVsbGFibGVBdHRyIik7CiB9CkBAIC05
NTgsNyArOTU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVk
TG9uZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5zaWduZWRMb25nPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdOdWxsYWJsZUF0
dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVs
bGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RE
T01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTk3MSw3ICs5
NzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJs
ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExMb25nTG9uZz4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0xvbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25n
TG9uZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0
dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsb25nTG9uZ051bGxh
YmxlQXR0ciIpOwogfQpAQCAtOTg0LDcgKzk4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElE
TFVuc2lnbmVkTG9uZ0xvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LnVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9u
Z0xvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdO
dWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnNp
Z25lZExvbmdMb25nTnVsbGFibGVBdHRyIik7CiB9CkBAIC05OTcsNyArOTk3LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTnVsbGFibGU8SURMRmxvYXQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmZsb2F0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVEZsb2F0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0
PGpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiZmxvYXROdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwMTAsNyArMTAxMCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51
bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVucmVzdHJpY3RlZEZsb2F0Pj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9h
dE51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46Omdl
dDxqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRy
Iik7CiB9CkBAIC0xMDIzLDcgKzEwMjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RE9NSklURG91YmxlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExEb3Vi
bGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRvdWJsZU51bGxhYmxl
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVOdWxsYWJs
ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RET01KSVREb3VibGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVERvdWJs
ZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRv
dWJsZU51bGxhYmxlQXR0ciIpOwogfQpAQCAtMTAzNiw3ICsxMDM2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ckdldHRl
cihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TnVsbGFibGU8SURMVW5yZXN0cmljdGVkRG91YmxlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC51bnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01K
SVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIiKTsKIH0KQEAg
LTEwNDksNyArMTA0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVREb21T
dHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG9tU3RyaW5nTnVsbGFibGVBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxl
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURG9t
U3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiZG9tU3RyaW5nTnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMDYyLDcgKzEwNjIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExOdWxsYWJsZTxJRExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5ieXRlU3RyaW5nTnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlU3RyaW5n
TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRy
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ051bGxh
YmxlQXR0ciIpOwogfQpAQCAtMTA3NSw3ICsxMDc1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdERPTUpJVFVzdlN0cmluZ051bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYg
bGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8
SURMVVNWU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51c3ZT
dHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
VXN2U3RyaW5nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46Omdl
dDxqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZTdHJpbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwODgs
NyArMTA4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVROb2RlTnVsbGFi
bGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEludGVyZmFjZTxOb2RlPj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLm5vZGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUTm9kZU51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpz
VGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJub2RlTnVsbGFibGVBdHRyIik7CiB9CkBAIC0xMTA4LDcgKzExMDgsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRBdHRyaWJ1dGVCb2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgaW1wbC5nZXRBdHRyaWJ1dGUoV1RGTW92ZShuYW1lKSkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25HZXRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFBy
b3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRB
dHRyaWJ1dGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldEF0dHJp
YnV0ZSIpOwogfQpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHkoSlNDOjpKU0cK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5pdGVtKFdURk1vdmUoeCks
IFdURk1vdmUoeSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25JdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpdGVtIik7CiB9
CkBAIC0xMTgwLDcgKzExODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVCb2R5KAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFu
PihpbXBsLmhhc0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpz
VGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXNBdHRyaWJ1dGUiKTsKIH0KQEAgLTEyMTQsNyArMTIx
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90
b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9kCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxFbGVtZW50Pj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5nZXRF
bGVtZW50QnlJZChXVEZNb3ZlKGVsZW1lbnRJZCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9u
R2V0RWxlbWVudEJ5SWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RE9N
SklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRFbGVtZW50QnlJZCIpOwog
fQpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJm
YWNlPE5vZGVMaXN0Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgaW1wbC5nZXRFbGVtZW50c0J5TmFtZShXVEZNb3ZlKGVsZW1lbnROYW1lKSkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBl
RnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxsPGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImdldEVsZW1lbnRzQnlOYW1lIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRv
SlNPTi5jcHAKaW5kZXggZWM1MDlkYmRmZmE2ZjMyZGEwMzkzN2I2ZTIyMWJmZWYxNDk1M2NiZC4u
NDM3NDY4MWFiNDQ3NGRmZTcyMDIyMjFkNWJjN2YzYzQxOGQ0NmRkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT04u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09OLmNwcApAQCAtNzAsNDUgKzcwLDQ1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RE
ZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Mb25nQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0
dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKICNpZiBFTkFCTEUoVEVTVF9DT05ESVRJT05BTCkKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVm
YXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3Ry
aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmlu
Z0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05TZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05T
ZWNvbmRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVk
RG91YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVm
YXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9K
U09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50
aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJl
Y3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNP
Tk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbGV2
ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05F
bGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0
ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRo
aXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRM
b25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlNlY29uZExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05h
YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJp
Y3RlZERvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBl
ZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05T
ZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05O
aW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNP
TmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjYxLDcgKzI2MSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIEpTVGVzdERlZmF1bHRUb0pTT04qIElETE9wZXJhdGlvbjxKU1Rlc3REZWZh
dWx0VG9KU09OPjo6Y2FzdChKCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RGVmYXVs
dFRvSlNPTio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhp
c1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzEsNyArMjcxLDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERl
ZmF1bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09OTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05M
b25nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzA1
LDcgKzMwNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5h
YmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkU2hvcnQ+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+
OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiZW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUiKTsKIH0KQEAgLTMxOSw3ICsz
MTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRC
eUNvbmRpdGlvbmFsQXR0cmlidXRlR2V0dGVyKEpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExFbnVtZXJhdGlvbjxUZXN0RGVmYXVsdFRvSlNPTkVudW0+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRCeUNvbmRpdGlvbmFs
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05F
bmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRp
b25hbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVk
QnlDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRCeUNvbmRpdGlv
bmFsQXR0cmlidXRlIik7CiB9CkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gZXZlbnRIYW5kbGVyQXR0cmlidXRlKHRoaXNPYmplY3Qud3JhcHBl
ZCgpLCBldmVudE5hbWVzKCkuZW50SGFuZGxlckF0dHJpYnV0ZUV2ZW50LCB3b3JsZEZvckRPTU9i
amVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERl
ZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImV2ZW50SGFuZGxlckF0dHJpYnV0ZSIpOwogfQpAQCAtMzQ3LDcg
KzM0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORXZlbnRI
YW5kbGVyQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9K
U09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImV2ZW50
SGFuZGxlckF0dHJpYnV0ZSIpOwogfQpAQCAtMzYwLDcgKzM2MCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNH
bG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maXJzdFN0cmlu
Z0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09O
Rmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVs
dFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJmaXJzdFN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzc4LDcgKzM3OCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdB
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0
VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNl
dDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZpcnN0U3RyaW5nQXR0
cmlidXRlIik7CiB9CkBAIC0zOTEsNyArMzkxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWMK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zZWNvbmRMb25nQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rl
c3REZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNlY29u
ZExvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwOSw3ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9i
YWxPYmplYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pT
T05TZWNvbmRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pT
T05TZWNvbmRMb25nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJzZWNvbmRMb25nQXR0cmlidXRlIik7CiB9CkBAIC00MjIsNyAr
NDIyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVu
SlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RFeGNlcHRpb24+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50
aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVu
SlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVGhp
cmRVbkpTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGhpcmRVbkpTT05hYmxlQXR0
cmlidXRlIik7CiB9CkBAIC00NDAsNyArNDQwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRV
bkpTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRv
SlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGhpcmRVbkpTT05hYmxlQXR0cmlidXRlIik7CiB9
CkBAIC00NTMsNyArNDUzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5yZXN0cmljdGVkRG91YmxlPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZvdXJ0aFVucmVzdHJpY3RlZERvdWJs
ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09O
Rm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVz
dHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pT
T05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmb3Vy
dGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3Rl
ZERvdWJsZUF0dHJpYnV0ZVNldHRlcgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0
cmljdGVkRG91YmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJmb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUiKTsK
IH0KQEAgLTQ4NCw3ICs0ODQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExDbGFtcEFkYXB0b3I8SURMTG9uZz4+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmlmdGhMb25nQ2xhbXBlZEF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlm
dGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlIik7CiB9
CkBAIC01MDIsNyArNTAyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRU
b0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlmdGhM
b25nQ2xhbXBlZEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiZmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZSIpOwogfQpAQCAtNTE1
LDcgKzUxNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2l4
dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5zaXh0aFR5cGVkZWZBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9K
U09OU2l4dGhUeXBlZGVmQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l4dGhUeXBlZGVmQXR0
cmlidXRlIik7CiB9CkBAIC01MzMsNyArNTMzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhU
eXBlZGVmQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNp
eHRoVHlwZWRlZkF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAic2l4dGhUeXBlZGVmQXR0cmlidXRlIik7CiB9CkBAIC01NDYsNyAr
NTQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRo
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwuc2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9K
U09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3Rs
eVRvSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXZlbnRoRGlyZWN0bHlUb0pT
T05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmli
dXRlU2V0dGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJs
ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAic2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTc3
LDcgKzU3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWln
aHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2U+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5laWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
Tj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUiKTsKIH0KQEAgLTU5NSw3ICs1
OTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aElu
ZGlyZWN0bHlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZh
dWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJlaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlIik7CiB9CkBAIC02MDgsNyArNjA4LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGly
ZWN0bHlUb0pTT05hYmxlQXR0cmlidXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0
aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25h
bERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1
bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAibmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpA
QCAtNjI2LDcgKzYyNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3Rs
eVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGly
ZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIm5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTYz
OSw3ICs2MzksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRl
bnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExGcm96ZW5BcnJheTxJRExCb29sZWFuPj4obGV4aWNh
bEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGlt
cGwudGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05U
ZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRv
SlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZW50aEZyb3pl
bkFycmF5QXR0cmlidXRlIik7CiB9CkBAIC02NTcsNyArNjU3LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVy
KEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJv
emVuQXJyYXlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rl
c3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVudGhGcm96ZW5BcnJheUF0
dHJpYnV0ZSIpOwogfQpAQCAtNjcwLDcgKzY3MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZUdldHRlcihKU0dsb2Jh
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNlcXVlbmNlPElE
TERPTVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLmVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6
Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjg4LDcgKzY4OCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1
ZW5jZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRU
b0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1
dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
ImVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTcwMSw3ICs3MDEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1
ZW5jZUF0dHJpYnV0ZUdldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Rmlu
YWw+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwudHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2Vx
dWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VT
ZXF1ZW5jZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5j
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNzE5LDcgKzcxOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlU2V0
dGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3
ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxm
dGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6
c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1
dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZSIpOwogfQpAQCAtNzMyLDcgKzczMiw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJl
Y29yZEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01TdHJpbmcsIElETFVuc2lnbmVkU2hvcnQ+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC50aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRv
SlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZh
dWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRoaXJ0
ZWVudGhSZWNvcmRBdHRyaWJ1dGUiKTsKIH0KQEAgLTc1MCw3ICs3NTAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVT
ZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1
bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhp
cnRlZW50aFJlY29yZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNl
dEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0aGlydGVlbnRoUmVj
b3JkQXR0cmlidXRlIik7CiB9CkBAIC03ODcsNyArNzg3LDcgQEAgc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5
KEpTR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT04sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0RGVmYXVsdFRvSlNPTj46OmNhbGw8anNUZXN0RGVmYXVsdFRvSlNPTlByb3RvdHlwZUZ1bmN0
aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b0pTT04i
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZC5jcHAKaW5kZXggNjY0ZDcxZjFkM2VjOTg4MDY4YTk1N2I4YmMwNmM5YmRjZWRjOGMz
Zi4uNjI0M2FhZTY1ZmM1ODEzNzAyOTE0YzM3OGNmYWIwYzczMGExMTkxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAKQEAg
LTQ5LDE1ICs0OSwxNSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvblRvSlNPTik7CiAKIC8v
IEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhw
b3NlZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xh
c3MgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTIsNyArMTkyLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
KiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjIzLDcgKzIyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGVHZXR0ZXIoCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubm9ybWFsQXR0cmlidXRlKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1h
bEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibm9ybWFsQXR0cmli
dXRlIik7CiB9CkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG8KICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0
cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5
RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
ZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUiKTsKIH0KQEAgLTI0OSw3ICsyNDksNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuZmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4
cG9zZWRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJl
ZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ+Ojpn
ZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRX
b3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0
dHJpYnV0ZSIpOwogfQpAQCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rp
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3Rv
dHlwZUZ1bmN0aW9uVG9KU09OKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWQ+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlw
ZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0
b0pTT04iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTklu
ZGlyZWN0SW5oZXJpdGFuY2UuY3BwCmluZGV4IDRkYzFkYzBkODFiMWI4OTZmYjA4YTI2YjVmNzg3
MGFlNDVlMDFhYTIuLmZkZDY1MzUxYzcyMjQ1NTZkY2RjNDExZTEyZjczZGYyNzJiZTFlYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
ZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVy
aXRhbmNlLmNwcApAQCAtNDMsOCArNDMsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNDEsNyArMTQxLDcgQEAgSlNW
YWx1ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZTo6Z2V0Q29uc3RydWN0
b3IoVk0mIHZtLCBjb25zdCBKU0cKICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8
Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERl
ZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTEsNyAr
MTUxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJp
dGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFu
Y2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXQuY3BwCmluZGV4IDA2OTVhM2ExZTFhYWU2ZTIwOTVlYjhiYzU1OGI3ZTBlYThlZGJl
MzUuLjlmYzgwNGIxNjhmMzQ1YjFhNjQxMzQwMmE2ZDg4OTk4ZmY4MzM0NGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcApAQCAtNjYsMTQgKzY2LDE0IEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlv
blRvSlNPTihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5j
dGlvblRvSlNPTik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRMb25nQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CkBAIC0xODIsNyArMTgyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQqIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KU09OSW4K
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdCo+KEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Miw3ICsxOTIsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEzLDcgKzIxMyw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVyaXRM
b25nQXR0cmlidXRlR2V0dGVyKEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
aW5oZXJpdExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpnZXQ8anNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImluaGVy
aXRMb25nQXR0cmlidXRlIik7CiB9CkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0
ZXIoSlNHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEluaGVyaXRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Pjo6
c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImluaGVy
aXRMb25nQXR0cmlidXRlIik7CiB9CkBAIC0yNjksNyArMjY5LDcgQEAgc3RhdGljIGlubGluZSBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5
cGVGdW5jdGlvblRvSlNPTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdD46OmNhbGw8anNUZXN0RGVm
YXVsdFRvSlNPTkluaGVyaXRQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9KU09OIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAKaW5kZXggZGQwMmM2ZWI1NDFjNjYwZTBm
MGI2ZDE5ZWMzNzZmMmI0NzQ4YWY0ZS4uMTgxYTUyMTJiNTcxMTgzY2M1Njk1MDdhNTc4NjcxNDJh
MmI1YzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsLmNwcApAQCAtNjYsMTYgKzY2LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1
bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZv
byhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmli
dXRlRm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9u
Z0F0dHJpYnV0ZUJhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODUsNyArMTg1LDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCogSURMT3BlcmF0aW9u
PEpTVGVzdERlZmF1bHRUb0oKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE2LDcgKzIxNiw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0
cmlidXRlRm9vR2V0dGVyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmluYWxMb25n
QXR0cmlidXRlRm9vKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28oSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpnZXQ8anNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvb0dldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyIpOwogfQpAQCAtMjM0LDcgKzIzNCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmlu
YWxMb25nQXR0cmlidXRlRm9vU2V0dGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb29TZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyIp
OwogfQpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyR2V0dGVyCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuZmluYWxMb25nQXR0cmlidXRlQmFyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVCYXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbmFsTG9uZ0F0dHJp
YnV0ZUJhciIpOwogfQpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyU2V0dGVy
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdB
dHRyaWJ1dGVCYXJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImZpbmFsTG9uZ0F0dHJpYnV0ZUJhciIpOwogfQpAQCAtMzA1LDcgKzMwNSw3IEBA
IHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0RmluYWw+OjpjYWxsPGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxQcm90
b3R5cGVGdW5jdGlvblRvSlNPTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidG9KU09OIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2VjdXJpdHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcAppbmRleCBiNWM1
ODkzNjgyNzUxMmNiNmRiOGZkNDAyODQ4ZDMxZDhhZDEyMGU5Li4wZTNkOTM5M2E0OTFhMWZjMDQ3
OGM4YThiMmYyNjgwYjE5NzlkYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2VjdXJpdHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAK
QEAgLTUyLDE1ICs1MiwxNSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERvbWFpblNlY3VyaXR5
UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5n
RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0
eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1
cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERvbWFpblNlY3VyaXR5Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUV4
Y2l0aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwog
CiBjbGFzcyBKU1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdERvbWFpblNlY3VyaXR5KiBJRExPcGVyYXRpb248SlNUZXN0RG9tYWlu
U2VjdXJpdHk+OjpjYXN0CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RG9tYWluU2Vj
dXJpdHkqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNW
YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDEsNyArMjAxLDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERv
bWFpblNlY3VyaXR5OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RG9t
YWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmV4Y2l0aW5nQXR0cigpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUV4Y2l0aW5nQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERvbWFp
blNlY3VyaXR5RXhjaXRpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERvbWFpblNlY3VyaXR5Pjo6Z2V0PGpzVGVzdERvbWFpblNlY3Vy
aXR5RXhjaXRpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZXhjaXRpbmdBdHRyIik7CiB9CkBAIC0y
NTIsNyArMjUyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERv
bWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0YKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlw
ZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3REb21haW5TZWN1cml0eT46OmNhbGw8anNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5
cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImV4Y2l0aW5nRnVuY3Rpb24iKTsKIH0KQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5
cGVGdW5jdGlvblBvc3RNZXNzYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RG9tYWluU2Vj
dXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxs
PGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZUJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicG9zdE1lc3NhZ2UiKTsKIH0KQEAgLTMz
Myw3ICszMzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9t
YWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZQogICAgIHJldHVybiBhcmdzQ291
bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93
Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERv
bWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERvbWFpblNlY3VyaXR5Pjo6Y2FsbDxqc1Rlc3RE
b21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2FkRGlz
cGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0
aG9kIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5kZXggMjU1OTQx
Y2NiZmJlZDQ0ZTU5NzcyZWVmNWE4ZmQwMWVhNjAxNGEyYy4uNzNjNTY5MDk5YmNjZjA2YzQ1YzFl
MDQ0MjI2ZjgyNjc0YjAyY2UyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNw
cApAQCAtNTIsMjUgKzUyLDI1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAvLyBGdW5jdGlvbnMK
IAogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0
dGluZ09wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1
bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbik7CiAjZW5kaWYKIAogLy8gQXR0cmlidXRl
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Z0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0
U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoVEVT
VF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
RW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVT
VF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5
U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdv
U2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlm
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRh
bEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNjMsNyArMjYzLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZyogSURMT3BlcmF0aW9u
PEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3
Myw3ICsyNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjkyLDcgKzI5Miw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9i
akVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0
aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdU
ZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+OjpnZXQ8
anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZyIpOwogfQpAQCAtMzA0LDcgKzMwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdWJPYmpF
bmFibGVkQnlTZXR0aW5nIiksIHN0cmxlbigiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVu
YWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJP
YmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGlu
Zz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRp
bmdDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmciKTsKIH0KQEAgLTMxOCw3ICsz
MTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVu
YWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+Ojpn
ZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIik7CiB9CkBAIC0zMzksNyArMzM5
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVk
QnlTZXR0aW5nQXR0cmlidXRlU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5
U2V0dGluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMzU1LDcg
KzM1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5lbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSgpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGlu
Z3NBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0
ZSIpOwogfQpAQCAtMzc2LDcgKzM3Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVTZXR0ZXIoCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRC
eVR3b1NldHRpbmdzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdv
U2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OnNldDxzZXRK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRC
eVR3b1NldHRpbmdzQXR0cmlidXRlIik7CiB9CkBAIC0zOTEsNyArMzkxLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpU
ZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsQXR0cmlidXRlKGlt
cGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxl
bWVudGFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nPjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwOSw3
ICs0MDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1
cHBsZW1lbnRhbEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZz46OnNldDxzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFs
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJzdXBwbGVtZW50YWxBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzMiw3ICs0MzIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1By
b3RvdHlwZUZ1bmN0aW9uRW5hYmxlZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Byb3RvdHlwZUZ1
bmN0aW9uRW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6Y2FsbDxqc1Rlc3RFbmFibGVkQnlTZXR0
aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcAppbmRleCAzZGViMDBjNGQ1
MzBmMjUyOWZlNTJlZTk0ZWEzZmRiYWMwYThhZDRhLi43MGM4MTI3MjI4N2U5YmMxN2RiM2UyMGE4
NDk4NmNiZTNhMThjNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHAK
QEAgLTQ4LDEwICs0OCwxMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2Jq
RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkRm9yQ29udGV4
dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEZv
ckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRGb3JD
b250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBj
bGFzcyBKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTYyLDcgKzE2Miw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0KiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5h
YmxlZEZvckNvbnRleHQ+CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RW5hYmxlZEZv
ckNvbnRleHQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29u
dGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Miw3
ICsxNzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0RW5hYmxlZEZvckNvbnRleHQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVk
Rm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTkxLDcgKzE5MSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjCiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29u
dGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEZvckNvbnRl
eHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dD46
OmdldDxqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1
Yk9iakVuYWJsZWRGb3JDb250ZXh0Iik7CiB9CkBAIC0yMDMsNyArMjAzLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JD
b250ZXh0Q29uc3RydWMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0IiksIHN0cmxlbigiVGVzdFN1Yk9iakVuYWJsZWRGb3JD
b250ZXh0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRU
ZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEZvckNv
bnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RF
bmFibGVkRm9yQ29udGV4dD46OnNldDxzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQi
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCAxNTA4ZDM1ZjBj
ZGNhNDY5YjljYzI5ZjdiZDIyYTliOTBmNjJhOGQ4Li45YzhmODU1MWE3ZjY4NjhhMjUwZjU4MTVk
YTFhZTQ0Njc2NDI3ZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBA
IC0xMjMsMTIgKzEyMywxMiBAQCB0ZW1wbGF0ZTw+IFRlc3RFdmVudENvbnN0cnVjdG9yOjpJbml0
IGNvbnZlcnREaWN0aW9uYXJ5PFRlc3RFdmVudENvbnN0cnVjdG9yOjpJbgogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9y
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lmIEVO
QUJMRShTUEVDSUFMX0VWRU5UKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogCiBjbGFzcyBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CkBAIC0xNjUsNyArMTY1LDcgQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFC
TEUoSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSwgSlNUZXN0RXZlbnQKIAogdXNpbmcg
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3RvcjxKU1Rl
c3RFdmVudENvbnN0cnVjdG9yPjsKIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3Rl
bXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdEV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBs
ZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTg4LDYgKzE4OCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmNv
bnN0CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElP
TihKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdEV2ZW50
Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVl
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpA
QCAtMjYyLDcgKzI2Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV2ZW50Q29uc3RydWN0
b3IqIElETEF0dHJpYnV0ZTxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPjo6CiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI3Miw3ICsyNzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RF
dmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjkzLDcgKzI5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyMSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjEoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjFHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJhdHRyMSIpOwogfQpAQCAtMzA2LDcgKzMwNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyMigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudENvbnN0cnVj
dG9yQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJhdHRyMiIpOwogfQpAQCAtMzIwLDcgKzMyMSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjNHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRy
MygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjMo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RF
dmVudENvbnN0cnVjdG9yQXR0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyMyIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5jcHAKaW5kZXggN2U2MTQ1NGZmNTlkZWU4N2ZjOTZiMTk2MjA3ODA4NWQ1YzRmNzMxMy4u
MDMyMTcyNDZkZGY2NTYxNWI0YTg5YmU3NjFlMmQ5ZDkzMzExMmMzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRUYXJnZXQuY3BwCkBAIC01MCwxMiArNTAsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
Ly8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0RXZlbnRUYXJn
ZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNz
IEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMjYsNyArMjI2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0RXZlbnRUYXJnZXQqIElETE9wZXJhdGlvbjxKU1Rlc3RFdmVudFRhcmdldD46OmNhc3Qo
SlNHbG8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRUYXJnZXRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIzNiw3ICsyMzYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RF
dmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjY0LDcg
KzI2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRh
cmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbUJvZHkoSlNDCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5pdGVt
KFdURk1vdmUoaW5kZXgpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGVGdW5jdGlvbkl0ZW0sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RXZlbnRUYXJnZXQ+OjpjYWxsPGpzVGVzdEV2
ZW50VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJpdGVtIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCmluZGV4IGUwN2I0
ZWE1N2Q1ZDhjOGI3NDM2ZDRkYzA3MDNmZTE5ZmJhYzdkYzcuLmI2MTAwMThjMjk0YjkxMjRmNTQ4
YmM2MDRjMTNjMGY0MjYwNjRmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCkBAIC00Niw5ICs0
Niw5IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEV4Y2VwdGlvbk5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RFeGNlcHRpb25OYW1lKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV4Y2VwdGlv
biogSURMQXR0cmlidXRlPEpTVGVzdEV4Y2VwdGlvbj46OmNhc3QoSlNHbG9iYWxPCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE2OCw3ICsxNjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0RXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5uYW1lKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFeGNlcHRpb25OYW1l
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEV4
Y2VwdGlvbj46OmdldDxqc1Rlc3RFeGNlcHRpb25OYW1lR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibmFtZSIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDU2NGY2
ZmRjZmQ2NWJhODBlMGE0MGNhNGIyMWQ4ZGE1NTBmNDFkMWQuLmRiNWZkZDk4OTgzOWIzOTQzZDM3
YmRmNTE1NzI2OTJjYTY1MDgxYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZS5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlQVNlY3JldEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUFTZWNyZXRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTY4LDcgKzE2OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUqIElETEF0dHJpYnV0ZTxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3OCw3ICsxNzgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5LDcgKzE5OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hU2Vj
cmV0QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFTZWNyZXRBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZT46OmdldDxqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3Jl
dEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFTZWNyZXRBdHRyaWJ1dGUiKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9i
YWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdsb2JhbE9iamVjdC5jcHAKaW5kZXggYjQyMDg2YTAxNWI1OTAwMjcyNDUzOTljYzVlZmUz
NjUxMjA5ZDU5ZC4uYTE2NjQ3Mjc2YWIxZTU2MmM3MTM2ZmFmYTdjODdkMGU1ZDhlMzhlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAKQEAgLTEzNywxOTMgKzEzNywxOTMgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJh
dGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJP
cGVyYXRpb24pOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNU
X0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFs
T2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uU3RhdGljKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVj
aWZpY1dvcmxkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZElu
U3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25F
bmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQpOwogI2lmIEVOQUJM
RShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rpb24oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uKTsK
ICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9i
amVjdEluc3RhbmNlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4oSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRS
ZXN1bHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0
YW5jZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTsK
ICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RS
ZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQ
dWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RS
ZWd1bGFyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRp
b25hbEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJp
dmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNU
X0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRB
dFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxl
ZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RE9N
V2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogI2lmIEVOQUJMRShURVNUX0NPTkRJVElPTkFMKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVm
YXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRp
cmVjdEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5T
ZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RE
b21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZl
bnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNP
TkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNl
Y3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNl
dHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9y
Q29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRU
YXJnZXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xv
YmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKENv
bmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VM
ZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RBdWRp
b0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJh
YmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RBdWRp
b0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFw
TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRo
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uRGVyaXZlZCkKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RS
ZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1
Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFk
T25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRP
bmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShDb25k
aXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0
TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0
dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmlu
Z0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5
cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiB1c2luZyBKU1Rlc3RHbG9iYWxPYmpl
Y3RDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEds
b2JhbE9iamVjdD47CiAKQEAgLTgyNyw3ICs4MjcsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3RHbG9iYWxPYmplY3QqIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYXN0KEpT
RwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEdsb2JhbE9iamVjdCo+KEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtODM3LDcgKzgzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RHbG9iYWxPYmplY3Q6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04NTgs
NyArODU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3Vs
YXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnJlZ3VsYXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJyZWd1bGFyQXR0cmlidXRlIik7CiB9CkBAIC04NzYsNyArODc2
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RSZWd1bGFyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWd1bGFyQXR0cmlidXRlIik7CiB9CkBAIC04
ODksNyArODg5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1
YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLnB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlIik7CiB9
CkBAIC05MDcsNyArOTA3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQ
cml2YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlIik7CiB9CkBAIC05MjEsNyAr
OTIxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0Fu
ZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29u
ZGl0aW9uYWxBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZh
dGVDb25kaXRpb25hbEF0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSIpOwogfQpAQCAtOTQy
LDcgKzk0Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJs
aWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGVTZXR0CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFs
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHVibGljQW5kUHJpdmF0ZUNv
bmRpdGlvbmFsQXR0cmlidXRlIik7CiB9CkBAIC05NTgsNyArOTU4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRB
dFJ1bnRpbWVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRp
bWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJl
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlIik7CiB9CkBAIC05NzksNyArOTc5LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmFibGVkQXRSdW50
aW1lQXR0cmlidXRlIik7CiB9CkBAIC05OTIsNyArOTkyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWMKICAgICByZXR1cm4gSlNET01XaW5kb3c6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJET01XaW5kb3ciKTsKIH0KQEAgLTEwMDQsNyArMTAwNCw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvclNldHRl
cihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkRP
TVdpbmRvdyIpLCBzdHJsZW4oIkRPTVdpbmRvdyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RE
T01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIkRPTVdpbmRvdyIpOwogfQpAQCAtMTAx
NSw3ICsxMDE1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXQKICAgICByZXR1cm4gSlNEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkRl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvclNldAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpLCBzdHJsZW4oIkRlZGljYXRlZFdvcmtlckds
b2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwMzgsNyArMTAz
OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpTUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJQYWludFdvcmtsZXRHbG9iYWxTY29w
ZSIpOwogfQpAQCAtMTA1MCw3ICsxMDUwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXIKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGUiKSwgc3RybGVuKCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFBhaW50
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIik7CiB9
CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZQogICAgIHJldHVy
biBKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpAQCAtMTA3Myw3ICsxMDczLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlIiksIHN0cmxlbigiU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdv
cmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDg0LDcgKzEwODQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0
b3JHZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiBKU1Rlc3RDRVJlYWN0aW9uczo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VS
ZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDRVJlYWN0
aW9ucyIpOwogfQpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmEK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENFUmVhY3Rpb25zIiks
IHN0cmxlbigiVGVzdENFUmVhY3Rpb25zIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdENFUmVh
Y3Rpb25zIik7CiB9CkBAIC0xMTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25zdHJ1Y3Rvckdl
dAogICAgIHJldHVybiBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiKTsKIH0KQEAgLTEx
MTksNyArMTExOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yU2V0CiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIiksIHN0cmxl
bigiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIp
OwogfQpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWwKICAgICBy
ZXR1cm4gSlNUZXN0Q2FsbFRyYWNlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDYWxsVHJhY2VyIik7CiB9CkBAIC0xMTQyLDcgKzExNDIs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFj
ZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0Q2FsbFRyYWNlciIpLCBzdHJsZW4oIlRlc3RDYWxsVHJhY2VyIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxU
cmFjZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdENhbGxUcmFjZXIiKTsKIH0KQEAgLTExNTQsNyArMTE1NCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRl
cmZhY2VDb25zdHJ1Y3RvckdldHRlcihKCiAgICAgcmV0dXJuIEpTVGVzdENhbGxiYWNrSW50ZXJm
YWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENhbGxiYWNrSW50ZXJmYWNlIik7CiB9CkBAIC0xMTY5
LDcgKzExNjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXIoSgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKSwgc3RybGVuKCJUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q2FsbGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKTsKIH0KQEAgLTExODIsNyArMTE4Miw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1CiAgICAgcmV0dXJuIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yIik7CiB9CkBAIC0xMTk0LDcg
KzExOTQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKSwgc3Ry
bGVuKCJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KQEAgLTEyMDUsNyArMTIw
NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpTVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
cyIpOwogfQpAQCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JTZXR0ZXIKICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXMiKSwgc3RybGVuKCJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RD
b25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIik7CiB9
CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZQogICAgIHJldHVy
biBKU1Rlc3RET01KSVQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERP
TUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9N
SklUQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0RE9NSklUIik7CiB9CkBAIC0xMjQwLDcgKzEyNDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJVENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RE9NSklUIiks
IHN0cmxlbigiVGVzdERPTUpJVCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERPTUpJ
VENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RET01KSVQiKTsKIH0KQEAgLTEyNTEsNyAr
MTI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVm
YXVsdFRvSlNPTkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1
bHRUb0pTT046OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RE
ZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTiIpOwogfQpAQCAtMTI2Myw3ICsxMjYzLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdERlZmF1bHRUb0pTT04iKSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTiIp
KSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OIik7CiB9CkBAIC0x
Mjc0LDcgKzEyNzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29ucwogICAgIHJldHVybiBKU1Rl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTklu
ZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09O
SW5kaXJlY3RJbmhlcml0YW5jZSIpOwogfQpAQCAtMTI4Niw3ICsxMjg2LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZUNvbnMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIiksIHN0cmxlbigiVGVzdERlZmF1bHRU
b0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5j
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlIik7CiB9CkBAIC0xMjk3LDcgKzEyOTcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0Q29uc3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdCIpOwogfQpAQCAtMTMwOSw3ICsxMzA5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yU2V0dGUK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0IiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0IikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0Iik7CiB9CkBAIC0xMzIwLDcgKzEzMjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rvcgog
ICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwi
KTsKIH0KQEAgLTEzMzIsNyArMTMzMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsIiksIHN0cmxlbigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTklu
aGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpOwogfQpAQCAtMTM0Myw3ICsxMzQzLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0
eUNvbnN0cnVjdG9yR2V0dGVyKEpTR2wKICAgICByZXR1cm4gSlNUZXN0RG9tYWluU2VjdXJpdHk6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2Vj
dXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERv
bWFpblNlY3VyaXR5Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0RG9tYWluU2VjdXJpdHkiKTsKIH0KQEAgLTEzNTUsNyArMTM1NSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlD
b25zdHJ1Y3RvclNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3REb21haW5TZWN1cml0eSIpLCBzdHJsZW4oIlRlc3REb21haW5TZWN1cml0eSIpKSwg
dmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0
eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REb21haW5TZWN1cml0eSIpOwogfQpAQCAt
MTM2Niw3ICsxMzY2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3JHZXR0ZXIoSlMKICAgICByZXR1cm4gSlNU
ZXN0RW5hYmxlZEJ5U2V0dGluZzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RFbmFibGVkQnlTZXR0aW5nIik7
CiB9CkBAIC0xMzc4LDcgKzEzNzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvclNldHRlcihKUwogICAgIHJl
dHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RW5hYmxlZEJ5U2V0dGluZyIpLCBz
dHJsZW4oIlRlc3RFbmFibGVkQnlTZXR0aW5nIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciKTsKIH0KQEAgLTEzODksNyArMTM4OSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNv
bnRleHRDb25zdHJ1Y3RvckdldHRlcihKCiAgICAgcmV0dXJuIEpTVGVzdEVuYWJsZWRGb3JDb250
ZXh0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVu
YWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEVuYWJsZWRGb3JDb250ZXh0Iik7CiB9CkBAIC0xNDAx
LDcgKzE0MDEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JTZXR0ZXIoSgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RW5hYmxlZEZvckNvbnRleHQiKSwgc3RybGVuKCJUZXN0
RW5hYmxlZEZvckNvbnRleHQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0RW5hYmxlZEZvckNvbnRleHQiKTsKIH0KQEAgLTE0MTIsNyArMTQxMiw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRDb25zdHJ1Y3RvckNv
bnN0cnVjdG9yR2V0dGVyKEpTCiAgICAgcmV0dXJuIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RF
dmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0RXZlbnRDb25zdHJ1Y3RvciIpOwogfQpAQCAtMTQyNCw3ICsxNDI0LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXIoSlMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdEV2ZW50Q29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0RXZlbnRDb25zdHJ1
Y3RvciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFdmVudENvbnN0
cnVjdG9yIik7CiB9CkBAIC0xNDM1LDcgKzE0MzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YQogICAgIHJldHVybiBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RFdmVudFRhcmdldCIpOwogfQpAQCAt
MTQ0Nyw3ICsxNDQ3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEV2ZW50VGFyZ2V0IiksIHN0cmxlbigiVGVzdEV2
ZW50VGFyZ2V0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV2ZW50VGFyZ2V0Iik7CiB9CkBA
IC0xNDU4LDcgKzE0NTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiBK
U1Rlc3RFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0RXhjZXB0aW9uIik7CiB9CkBAIC0xNDcwLDcgKzE0NzAsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0RXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdEV4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3RFeGNlcHRpb24iKTsKIH0KQEAgLTE0ODEsNyArMTQ4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
R2V0dGVyCiAgICAgcmV0dXJuIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIpOwogfQpAQCAtMTQ5Myw3ICsxNDkz
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUiKSwgc3RybGVuKCJUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIik7CiB9CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYgogICAgIHJldHVybiBKU1Rlc3RHbG9iYWxPYmplY3Q6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2Jq
ZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0R2xvYmFsT2JqZWN0Iik7CiB9CkBAIC0xNTE2LDcgKzE1MTYsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yU2V0
dGVyKEpTR2xvYgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0R2xv
YmFsT2JqZWN0IiksIHN0cmxlbigiVGVzdEdsb2JhbE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RHbG9iYWxPYmplY3QiKTsKIH0KQEAgLTE1MjcsNyArMTUyNyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTUzOSw3ICsxNTM5LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBA
IC0xNTUwLDcgKzE1NTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cgogICAgIHJldHVybiBK
U1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xNTYyLDcgKzE1NjIsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE1NzMsNyArMTU3Myw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0CiAgICAgcmV0dXJuIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE1ODUsNyArMTU4NSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllciIpOwogfQpAQCAtMTU5Nyw3ICsxNTk3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE8K
ICAgICByZXR1cm4gSlNUZXN0SW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEludGVyZmFjZSIpOwogfQpAQCAtMTYxMiw3ICsxNjEy
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdEludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RJbnRlcmZhY2UiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNlIik7CiB9CkBAIC0xNjI1LDcgKzE2MjUsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdV
bmRlcnNjb3JlQ29uc3RydWN0bwogICAgIHJldHVybiBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVD
b25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJ
bnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSIpOwogfQpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG8KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlIiksIHN0cmxlbigiVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJm
YWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNj
b3JlIik7CiB9CkBAIC0xNjQ4LDcgKzE2NDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYgog
ICAgIHJldHVybiBKU1Rlc3RJdGVyYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RJdGVyYWJsZSIpOwogfQpAQCAtMTY2MCw3ICsxNjYwLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0
cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qo
dm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPigiVGVzdEl0ZXJhYmxlIiksIHN0cmxlbigiVGVzdEl0ZXJhYmxlIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3Rv
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
VGVzdEl0ZXJhYmxlIik7CiB9CkBAIC0xNjcxLDcgKzE2NzEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0
b3JHZXR0ZQogICAgIHJldHVybiBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpAQCAtMTY4Myw3
ICsxNjgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yU2V0dGUKICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIiksIHN0cmxlbigiVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIik7CiB9CkBAIC0xNjk0LDcg
KzE2OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdExl
Z2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yR2V0dAogICAgIHJldHVybiBKU1Rlc3Q6Omdl
dExlZ2FjeUZhY3RvcnlGdW5jdGlvbihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbiIpOwogfQpAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvclNldHQK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdExlZ2FjeUZhY3RvcnlG
dW5jdGlvbiIpLCBzdHJsZW4oIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24iKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uIik7CiB9CkBAIC0xNzE3LDcgKzE3MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbAogICAgIHJldHVybiBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmdldExlZ2FjeUZh
Y3RvcnlGdW5jdGlvbihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dEF1ZGlvQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiQXVkaW8iKTsKIH0KQEAgLTE3MjksNyArMTcyOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIkF1ZGlvIiksIHN0cmxlbigiQXVkaW8iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRp
b0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9i
YWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJBdWRpbyIpOwogfQpAQCAtMTc0MCw3ICsxNzQwLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXQKICAgICByZXR1cm4gSlNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zIik7CiB9CkBAIC0xNzUyLDcgKzE3NTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
clNldAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TGVnYWN5T3Zl
cnJpZGVCdWlsdElucyIpLCBzdHJsZW4oIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAgLTE3NjMsNyArMTc2Myw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9yR2V0
dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVGVzdE1hcExpa2U6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TWFwTGlrZSIpOwogfQpAQCAtMTc3NSw3
ICsxNzc1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RN
YXBMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiVGVzdE1hcExpa2UiKSwgc3RybGVuKCJUZXN0TWFwTGlrZSIpKSwg
dmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RNYXBMaWtlIik7CiB9CkBAIC0xNzg2LDcgKzE3ODYsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNDb25zdAogICAgIHJldHVybiBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAgLTE3
OTgsNyArMTc5OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0CiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
IiksIHN0cmxlbigiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwog
fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb24KICAgICByZXR1
cm4gSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTgyMSw3ICsxODIxLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb24KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4o
IlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9
CkBAIC0xODMyLDcgKzE4MzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aQogICAgIHJldHVy
biBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIp
OwogfQpAQCAtMTg0NCw3ICsxODQ0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGkKICAgICBy
ZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBA
IC0xODU1LDcgKzE4NTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQwogICAgIHJldHVybiBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMTg2Nyw3ICsx
ODY3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckMKICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIiks
IHN0cmxlbigiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyIik7CiB9CkBAIC0xODc4LDcgKzE4NzgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yRwogICAgIHJldHVybiBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyIik7CiB9CkBAIC0xODkwLDcgKzE4OTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yUwog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllciIpKSwgdmFs
dWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE5MDEsNyArMTkwMSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1CiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0xOTEz
LDcgKzE5MTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydQogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKSwg
c3RybGVuKCJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE5MjQsNyAr
MTkyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xOTM2LDcg
KzE5MzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0bwogICAgIHJldHVybiB0aGlzT2JqZWN0
LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVu
KCJUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE5NDcsNyArMTk0Nyw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRH
ZXR0ZXJDb25zdHJ1CiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyIik7CiB9CkBAIC0xOTU5LDcgKzE5NTks
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERp
cmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKSwgc3RybGVuKCJU
ZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0
dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsKIH0KQEAgLTE5NzAsNyArMTk3MCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJD
YWxsV2l0aENvbnN0cnVjdG9yR2V0dGVyCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkR2V0dGVyQ2Fs
bFdpdGg6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0
aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpOwog
fQpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3JTZXR0ZXIKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiKSwg
c3RybGVuKCJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIik7CiB9CkBAIC0x
OTkzLDcgKzE5OTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZQogICAgIHJldHVybiBKU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMjAwNSw3ICsyMDA1LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2UKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBA
IC0yMDE2LDcgKzIwMTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcgogICAgIHJldHVybiBK
U1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRH
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIw
MjgsNyArMjAyOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyIiksIHN0
cmxlbigiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0
ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjAzOSw3ICsyMDM5LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yR2UKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIiKTsKIH0KQEAgLTIwNTEsNyArMjA1MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNlCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUp
OwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1l
ZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMjA2Miw3ICsyMDYyLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWMKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0yMDc0LDcgKzIwNzQsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTIwODUsNyArMjA4NSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjA5Nyw3ICsyMDk3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFs
T2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0y
MTA4LDcgKzIxMDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1YwogICAgIHJldHVybiBKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIi
KTsKIH0KQEAgLTIxMjAsNyArMjEyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIiKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAt
MjEzMSw3ICsyMTMxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGUKICAgICByZXR1cm4gSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIik7CiB9CkBAIC0y
MTQzLDcgKzIxNDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZQogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFu
ZFNldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiKTsKIH0KQEAgLTIxNTQsNyArMjE1NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMjE2Niw3ICsyMTY2LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW4KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSwgc3Ry
bGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpKSwgdmFsdWUp
OwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0yMTc3LDcgKzIxNzcsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcAogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzIik7CiB9CkBAIC0yMTg5
LDcgKzIxODksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcAogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllcyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXMiKTsKIH0KQEAgLTIyMDAsNyArMjIwMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wCiAg
ICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpOwogfQpAQCAtMjIxMiw3ICsy
MjEyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3AKICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIp
KSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5z
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0yMjI0LDcgKzIyMjQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlv
bkNvbmRpdGlvbmFsQ29uc3RydWN0b3JHZXR0ZQogICAgIHJldHVybiBKU1Rlc3RPcGVyYXRpb25D
b25kaXRpb25hbDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RPcGVyYXRpb25Db25kaXRp
b25hbCIpOwogfQpAQCAtMjIzOSw3ICsyMjM5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yU2V0dGUK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsIiksIHN0cmxlbigiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE9wZXJhdGlvbkNvbmRpdGlv
bmFsIik7CiB9CkBAIC0yMjUyLDcgKzIyNTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDbwog
ICAgIHJldHVybiBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dp
dGhTZXF1ZW5jZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKTsKIH0KQEAgLTIy
NjQsNyArMjI2NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlIiksIHN0cmxlbigiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZSIpOwogfQpAQCAtMjI3NSw3ICsyMjc1LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rvckdl
dHRlcihKU0cKICAgICByZXR1cm4gSlNUZXN0UGx1Z2luSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5J
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFj
ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVz
dFBsdWdpbkludGVyZmFjZSIpOwogfQpAQCAtMjI4Nyw3ICsyMjg3LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rv
clNldHRlcihKU0cKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFBs
dWdpbkludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RQbHVnaW5JbnRlcmZhY2UiKSksIHZhbHVlKTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBs
dWdpbkludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0UGx1Z2luSW50ZXJmYWNlIik7CiB9CkBAIC0yMjk4
LDcgKzIyOTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpTRwogICAgIHJldHVybiBKU1Rlc3RS
ZWFkT25seU1hcExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UmVhZE9ubHlNYXBMaWtlIik7CiB9CkBAIC0y
MzEwLDcgKzIzMTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yU2V0dGVyKEpTRwogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UmVhZE9ubHlNYXBMaWtlIiksIHN0cmxlbigiVGVz
dFJlYWRPbmx5TWFwTGlrZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RS
ZWFkT25seU1hcExpa2UiKTsKIH0KQEAgLTIzMjEsNyArMjMyMSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3JH
ZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVzdFJlYWRPbmx5U2V0TGlrZTo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9u
bHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExp
a2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3RSZWFkT25seVNldExpa2UiKTsKIH0KQEAgLTIzMzMsNyArMjMzMyw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0
b3JTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RS
ZWFkT25seVNldExpa2UiKSwgc3RybGVuKCJUZXN0UmVhZE9ubHlTZXRMaWtlIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RS
ZWFkT25seVNldExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFJlYWRPbmx5U2V0TGlrZSIpOwogfQpAQCAtMjM0
NCw3ICsyMzQ0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvckdldHQKICAgICByZXR1cm4gSlNUZXN0
UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFJl
cG9ydEV4dHJhTWVtb3J5Q29zdCIpOwogfQpAQCAtMjM1Niw3ICsyMzU2LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RD
b25zdHJ1Y3RvclNldHQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVz
dFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpLCBzdHJsZW4oIlRlc3RSZXBvcnRFeHRyYU1lbW9yeUNv
c3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0
RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Iik7CiB9CkBAIC0yMzY4LDcgKzIzNjgsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZUNvbnN0cgogICAgIHJldHVybiBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIik7CiB9CkBAIC0y
MzgzLDcgKzIzODMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cgogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
IiksIHN0cmxlbigiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpKSwgdmFsdWUp
OwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKTsKIH0KQEAg
LTIzOTYsNyArMjM5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpT
VGVzdFNldExpa2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0U2V0TGlrZSIpOwogfQpAQCAtMjQwOCw3ICsyNDA4LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFNldExpa2Ui
KSwgc3RybGVuKCJUZXN0U2V0TGlrZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTZXRMaWtlIik7CiB9CkBAIC0y
NDE5LDcgKzI0MTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdAogICAgIHJldHVybiBKU1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnMiKTsKIH0KQEAgLTI0MzEsNyArMjQzMSw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIiksIHN0cmxlbigiVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwogfQpAQCAtMjQ0Miw3ICsyNDQyLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVj
dG9yR2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXI6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5n
aWZpZXIiKTsKIH0KQEAgLTI0NTQsNyArMjQ1NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldHRlcihKU0dsb2Jh
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllciIp
LCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJp
bmdpZmllciIpOwogfQpAQCAtMjQ2NSw3ICsyNDY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0
cnUKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb24iKTsKIH0KQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb25Db25zdHJ1CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiIpLCBzdHJsZW4oIlRlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbiIpOwogfQpAQCAtMjQ4OCw3ICsyNDg4LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uQ29uc3RydWN0b3IKICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uIik7CiB9CkBAIC0yNTAwLDcgKzI1MDAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25D
b25zdHJ1Y3RvcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvbiIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKTsKIH0KQEAgLTI1
MTEsNyArMjUxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uCiAgICAgcmV0dXJuIEpTVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXMiKTsKIH0KQEAgLTI1MjMsNyArMjUyMyw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25JbXBsZW1lbnRlZEFzQ29uCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMiKSwgc3RybGVuKCJUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIpOwogfQpAQCAtMjUz
NCw3ICsyNTM0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb24KICAgICByZXR1cm4gSlNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpOwogfQpAQCAtMjU0Niw3ICsyNTQ2LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlv
bk5hbWVkVG9TdHJpbmdDb24KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyIpLCBzdHJsZW4oIlRlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIik7CiB9CkBAIC0yNTU3
LDcgKzI1NTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1YwogICAgIHJldHVybiBKU1Rlc3RT
dHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKTsK
IH0KQEAgLTI1NjksNyArMjU2OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSIpOwogfQpAQCAtMjU4
MCw3ICsyNTgwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTI1OTIsNyArMjU5Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1CiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZSIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIp
OwogfQpAQCAtMjYwMyw3ICsyNjAzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2IKICAgICBy
ZXR1cm4gSlNUZXN0VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0VHlwZWRlZnMiKTsKIH0KQEAgLTI2MTUsNyArMjYxNSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
clNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3RUeXBlZGVmcyIpLCBzdHJsZW4oIlRlc3RUeXBlZGVmcyIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RU
eXBlZGVmcyIpOwogfQpAQCAtMjYyNiw3ICsyNjI2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3JHZXR0ZXIoSlNH
bG8KICAgICByZXR1cm4gSlNXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvckdl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIldvcmtlckdsb2JhbFNjb3Bl
Iik7CiB9CkBAIC0yNjM4LDcgKzI2MzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcihKU0dsbwogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJXb3JrZXJHbG9iYWxTY29wZSIpLCBz
dHJsZW4oIldvcmtlckdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTI2NDksNyArMjY0OSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvckdl
dHRlcihKU0dsCiAgICAgcmV0dXJuIEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiV29ya2xl
dEdsb2JhbFNjb3BlIik7CiB9CkBAIC0yNjYxLDcgKzI2NjEsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JTZXR0
ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJXb3JrbGV0R2xv
YmFsU2NvcGUiKSwgc3RybGVuKCJXb3JrbGV0R2xvYmFsU2NvcGUiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJXb3JrbGV0R2xvYmFsU2NvcGUiKTsKIH0KQEAgLTI2ODMsNyArMjY4Myw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJ
bnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblJlZ3VsYXJP
cGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJh
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicmVndWxhck9wZXJh
dGlvbiIpOwogfQpAQCAtMjc0Niw3ICsyNzQ2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRSdW4K
ICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9i
amVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxl
ZEF0UnVudGltZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25F
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKTsKIH0KQEAg
LTI3NzAsNyArMjc3MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVu
dGltZU9wZXJhdGlvblN0YXRpYyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xv
YmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0
aWMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Y2FsbFN0YXRpYzxqc1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0
UnVudGltZU9wZXJhdGlvblN0YXRpY0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyIpOwogfQpAQCAtMjc5NCw3ICsy
Nzk0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0
aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJlbmFibGVkSW5TcGVjaWZpY1dvcmxkIik7CiB9CkBAIC0yODE2LDcgKzI4MTYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVu
dGltZUZlYXR1cmVFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9i
YWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1l
RmVhdHVyZUVuYWJsZWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxl
ZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWRCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGlt
ZUZlYXR1cmVFbmFibGVkIik7CiB9CkBAIC0yODM4LDcgKzI4MzgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVu
YWJsZWRJblNwZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxl
ZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VG
dW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxs
PGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxk
V2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxl
ZCIpOwogfQpAQCAtMjg1Niw3ICsyODU2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUYKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0
UHJpdmF0ZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxP
YmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdFByaXZhdGVGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9i
amVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uQm9keSwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0
ZXN0UHJpdmF0ZUZ1bmN0aW9uIik7CiB9CkBAIC0yODc1LDcgKzI4NzUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlv
bkNhbGN1bGF0ZVNlYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5z
dGFuY2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJl
c3VsdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9u
Q2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKIH0KQEAgLTI4OTAsNyArMjg5MCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5j
ZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+KGltcGwuZ2V0U2VjcmV0Qm9vbGVhbigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxs
PGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXRTZWNyZXRCb29sZWFuIik7CiB9
CkBAIC0yOTA2LDcgKzI5MDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJlRwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFu
PihpbXBsLnRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0
RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Y2Fs
bDxqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0RmVhdHVy
ZUdldFNlY3JldEJvb2xlYW4iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCBmNDg3OTc0NDJlYmY4ZmE1YTk3ZjkxMjExZGE5ZDQz
OTJmMzY0ZTAyLi4wNWNhYTMxNmJlZTgzMWFmNTcxMGExM2YyNDc1NjI0NTZkYjllNGRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00
Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNDEsNyArMjQxLDcg
QEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0
eShKU09iamVjdCogb2JqZWN0LCBKU0dsb2IKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93
blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IGZiOTk2
M2U2NGEwMDI2NjJhNDQ5OGY1YzU2NjhhOWExOWQyYjE5NDEuLjJhMzIzMzdjY2IyZDJmZmI3M2M2
NDZlOWRkMjdjMWM2MjdlNjU3ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAK
IGNsYXNzIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjQxLDcgKzI0
MSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVP
d25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBKCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZp
bmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
bmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTEsNyArMjUxLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKaW5kZXggNTYyMWJjYmMwYzgxMjRkYjhjYTE0ZjAyZjdkYTJmMjc3NjUwZmVj
MS4uNjM3ODBmYmE5M2MzNzZjOTdhNmZkZmQ2YTI0NWZlNzgyNmZhYTk2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTQ4LDEy
ICs0OCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CkBAIC0yNTMsNyArMjUzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0SW5kZXhlZFMK
ICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI2Myw3ICsyNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjk2LDcgKzI5Niw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90
b3R5cGVGdW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0
aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaW5kZXhlZFNldHRlciIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAppbmRleCBlMTA4NDQ0NDBlNjM5YzY0YzFkZWI4NjY3OGI3YjdhYzVhMWQxYjhiLi4z
NTcxYTIyOThkOTEyMTkzNjYzOGRhNTJhNjYxZTdjNDgzYjRmMzFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcApAQCAtNzUsOTEgKzc1LDkxIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAvLyBGdW5j
dGlvbnMKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIy
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3Bl
cmF0aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRp
dGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24pOwogI2VuZGlmCiAj
aWYgKEVOQUJMRShDb25kaXRpb24xMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlvbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0
aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25h
bE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb24oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlv
bik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRpdGlvbjIyKSAmJiBFTkFCTEUoQ29uZGl0aW9u
MzMpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRp
b25Gcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Q
YXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVu
dGFsTWV0aG9kMSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMik7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlv
blN1cHBsZW1lbnRhbE1ldGhvZDMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMyk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9k
NChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRh
bE1ldGhvZDQpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5B
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhp
bkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4
aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0
b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUGFydGlh
bE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlh
bChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3Vw
cGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNS
ZWFkT25seUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1l
bnRhbFN0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxTdHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVO
QUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAjZW5kaWYKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGlj
X2Fzc2VydChUZXN0U3VwcGxlbWVudGFsOjpTVVBQTEVNRU5UQUxDT05TVEFOVDEgPT0gMSwgIlNV
UFBMRU1FTlRBTENPTlNUQU4KIHN0YXRpY19hc3NlcnQoVGVzdFN1cHBsZW1lbnRhbDo6Q09OU1Rf
SU1QTCA9PSAyLCAiQ09OU1RfSU1QTCBpbiBUZXN0U3VwcGxlbWVudGFsIGRvZXMgbm90IG1hdGNo
IHZhbHVlIGZyb20gSURMIik7CiAjZW5kaWYKIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVt
cGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI4NCw2ICsyODQsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKUwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQorSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9i
YWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAgLTUxNiw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RJbnRlcmZhY2UqIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+Ojpj
YXN0KEpTR2xvYmFsTwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTI2LDcgKzUyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01NDgsNyArNTQ5
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLm1peGluUmVhZE9ubHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZU1peGluUmVh
ZE9ubHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZU1peGluUmVhZE9ubHlB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpblJlYWRPbmx5QXR0cmlidXRlIik7CiB9CkBA
IC01NjQsNyArNTY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1p
eGluQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsKIH0KQEAgLTU4NSw3ICs1ODYsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVy
ZmFjZU1peGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGlu
QXR0cmlidXRlIik7CiB9CkBAIC01OTksNyArNjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JgogICAgIHJldHVybiB0aGlzT2JqZWN0Lm1peGluQ3VzdG9tQXR0cmlidXRlKGxleGljYWxHbG9i
YWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3Rv
bUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rl
c3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluQ3Vz
dG9tQXR0cmlidXRlIik7CiB9CkBAIC02MTQsNyArNjE1LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZU1peGlu
Q3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7CiB9CkBAIC02MzAsNyArNjMxLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZUdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5taXhpbk5vZGVBdHRyaWJ1dGUoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50
ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VNaXhp
bk5vZGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbk5vZGVBdHRyaWJ1dGUiKTsKIH0K
QEAgLTY1MSw3ICs2NTIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNl
TWl4aW5Ob2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNl
dDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIp
OwogfQpAQCAtNjY3LDcgKzY2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlcihKU0dsCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERvdWJsZT4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5wYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlh
bCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5B
dHRyaWJ1dGVGcm9tUGFydGlhbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0
aWFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9t
UGFydGlhbEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFs
Iik7CiB9CkBAIC02ODIsNyArNjgzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyR2UKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVu
dGFsU3RhdGljUmVhZE9ubHlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0U3Rh
dGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlB
dHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFs
U3RhdGljUmVhZE9ubHlBdHRyIik7CiB9CkBAIC02OTcsNyArNjk4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0
ckdldHRlcihKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0
U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0
aWM8anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsU3RhdGljQXR0
ciIpOwogfQpAQCAtNzE3LDcgKzcxOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHJTZXR0ZXIoSlNHCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBw
bGVtZW50YWxTdGF0aWNBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRh
bFN0YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0U3RhdGljPHNldEpTVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsU3RhdGlj
QXR0ciIpOwogfQpAQCAtNzMzLDcgKzczNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIxR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6
c3VwcGxlbWVudGFsU3RyMShpbXBsKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6
Z2V0PGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBw
bGVtZW50YWxTdHIxIik7CiB9CkBAIC03NDksNyArNzUwLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxl
bWVudGFsOjpzdXBwbGVtZW50YWxTdHIyKGltcGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRl
cmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMkdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInN1cHBsZW1lbnRhbFN0cjIiKTsKIH0KQEAgLTc3MCw3ICs3NzEsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMlNldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0
cjJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InN1cHBsZW1lbnRhbFN0cjIiKTsKIH0KQEAgLTc4NCw3ICs3ODUsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM0dldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aQogICAgIHJldHVybiB0aGlzT2JqZWN0LnN1cHBsZW1lbnRhbFN0cjMobGV4aWNh
bEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsU3Ry
MyIpOwogfQpAQCAtNzk5LDcgKzgwMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+
OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyM1NldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsU3RyMyIp
OwogfQpAQCAtODE1LDcgKzgxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxOb2RlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbE5vZGUoaW1wbCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxOb2RlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxlbWVudGFsTm9kZSIpOwogfQpAQCAtODM2LDcg
KzgzNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxOb2RlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsTm9kZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsTm9kZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVudGFsTm9kZSIpOwogfQpAQCAtODUyLDcgKzg1
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmli
dXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6cmVmbGVjdGF0dHJpYnV0ZUF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZh
Y2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InJlZmxlY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTg3Myw3ICs4NzQsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFj
ZVJlZmxlY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGVT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJl
ZmxlY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTg5Myw3ICs4OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9w
ZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpbk9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1peGluT3BlcmF0aW9uIik7CiB9CkBAIC05MjIsNyArOTIzLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0
aW9uTWl4aW5Db21wbGV4T3AKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1peGlu
Q29tcGxleE9wZXJhdGlvbigqY29udGV4dCwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxq
c1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbkJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5Db21wbGV4T3BlcmF0aW9u
Iik7CiB9CkBAIC05MzksNyArOTQwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGUKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlz
LT5taXhpbkN1c3RvbU9wZXJhdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxs
PGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluQ3VzdG9tT3BlcmF0aW9u
Iik7CiB9CkBAIC05NTksNyArOTYwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb24KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25k
aXRpb25hbE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uIik7
CiB9CkBAIC05NzksNyArOTgwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0MKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5n
c0NvbmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluU2V0dGluZ3NDb25kaXRpb25hbE9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxs
PGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFs
T3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpblNl
dHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KQEAgLTk5OCw3ICs5OTksNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpblJlc3VsdEZpZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8Tm9kZT4+PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKGlt
cGxSZXN1bHQubm9kZXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uIik7CiB9CkBAIC0xMDE4LDcgKzEw
MTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFy
dGlhbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWxCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21Q
YXJ0aWFsIik7CiB9CkBAIC0xMDM4LDcgKzEwMzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxN
ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25T
dXBwbGVtZW50YWxNZXRob2QxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDEsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDFCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInN1cHBsZW1lbnRhbE1ldGhvZDEiKTsKIH0KQEAgLTEwNjcsNyAr
MTA2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1lCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dT
Y29wZSwgV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMihpbXBs
LCAqY29udGV4dCwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBs
ZW1lbnRhbE1ldGhvZDIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9kMiIpOwogfQpAQCAtMTA4NCw3ICsxMDg1
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5zdXBwbGVtZW50YWxNZXRob2Qz
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1l
bnRhbE1ldGhvZDMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kM0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9kMyIpOwogfQpAQCAtMTEwMyw3ICsxMTA0LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Q0KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxl
bWVudGFsTWV0aG9kNCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRl
cmZhY2U+OjpjYWxsU3RhdGljPGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRob2Q0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJz
dXBwbGVtZW50YWxNZXRob2Q0Iik7CiB9CkBAIC0xMTY1LDYgKzExNjYsNyBAQCBJR05PUkVfV0FS
TklOR1NfRU5ECiB9OwogCiB1c2luZyBUZXN0SW50ZXJmYWNlSXRlcmF0b3JQcm90b3R5cGUgPSBK
U0RPTUl0ZXJhdG9yUHJvdG90eXBlPEpTVGVzdEludGVyZmFjZSwgVGVzdEludGVyZmFjZUl0ZXJh
dG9yVHJhaXRzPjsKK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKFRlc3RJbnRlcmZhY2VJdGVy
YXRvclByb3RvdHlwZU5leHQsIFRlc3RJbnRlcmZhY2VJdGVyYXRvclByb3RvdHlwZTo6bmV4dCk7
CiAKIHRlbXBsYXRlPD4KIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIFRlc3RJbnRlcmZhY2VJdGVyYXRv
ckJhc2U6OnNfaW5mbyA9IHsgIlRlc3RJbnRlcmZhY2UgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlc3RJbnRlcmZhY2VJdGVy
YXRvckJhc2UpIH07CkBAIC0xMTc4LDcgKzExODAsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcihKU0ds
bwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEludGVyZmFj
ZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6RW50cmllcykpOwogfQogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0xMTg4LDcgKzExOTAsNyBAQCBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5
c0NhbGxlcihKU0dsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVh
dGU8VGVzdEludGVyZmFjZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6S2V5
cykpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0xMTk4LDcgKzEyMDAsNyBAQCBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzQ2FsbGVyKEpTR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVh
dGU8VGVzdEludGVyZmFjZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6VmFs
dWVzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxs
PGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMTIwOCw3ICsxMjEwLDcg
QEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbkZvckVhY2hDYWxsZXIoSlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0
ZXJhdG9yRm9yRWFjaDxUZXN0SW50ZXJmYWNlSXRlcmF0b3I+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAqdGhpc09iamVjdCkpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25Gb3JFYWNoLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaENhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNo
Iik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
LmNwcAppbmRleCAzNjI4Y2Q2NjI3Y2M4ZWZmNzUzNGI5NjQ2ZjhiZWY1YTkyOTE0OGRmLi4wYTY5
ZGZiN2ViYzAwZmMxZDUzMWIzMjMxZWE1MmY4NGFjNDA3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVh
ZG9ubHkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGlu
Z1VuZGVyc2NvcmVSZWFkb25seShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMTU4LDcgKzE1OCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlCiAg
ICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE2OCw3ICsxNjgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpYwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5R2V0dGVyKEpTR2xv
YmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0
cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkb25seSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJl
YWRvbmx5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5k
ZXJzY29yZT46OmdldDxqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5R2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicmVhZG9ubHkiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCmluZGV4IDE0
NGZhMDFlMWMzNDU0NGE3NDBlODhiZTUyNmY5MTUwNGUzMDE3OGUuLjdiNDVjNjY3MWEwMDAwZjI4
N2YwYmY1MzMyOWI3Y2RmMDU3MWE2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcApAQCAtNDksMTYg
KzQ5LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlv
blN5bWJvbEl0ZXJhdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBl
RnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBl
RnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVu
Y3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25TeW1i
b2xJdGVyYXRvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEl0ZXJhYmxlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzIsNyArMTcyLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0SXRlcmFibGUqIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46
OmNhc3QoSlNHbG9iYWxPYmoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RJdGVyYWJs
ZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SXRlcmFi
bGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SXRlcmFibGU6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUwLDYgKzI1MCw3
IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKIH07CiAKIHVzaW5nIFRlc3RJdGVyYWJsZUl0ZXJhdG9y
UHJvdG90eXBlID0gSlNET01JdGVyYXRvclByb3RvdHlwZTxKU1Rlc3RJdGVyYWJsZSwgVGVzdEl0
ZXJhYmxlSXRlcmF0b3JUcmFpdHM+OworSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oVGVzdEl0
ZXJhYmxlSXRlcmF0b3JQcm90b3R5cGVOZXh0LCBUZXN0SXRlcmFibGVJdGVyYXRvclByb3RvdHlw
ZTo6bmV4dCk7CiAKIHRlbXBsYXRlPD4KIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIFRlc3RJdGVyYWJs
ZUl0ZXJhdG9yQmFzZTo6c19pbmZvID0geyAiVGVzdEl0ZXJhYmxlIEl0ZXJhdG9yIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShUZXN0SXRlcmFi
bGVJdGVyYXRvckJhc2UpIH07CkBAIC0yNjMsNyArMjY0LDcgQEAgc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcihK
U0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yQ3JlYXRlPFRlc3RJdGVy
YWJsZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlw
ZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNUZXN0SXRlcmFi
bGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMjczLDcgKzI3NCw3IEBAIHN0YXRpYyBpbmxp
bmUgRW5jb2RlZEpTVmFsdWUganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXNDYWxs
ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxU
ZXN0SXRlcmFibGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OktleXMpKTsK
IH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEl0ZXJhYmxlPjo6Y2FsbDxqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJrZXlzIik7CiB9CkBAIC0yODMsNyArMjg0LDcgQEAgc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpT
R2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yQ3JlYXRlPFRlc3RJdGVy
YWJsZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcywgKEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SXRlcmFibGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxl
UHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0yOTMsNyArMjk0LDcgQEAgc3RhdGljIGlubGluZSBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxl
cihKU0dsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yRm9yRWFjaDxUZXN0
SXRlcmFibGVJdGVyYXRvcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICp0aGlz
T2JqZWN0KSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJ
dGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoLCAoSlND
OjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNh
bGw8anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMWMxMWJjNmJmYjk2YmZiYmQ3YjkwN2E5
Y2JjYzU4MDUyOTZiMjhkNS4uMmE3YTY2ZjRhZGM4MTJjYTAyNjFlZGY2OTYyNGMwOTQ1NzRiYjFk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCkBAIC00Mywx
NSArNDMsMTUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbUZ1bmN0aW9uKTsKIAogLy8g
QXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1
c3RvbShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTcxLDcgKzE3
MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKiBJRExP
cGVyYXRpb248SlNUZXN0SlNCdWlsdGluQ29uc3RyCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xODEsNyArMTgxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tR2V0dGVyKEpTR2xvYgog
ICAgIHJldHVybiB0aGlzT2JqZWN0LnRlc3RBdHRyaWJ1dGVDdXN0b20obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVz
dEF0dHJpYnV0ZUN1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3Rvcj46OmdldDxqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRy
aWJ1dGVDdXN0b21HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmlidXRlQ3VzdG9tIik7CiB9CkBA
IC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tR2V0dGVyKEpTR2wKICAgICByZXR1cm4gdGhp
c09iamVjdC50ZXN0QXR0cmlidXRlUldDdXN0b20obGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJX
Q3VzdG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3I+OjpnZXQ8anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldD
dXN0b21HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmlidXRlUldDdXN0b20iKTsKIH0KQEAgLTIy
Myw3ICsyMjMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b21TZXR0ZXIoSlNHbAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3Vz
dG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcj46OnNldDxzZXRKU1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0ZVJXQ3VzdG9tIik7CiB9CkBA
IC0yMzcsNyArMjM3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXMKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT50ZXN0Q3Vz
dG9tRnVuY3Rpb24oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJv
dG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9t
RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3I+OjpjYWxsPGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVu
Y3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgInRlc3RDdXN0b21GdW5jdGlvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5
RmFjdG9yeUZ1bmN0aW9uLmNwcAppbmRleCAzNGIyZjU1YjUyYTUyYjk3ZDdjZTllNmVkYzI1NzZm
MDNiNjNjMThkLi5hZGU3YTQ2OGJjZWY5NzI3NzVkNmM0YjM1OTU4ODRhYWFlNjI4NjIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVn
YWN5RmFjdG9yeUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcApAQCAtNDgsOCArNDgs
OCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5RmFj
dG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RMZWdhY3lGYWN0
b3J5RnVuY3Rpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTEwMSw3ICsxMDEsNyBAQCB0ZW1wbGF0ZTw+IHZvaWQgSlNUZXN0TGVn
YWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJgog
CiB0ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIsICZCYXNl
OjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0TGVn
YWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpIH07CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0
b3J5RnVuY3Rpb246OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0
b3J5RnVuY3Rpb246OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEzMiw2ICsxMzIsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeQogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVmFsdWUpOwogfQorSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0TGVnYWN5
RmFjdG9yeUZ1bmN0aW9uTGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0LCBKU1Rlc3RMZWdh
Y3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb246OmNvbnN0cnVjdCk7CiAKIHRl
bXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5
RnVuY3Rpb246OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAgLTIwNiw3ICsyMDcsNyBAQCB2b2lkIEpT
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAg
ICB0aGlzT2JqZWN0LT5KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246On5KU1Rlc3RMZWdhY3lG
YWN0b3J5RnVuY3Rpb24oKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIxNiw3ICsyMTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lGYWN0b3J5RnVu
Y3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsbwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdC5jcHAKaW5k
ZXggYWFhOGJlNjE3ZDdlN2NlMjhlY2FlZTBlOGJmNGU4YTM2YjI4MDFlNy4uOGNjYTE0ZTQyZDUx
YWU4YmNlMzdmNjllODY0YjlhODUyMjA2ZmRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwCkBAIC01MiwyMiArNTIsMjIgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9w
ZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFBy
b3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
RnVuY3Rpb25TdGF0aWNPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRo
cm93aW5nT3BlcmF0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5
Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU9wZXJhdGlvbik7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3Ry
dWN0b3JGdW5jdGlvblN0YXRpY09wZXJhdGlvbik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5n
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFJlYWRvbmx5U3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFk
V3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRl
clN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzUsNyArMTc1LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGVH
ZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRvbmx5U3RyaW5n
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJl
YWRvbmx5U3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExl
Z2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJyZWFkb25seVN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMTg4LDcgKzE4OCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0
ZVN0cmluZ0F0dHJpYnV0ZUdldHRlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5yZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZSIpOwogfQpA
QCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZVNldHRlCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVT
dHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3Ry
aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWFk
V3JpdGVTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0
ZXJTdHJpbmdBdHRyaQogICAgIHJldHVybiB0aGlzT2JqZWN0LmN1c3RvbUdldHRlclNldHRlclN0
cmluZ0F0dHJpYnV0ZShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImN1
c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjI5LDcgKzIyOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3Rv
bUdldHRlclNldHRlclN0cmluZ0F0dHJpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3Ry
aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJjdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTI0Miw3ICsy
NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3ROb2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm5vZGVBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm5vZGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTI2MCw3ICsy
NjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmpl
Y3ROb2RlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Pjo6c2V0PHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9k
ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3Rh
dGljU3RyaW5nQXR0cmliCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0OjpzdGF0aWNTdHJpbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRp
Y1N0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNT
dHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXRTdGF0aWM8anNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZUdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHJpYnV0
ZSIpOwogfQpAQCAtMjg5LDcgKzI4OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmliCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RD
b25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdD46OnNldFN0YXRpYzxzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9i
amVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdGF0aWNTdHJpbmdBdHRyaWJ1dGUi
KTsKIH0KQEAgLTMwNiw3ICszMDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvbgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5j
dGlvblZvaWRPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6
Y2FsbDxqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9w
ZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidm9pZE9wZXJh
dGlvbiIpOwogfQpAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50aHJvd2luZ09wZXJhdGlvbigqY29udGV4
dCwgV1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9u
VGhyb3dpbmdPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25UaHJvd2luZ09wZXJhdGlvbiwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dD46OmNhbGw8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRo
cm93aW5nT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0
aHJvd2luZ09wZXJhdGlvbiIpOwogfQpAQCAtMzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlw
ZUZ1bmN0aW9uCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjpl
bmNvZGUoY2FzdGVkVGhpcy0+Y3VzdG9tT3BlcmF0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFBy
b3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjdXN0b21PcGVyYXRpb24iKTsKIH0KQEAg
LTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3Rh
dGljT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRpb24sIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+Ojpj
YWxsU3RhdGljPGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlv
blN0YXRpY09wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
c3RhdGljT3BlcmF0aW9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdElucy5jcHAKaW5kZXggZGYxZmZmYjQ3OTA4NjQ1Zjg0NzdkZDAzZWUyODFjNzlkODMyNWE2
Ni4uYzNmNGQ0ZDkxNDVlNGE3Yjg5YWE1OGQzOTFlZTFjYjI3YzNhYjEyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcApAQCAtNTAsMTIgKzUwLDEyIEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1
bmN0aW9uTmFtZWRJdGVtKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJv
dG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMjE1LDcgKzIxNSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lPdmVy
cmlkCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElu
cyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjUsNyAr
MjI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTgogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9k
ZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGlt
cGwubmFtZWRJdGVtKFdURk1vdmUobmFtZSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5h
bWVkSXRlbShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OjpjYWxsPGpzVGVzdExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5jdGlvbk5hbWVkSXRlbUJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibmFtZWRJdGVtIik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5j
cHAKaW5kZXggN2RhNzA1OGU3N2IyMDMyNDhjMmUxZThkZmQ4NTdjZjAwNjIyM2E0ZC4uNzNkNDMz
ZTUxOTk4YjMyNWI5NmUxN2ExNTA2NWQ3YWZiOWFkYTlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcApA
QCAtNTAsMjEgKzUwLDIxIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uR2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2go
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RN
YXBMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0xODksNyArMTg5LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TWFwTGlr
ZSogSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYXN0KEpTR2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RNYXBMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OSw3
ICsxOTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TWFwTGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpT
VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RNYXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb01hcExpa2UobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExp
a2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TWFwTGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0TWFwTGlrZT46OmdldDxqc1Rlc3RNYXBMaWtlU2l6ZUdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KQEAgLTIzOCw3ICsyMzgs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uR2V0Qm9keShKU0M6OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRHZXRUb01hcExpa2Uo
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtl
eSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkdldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7CiB9CkBAIC0yNTcs
NyArMjU3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9N
YXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RG
TW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpA
QCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keShKU0M6CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2Fy
ZEVudHJpZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVu
dHJpZXMiKTsKIH0KQEAgLTI4NSw3ICsyODUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKUwog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExBbnk+KGZvcndhcmRLZXlzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJr
ZXlzIik7CiB9CkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHkoSlNDOjoKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTMxOCw3ICszMTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHko
SlNDOgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpAQCAtMzQw
LDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFNldFRv
TWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdU
Rk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvblNldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAic2V0Iik7CiB9CkBAIC0zNTYsNyArMzU2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6
OkoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNs
ZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtl
Pjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KQEAgLTM3NSw3ICszNzUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRGVsZXRlQm9keShKU0M6OgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxldGVUb01hcExpa2Uo
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtl
eSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucy5jcHAKaW5kZXggZDkwMzNjNjlkZjhlYjI2OWIwMmRjMjlkZmEyYjNkNWUyM2ExMmRk
MS4uYjlmYmVhN2NmN2U1OWIyY2YyNzEyNThkMTQxMTFiNjQwNDA4OWVhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcApA
QCAtNTEsMjIgKzUxLDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uR2V0
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkdl
dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNT
ZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFz
cyBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTEsNyArMTkxLDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
cyogSURMT3BlcmF0aW9uPEpTVGVzdE1hcEwKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMSw3ICsyMDEsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXRHZXR0ZXIoSlNHbG9iYWxP
YmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zZXQoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46
OmdldDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0R2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAic2V0Iik7CiB9CkBAIC0yNDAsNyArMjQwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXRTZXR0ZXIoSlNHbG9iYWxP
YmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zU2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
U2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpzZXQ8c2V0
SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldFNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V0Iik7CiB9CkBAIC0yNTIs
NyArMjUyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNTaXplR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1NpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIp
OwogfQpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25DbGVhcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNs
ZWFyIik7CiB9CkBAIC0yODgsNyArMjg4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkR2V0VG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkdldCwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6
Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldCIpOwogfQpA
QCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2Fy
ZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRo
aXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFz
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTMyMSw3ICsz
MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9N
YXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0zMzUsNyArMzM1LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvTWFwTGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktl
eXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFs
dWVzIik7CiB9CkBAIC0zNjgsNyArMzY4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImZvckVhY2giKTsKIH0KQEAgLTM4Nyw3ICszODcsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmREZWxldGVUb01hcExpa2UoKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZGVsZXRlIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IGJkZDk0NTFlYTJh
NzgyNDgzOWU0YTE5NGQ3MWJmMWUwNDllZGMzYTguLmY5ODBjOTcxMTM2YzIyYzIwNzk0ZTg4YTVk
ODBhMjY1MGI2MWI3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC00Nyw4ICs0Nyw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
clByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMzE1LDcgKzMxNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0CiAgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0zMjUsNyArMzI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCmluZGV4IDBiNDg1OGM3MTdmZDVlNDZjYjMxMTVmYmRmZmZhZjFkZGZhOGZmZmYuLmQ2
MTEzMGJmNGNlYTM0MDBiNzc3MGYyMWEzOWE3NzkyYmVhMDI0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcApAQCAtNDcsOCArNDcsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0zMTUsNyArMzE1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG8KICAgICByZXR1
cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0zMjUsNyArMzI1LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE8K
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGQ2MWQwY2YxMGNhMDQ3OTNhOWM0NDZi
YWJhMTE5ZTYyYmU1MDBkMmQuLjIwZTAyMzNlY2Y5NzRmYzg2Y2E4NWEyMmZmOTExNDcyMGRhZDMz
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtNDksMTMgKzQ5LDEzIEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5j
dGlvbk5hbWVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0
aW9uTmFtZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRl
cik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKQEAgLTMyOSw3ICszMjksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdAogICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMzM5LDcgKzMzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zNzIsNyArMzcyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJv
dG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5h
bWVkU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7CiB9CkBAIC0zOTcs
NyArMzk3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG8KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rp
b25JbmRleGVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImluZGV4ZWRTZXR0ZXIiKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggNmZlMDBkMWI1OGQ3
ZjA3ODA5ZGEwYTI1YWZmZThhNmIyNGQ3OTMzYi4uMWQ1MmE2NDY0YTFkYTU5N2E5NWFhNGQ5M2Ji
NTQ4YWZkMzFkODA3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllci5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8g
QXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0y
MjcsNyArMjI3LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmRlbGV0
ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmEKICAgICByZXR1cm4gSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRl
eCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzcs
NyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCmluZGV4IGI4NTYwZmExYzljOWViYTdhOGMwZGJhYjIzOGRmNjE0OTE1MDBkNzYu
LmIyOTA0NGVhMDBmZGJiNWZjMDM2NzNlOGQ0N2I1NTFjM2JmMjI2NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDYs
OCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlMKICAgICByZXR1cm4g
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBpbmRleCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5n
RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjM3LDcgKzIzNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxlCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElk
ZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCAyYmJhY2JjM2I4ZDFmODU3
NjIyZDJlZjRmMjZmZTE5ZDI4OWJiNGEyLi4yNzQ3MWVkZTllZWY0NzJkMmJiMWQ4MTkwZjc4M2Yx
MDMxYmFjNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllci5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZERlbGV0ZXIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25O
YW1lZERlbGV0ZXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMzQsNyArMjM0LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rl
c3ROYW1lZERlbGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJh
bWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI0NCw3ICsyNDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
clByb3RvdHlwZUZ1bmN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWREZWxldGVyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1
bmN0aW9uTmFtZWREZWxldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWREZWxldGVyQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1lZERlbGV0ZXIiKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IDZiYTQy
M2Y2ZjIyNjcxZjU4MmY5MzBiNjRkOGUxMjA3YTNkM2NkODEuLjAwYzk2MzRhNDRkYzgwMmUyNWRk
YWU0MWYxZDcwYzQ1Mjg3YWRjNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApAQCAtNDcsOCArNDcsOCBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNz
IEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNDEsNyArMjQxLDcgQEAg
Ym9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6ZGVsZXRlUHJvcGVydHlC
eUluZGV4KEpTQ2VsbCogY2VsbCwgSlMKICAgICByZXR1cm4gIWltcGwuaXNTdXBwb3J0ZWRQcm9w
ZXJ0eUluZGV4KGluZGV4KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yNTEsNyArMjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcAppbmRleCAwYzg5OTMxMjQzNmI5ZDIxYzgzMjQy
NTJkMWQ5ZWYxYjM0YzJjMjJkLi5lNGI5NWE0NjI0MzZmNjk3MTQ4ZGQ1ODk1ODUwZWU1ZTRmNzNh
MDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCkBAIC00Niw4
ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRo
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZEdldHRlckNh
bGxXaXRoUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRo
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2IKICAgICBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3Qs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdl
dHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMTEsNyArMjExLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJDYWxs
V2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmEKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGg6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDE3
YmNmNzkyNWIwZDU2MTFiNDNkNjczMjhhNWUxY2NlZTI1ZThlOTkuLmVlYTc0ZWNkNjU0ODdjZDUy
NWM3NWVmMmEzODYwMDgzMjg2OGQyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0yMDEsNyArMjAxLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6Z2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2IKICAgICBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTIxMSw3ICsyMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsRwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2Jq
ZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwCmluZGV4IGVmMTMyNjc0YzQ3M2Q0MTU1Nzk2Y2ExZTM3NjdlNDU5ZDI2ZWE3MzQuLjY2
ZWE3MmM4MzI1MjFhMTZhYjcxZDYwN2M3NjhjNWVkZTNjZmM1NGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTQ3LDEyICs0NywxMiBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5
cGVGdW5jdGlvbkdldHRlck5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWUpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjEyLDcgKzIxMiw3
IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIqIElE
TE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEdldHRlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIyLDcgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MCw3ICsyNTAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBpbXBsLmdldHRlck5hbWUoV1RGTW92ZShuYW1lKSkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZUZ1bmN0aW9uR2V0dGVyTmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uR2V0dGVyTmFtZSwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
Pjo6Y2FsbDxqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25H
ZXR0ZXJOYW1lQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXR0ZXJO
YW1lIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cAppbmRleCBlZjAzOWRiNmZlMzkxOGZhZDlhNzYzNDc3MzA2ZjkzNGYzNDAyOGQ3Li5iZTg2ZWY3
MDc4NzFiZjU0OTQxMmY1MzBiMGFhZGM2ZTY2ZTdmY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllclByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMjcwLDcgKzI3MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsCiAgICAg
cmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxP
YmplY3QsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjgwLDcgKzI4
MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAK
aW5kZXggMmM3OWUzZDMxMzMxZWM3ZjNiNWM2Y2M2ZjA1YjM2Y2U5YmE1YjBlZS4uMjlmNjVhNmM4
NGVlMTQ0ZjQwNjAxOGY0NjU1NmZiOGZiZGJlOTNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvblByb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjcwLDcgKzI3MCw3
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJv
cGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVP
d25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4
IDE0NmI0MTRiMWRmOWNkNzRiYzA5YTY0MTQ0NGE1ZDIwOWZmNzVmNDIuLmZiYzlhOWQwOTE1NTAx
YWQ0MjQwYTk4ZWIxNzk1MzE1ODhhODVlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5h
bWVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yODEsNyArMjgxLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkU2V0dGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTI5MSw3ICsyOTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlRnVuY3RpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0
aW9uTmFtZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
ZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhl
ZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggZGIwODJlOWY3YTM3ZmFj
MDVkOWU5NGUyMGNkZmZhMmRjMjRlNGU2NS4uMzAzNjEwNWMwZDc5ZjA0ZWYzNThhMzA0NmM5Zjk5
OTkyZTU1NzVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyLmNwcApAQCAtNDksMTMgKzQ5LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclBy
b3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90
eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMwNiw3
ICszMDYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZQogICAgIHJldHVybiBqc0R5bmFtaWND
YXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIqPihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzE2LDcgKzMxNiw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW4KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbk5hbWVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlciwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyPjo6Y2FsbDxqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90
eXBlRnVuY3Rpb25OYW1lZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibmFtZWRTZXR0ZXIiKTsKIH0KQEAgLTM2OSw3ICszNjksNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclBy
b3RvdHlwZUZ1bgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjpl
bmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmluZGV4
ZWRTZXR0ZXIoV1RGTW92ZShpbmRleCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkluZGV4ZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1
bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiaW5kZXhlZFNldHRlciIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCmluZGV4IGFhMThlMmRi
ODhmNzc1MzJlMTYwMzNiNGUxM2JkY2I4MjBmY2Q2MzAuLmYyMGY1ZjdlYWQxODZkMTM1NTRhZTYw
OTMzMGE2NWIyZTY5NDBjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKQEAgLTQ5LDEzICs0OSwx
MyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkluZGV4ZWRTZXR0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclBy
b3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMjksNyArMzI5LDcg
QEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFu
ZFNldHRlciogSURMT3BlcmF0aW9uPEpTVGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyKj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTMzOSw3ICszMzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
cjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0
aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MzcyLDcgKzM3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBl
RnVuY3Rpb25OYW1lZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRT
ZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXJCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm5hbWVkU2V0dGVyIik7CiB9CkBAIC00MjQs
NyArNDI0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm8KICAgICByZXR1cm4gYXJnc0NvdW50
IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZN
VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90
b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlcj46OmNhbGw8anNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9u
SW5kZXhlZFNldHRlck92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdElucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKaW5kZXgg
NjI3NWVjMmJmNjg2NmI5OWI5ZThjMzhmYWE2OTllOTZkNjg0Yjg3NC4uMjBmYjI0NGRmZTIyYTAx
MzhlMjQzMjM1NDY0MzE5OWYyY2Y1YTQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcApAQCAtNDYs
OCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZSBmaW5hbCA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjUxLDcgKzI1MSw3
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6ZGVm
aW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVP
d25Qcm9wZXJ0eShvYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2MSw3
ICsyNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9i
YWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBlZWIyNmFiMjI0YmZiM2E4Yjc4MTU4ZDQ4NjQwMTBiYjRj
YTExYTMyLi5lMzM3NjMzY2Q3MjZmMjFjNWQ0Nzg4YTcyMzE3MGM3MGY4NGViOGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcApAQCAtNDgsMTMgKzQ4LDEzIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5z
dGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1bmN0aW9uVW5mb3Jn
ZWFibGVPcGVyYXRpb24pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
c1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzExLDcgKzMxMSw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGll
cyogSURMT3BlcmF0aW9uCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zMjEsNyArMzIxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNHbG8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFi
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5mb3JnZWFibGVBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+OjpnZXQ8anNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ1bmZvcmdlYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzU5LDcgKzM1OSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1bmN0aW9uVW5mb3Jn
ZWFibGVPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdl
YWJsZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXM+OjpjYWxsPGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZv
cmdlYWJsZU9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
dW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAppbmRleCA1
MTZjNmQ5NTI5YTFmYTUzOGZjN2ViYzQwYjhmYWQ4ZjI3ZWVkNTQ1Li41ZTdjMWQ5ZGUxNTkzOGU4
M2YzY2M0YjA4ZjBjMTJlY2UxNDI2ZjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCkBAIC00
OCwxMyArNDgsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VG
dW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldp
dGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5z
dGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNV
bmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0y
OTIsNyArMjkyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnIKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNB
bmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMwMiw3ICsz
MDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMzIzLDcgKzMyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmlu
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bmZvcmdlYWJsZUF0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFi
bGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucz46OmdldDxq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bmZv
cmdlYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzQwLDcgKzM0MCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VG
dW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnM+OjpjYWxsPGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb25Cb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVuZm9yZ2VhYmxlT3BlcmF0aW9uIik7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Tm9kZS5jcHAKaW5kZXggZjczOWY2OTA0YWRjZWViMzFjYjZjOThjOWEyNzIxZThiZjE1NTc5
MC4uOTg4YmI1YzRhZmYwN2Q2ZWIzODY1ZDViZWY2MzdjNWJjMzU3ODlkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cApAQCAtNTQsMjUgKzU0LDI1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9u
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RXb3JrZXJQcm9taXNlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVz
dWx0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0
aW9uR2V0U2VjcmV0Qm9vbGVhbik7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0
RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5j
dGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRlcmF0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2Rl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
Tm9kZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5vZGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Tm9kZU5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROb2RlTmFtZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5vZGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEwOCw3ICsxMDgsNyBAQCBTVEFUSUNfQVNT
RVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3ROb2RlUHJvdG90eXBlLCBKU1Rlc3ROb2Rl
UHJvdG90eXBlOjpCYQogCiB1c2luZyBKU1Rlc3ROb2RlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yPEpTVGVzdE5vZGU+OwogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0Tm9kZUNvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjMs
NiArMTIzLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVz
dE5vZGVDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmEKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVl
KTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdE5vZGVDb25zdHJ1Y3RvckNv
bnN0cnVjdCwgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+
IEpTVmFsdWUgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0y
NjQsNyArMjY1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Tm9kZSogSURMT3BlcmF0aW9u
PEpTVGVzdE5vZGU+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3ROb2RlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3NCw3ICsyNzUsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Tm9kZTo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjk1LDcgKzI5Niw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZUdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLm5hbWUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROb2RlTmFt
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RO
b2RlPjo6Z2V0PGpzVGVzdE5vZGVOYW1lR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibmFtZSIpOwogfQpAQCAt
MzEzLDcgKzMxNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3ROb2RlTmFtZVNldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3ROb2RlTmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Tm9kZU5hbWUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Tm9kZT46OnNldDxzZXRKU1Rlc3ROb2RlTmFtZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibmFtZSIpOwogfQpAQCAtMzMwLDcgKzMzMSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVu
Y3Rpb25UZXN0V29ya2VyUHJvbWlzZUJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2Rl
UHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2UsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE5vZGU+Ojpj
YWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RXb3JrZXJQcm9taXNlQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0V29ya2VyUHJvbWlzZSIpOwogfQpA
QCAtMzQ3LDcgKzM0OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNh
bGN1bGF0ZVNlY3JldFJlc3VsdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVy
bmluZ1Byb21pc2U8SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
Q2FsY3VsYXRlU2VjcmV0UmVzdWx0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKTsKIH0KQEAgLTM2Miw3ICszNjMsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
R2V0U2VjcmV0Qm9vbGVhbkJvZAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLmdldFNlY3JldEJvb2xlYW4oKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBl
RnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5j
dGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImdldFNlY3JldEJvb2xlYW4iKTsKIH0KQEAgLTM3OCw3ICszNzksNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZl
YXR1cmVHZXRTZWNyZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLnRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
bigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNy
ZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+Ojpj
YWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEZlYXR1cmVHZXRT
ZWNyZXRCb29sZWFuIik7CiB9CkBAIC0zOTYsNyArMzk3LDcgQEAgc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5KEpTR2xvYmFs
T2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pT
T04sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNU
ZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJ0b0pTT04iKTsKIH0KQEAgLTQ1Niw2ICs0NTcsNyBAQCBJR05PUkVfV0FS
TklOR1NfRU5ECiB9OwogCiB1c2luZyBUZXN0Tm9kZUl0ZXJhdG9yUHJvdG90eXBlID0gSlNET01J
dGVyYXRvclByb3RvdHlwZTxKU1Rlc3ROb2RlLCBUZXN0Tm9kZUl0ZXJhdG9yVHJhaXRzPjsKK0pT
Q19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKFRlc3ROb2RlSXRlcmF0b3JQcm90b3R5cGVOZXh0LCBU
ZXN0Tm9kZUl0ZXJhdG9yUHJvdG90eXBlOjpuZXh0KTsKIAogdGVtcGxhdGU8PgogY29uc3QgSlND
OjpDbGFzc0luZm8gVGVzdE5vZGVJdGVyYXRvckJhc2U6OnNfaW5mbyA9IHsgIlRlc3ROb2RlIEl0
ZXJhdG9yIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShUZXN0Tm9kZUl0ZXJhdG9yQmFzZSkgfTsKQEAgLTQ2OSw3ICs0NzEsNyBAQCBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXND
YWxsZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVh
dGU8VGVzdE5vZGVJdGVyYXRvcj4oKnRoaXNPYmplY3QsIEl0ZXJhdGlvbktpbmQ6OlZhbHVlcykp
OwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiZW50cmllcyIpOwogfQpAQCAtNDc5LDcgKzQ4MSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcihKU0dsb2JhbE9i
amVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0Tm9kZUl0
ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6S2V5cykpOwogfQogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5
cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5
cGVGdW5jdGlvbktleXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbktleXNDYWxsZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtNDg5LDcg
KzQ5MSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShpdGVyYXRvckNyZWF0ZTxUZXN0Tm9kZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0
aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpz
VGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblZhbHVlc0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTQ5OSw3ICs1MDEsNyBAQCBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hD
YWxsZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JGb3JF
YWNoPFRlc3ROb2RlSXRlcmF0b3I+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAq
dGhpc09iamVjdCkpOwogfQogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5vZGU+OjpjYWxsPGpzVGVz
dE5vZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAxMzViMDVlMGZiNjFl
NmVjMGM2NDk3MTkxZWE0N2NjOTBmNjYzMjNlLi5jYjg1NWU3OGZmZTRmODUxMTQyNzI0OTdlZGYz
ODk1OGI0ZTM1NGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTQyMiwzNzUgKzE0MjIsMzc1IEBAIHRlbXBs
YXRlPD4gVGVzdE9iajo6Q29uZGl0aW9uYWxEaWN0aW9uYXJ5QyBjb252ZXJ0RGljdGlvbmFyeTxU
ZXN0T2JqOjpDb25kaXRpb25hCiAvLyBGdW5jdGlvbnMKIAogI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVy
YXRpb25TdGF0aWMpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldvcmxkU3BlY2lmaWNNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVF
bmFibGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xl
YW4pOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJv
b2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRT
ZWNyZXRCb29sZWFuKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2Qo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdp
dGhBcmdzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01l
dGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRo
b2RXaXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9i
ak1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1l
dGhvZFdpdGhBcmdzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25V
bmZvcmdlYWJsZU1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBh
cmFtZXRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxh
YmxlU3RyaW5nTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25OdWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxv
bmVFbnVtQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsRW51bUFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNB
bGxBcmdzQW5kVGhyb3dzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJp
bmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJu
aW5nTG9uZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aG9kKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVu
ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0
YXRlVm9pZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhF
eGVjU3RhdGVPYmooSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25X
aXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRp
b24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXMoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRG9jdW1lbnRBcmd1bWVudChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJEb2N1bWVudEFyZ3Vt
ZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxl
cldpbmRvd0FyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFs
QXJnQW5kT3B0aW9uYWxBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJp
bmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxVU1ZTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFN0cmluZ0lzVW5kZWZpbmVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzTnVsbChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1w
dHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1w
dHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbExvbmdMb25nSXNaZXJvKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9u
Z0xvbmdJc1plcm8oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xl
YW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxCb29sZWFuSXNGYWxzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFueShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE9iamVjdChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxl
V3JhcHBlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbChKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFJlY29yZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Fy
ZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhD
YWxsYmFja0FuZE9wdGlvbmFsQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmcoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxs
YmFja0Z1bmN0aW9uQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNr
QW5kT3B0aW9uYWxBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZFdpdGhBcmdzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9k
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25C
eXRlTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25n
TWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk9iak1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVy
UGFyYW1ldGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVs
bGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxv
bmVFbnVtQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJn
QW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
VVNWU3RyaW5nQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJp
bmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE51bGxhYmxlQnl0ZVN0cmluZ0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNl
cHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nT2JqZWN0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DdXN0b21NZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9kKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJs
aWNBbmRQcml2YXRlTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhl
Y1N0YXRlVm9pZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iaik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVj
U3RhdGVPYmpFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3Rh
dGVPYmpFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNw
YWNlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aERvY3VtZW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50KTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVy
V2luZG93QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5k
RGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3Ry
aW5nQW5kRGVmYXVsdFZhbHVlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxs
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZT
dHJpbmdJc0VtcHR5U3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmlu
Zyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4p
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbExvbmdMb25nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lzWmVybyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRM
b25nTG9uZ0lzWmVybyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2UpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNl
cXVlbmNlSXNFbXB0eSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9v
bGVhbklzRmFsc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFueSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3Jh
cHBlcklzTnVsbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxSZWNvcmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlv
bmFsQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJn
QW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25h
bEFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RX
aXRoQ2FsbGJhY2tBcmcpOwogI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxN
ZXRob2QxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0
aG9kMSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlv
bjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDMpOwogI2VuZGlmCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGlu
Z3Vpc2hpbmdVbmlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0
aW5ndWlzaGluZ1VuaW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rp
bmd1aXNoaW5nUGFyYW1ldGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9y
RnVuY3Rpb25DbGFzc01ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFs
UGFyYW1ldGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rp
bmd1aXNoaW5nVW5pb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFs
VW5pb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NN
ZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1
bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKTsKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpD
b25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDEoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMSk7CiAjZW5kaWYKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0
aG9kV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJh
bmdlT25PcHRpb25hbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxV
bmlvblBhcmFtZXRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRob2Qo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BbnkoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5j
dGlvbldpdGhGbG9hdEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlv
bmFsSW50QXJndW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25UZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5j
dGlvbldpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNP
d25Qcm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRo
b2RXaXRoQ2xhbXBPbk9wdGlvbmFsKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9k
V2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3Ry
aW5nQXJyYXlGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlzdEZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxV
bmlvblBhcmFtZXRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50
QnlJZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uR2V0U1ZHRG9jdW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Mik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDMpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRG
dW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3JhbmdlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
Tm9kZU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9u
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3Zlcmxv
YWRlZEZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VG
dW5jdGlvbldpdGhFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24pOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1
c3RvbVByb21pc2VGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rpb24pOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RS
ZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uKTsKICNpZiBFTkFCTEUoQ09O
RElUSU9OMSkgfHwgRU5BQkxFKENPTkRJVElPTjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE92ZXJsb2FkKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWQpOwog
I2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25h
cnlQYXJhbWV0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25C
dWZmZXJTb3VyY2VQYXJhbWV0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25MZWdhY3lDYWxsZXJOYW1lZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldp
dGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rp
b24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRp
b25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZXIpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxlZ2Fj
eUNhbGxlck5hbWVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb24pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGlt
aXphdGlvbldpdGhFeGNlcHRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QW5kV29ya2VyRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9i
akNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9u
bHlMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0
T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0
YXRpY1JlYWRPbmx5TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iaihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpFbnVtQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iak9jdGV0QXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
bGFtcGVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpMb25nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpV
bnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialVuZm9yZ2VhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0ZVN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakJ5
dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
VXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpVc3Zz
dHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alN0cmluZ09ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVj
b3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ051bGxh
YmxlT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9i
alJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdW
b2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0cmluZ1ZvaWRD
YWxsYmFja1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpE
aWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTWVkaWFEZXZpY2VzKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqWE1MT2Jq
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmlu
Z0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRl
Z3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3Jh
bEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29s
ZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
U3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0
b21JbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUmVhZE9ubHlMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRp
Y1JlYWRPbmx5TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVz
dFN1Yk9iaihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpFbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqQnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpCeXRlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakxvbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakxvbmdMb25nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5zaWduZWRMb25n
TG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZExv
bmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialVzdnN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpV
c3ZzdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdBdHRy
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRp
bmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpC
eXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
VXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ09ialJlY29y
ZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNv
cmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29y
ZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2Fs
bGJhY2tSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakRpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5p
b25BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlw
ZUluVW5pb25BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51
bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlv
bkVudW1BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpNZWRpYURldmljZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqWE1MT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQ3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ3Jl
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpS
ZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFs
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVm
bGVjdGVkVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50
ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0
b21VUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JFbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlU3RhdGljKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0
aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialR5
cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9t
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqT25mb28oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqT25mb28o
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbndlYmtpdGZvbyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
V2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alR5cGVkQXJyYXlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVHlw
ZWRBcnJheUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakN1c3RvbUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
dXN0b21BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpPbmZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9uZm9vKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPbndlYmtp
dGZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9ud2Via2l0Zm9vKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoRXhl
Y1N0YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJD
YWxsV2l0aEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVX
aXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkg
JiYgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShD
b25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q2FjaGVkQXR0cmlidXRlMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKENP
TkRJVElPTikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0
dHJpYnV0ZTMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNvbnRlbnREb2N1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpNdXRhYmxlUG9pbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqRGVzY3JpcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSWQoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqSWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpIYXNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmlu
Z0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdT
ZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51
bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVs
bGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZl
ZEVudW1UeXBlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVu
dW1UeXBlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5
Vm9pZFByb21pc2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
VGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpQdXRG
b3J3YXJkc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1
dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9y
d2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0cmluZ2lm
aWVyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9iamVjdEF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9iamVjdEF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29udGVu
dERvY3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqTXV0YWJsZVBvaW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTXV0
YWJsZVBvaW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpTdHJhd2JlcnJ5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3Ry
YXdiZXJyeShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqRGVzY3JpcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpJZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iaklkKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpIYXNoKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVwbGFjZWFibGVB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJs
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpO
dWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxh
YmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRh
YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFi
bGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlw
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVGVz
dFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJk
c0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9u
YWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RPYmpQcm90b3R5cGUgZmluYWwgOiBwdWJs
aWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE5MzcsNyArMTkzNyw3IEBA
IHN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfVkFMVUVfMTQgPT0gMHgxYWJjLCAiQ09OU1Rf
VkFMVUVfMTQgaW4gVGVzdE9iaiBkb2VzCiBzdGF0aWNfYXNzZXJ0KFRlc3RPYmo6OkNPTlNUX0lN
UEwgPT0gMTUsICJDT05TVF9JTVBMIGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJv
bSBJREwiKTsKIHN0YXRpY19hc3NlcnQoVGVzdE9iajo6cmVhZG9ubHkgPT0gMCwgInJlYWRvbmx5
IGluIFRlc3RPYmogZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJvbSBJREwiKTsKIAotdGVtcGxhdGU8
PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVU
RVMgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4
aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTE5NjUsNiArMTk2NSw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xv
YmFsCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElP
TihKU1Rlc3RPYmpDb25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNv
bnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQogewpAQCAtMjU0Niw3ICsyNTQ3LDcgQEAgc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBjYWxsSlNUZXN0T2JqMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1Rlc3RPYmooSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxKU1Rlc3RPYmosIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGxleGljYWxH
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNTgyLDcgKzI1ODMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RP
YmoqIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpYwog
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU5Miw3ICsyNTkz
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2
MTMsNyArMjYxNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxv
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwucmVhZE9ubHlMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqUmVhZE9ubHlMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRPbmx5TG9uZ0F0dHIi
KTsKIH0KQEAgLTI2MjYsNyArMjYyNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5yZWFkT25seVN0cmluZ0F0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVhZE9u
bHlTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHJHZXR0ZXIsIENh
c3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJyZWFkT25seVN0cmluZ0F0dHIiKTsKIH0KQEAgLTI2MzksNyArMjY0MCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucmVhZE9ubHlUZXN0T2JqQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0
ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInJlYWRPbmx5VGVzdE9iakF0dHIiKTsKIH0KQEAgLTI2NTEsNyAr
MjY1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRp
Y1JlYWRPbmx5TG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIFRlc3RPYmo6OnN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3Ry
dWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1
Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJzdGF0aWNSZWFkT25seUxvbmdBdHRyIik7CiB9CkBAIC0yNjYzLDcgKzI2NjQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJp
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIFRlc3RPYmo6OnN0YXRpY1N0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNT
dHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdGF0aWNTdHJpbmdB
dHRyIik7CiB9CkBAIC0yNjgwLDcgKzI2ODEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0Jgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGlj
U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldFN0YXRpYzxzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0
dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
InN0YXRpY1N0cmluZ0F0dHIiKTsKIH0KQEAgLTI2OTEsNyArMjY5Miw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljCiAgICAgcmV0dXJuIEpTVGVzdFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
b25zdHJ1Y3RvclRlc3RTdWJPYmooSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yVGVz
dFN1Yk9iakdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJP
YmoiKTsKIH0KQEAgLTI3MDgsNyArMjcwOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iakdldHRlcihKU0dsb2JhbE9iCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0
T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhyb3dTY29wZSwgVGVzdE9iajo6dGVzdFN0YXRpY1JlYWRv
bmx5T2JqKGRvY3VtZW50KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3Ry
dWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmooSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25s
eU9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlP
YmpHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0U3RhdGljUmVh
ZG9ubHlPYmoiKTsKIH0KQEAgLTI3MjEsNyArMjcyMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpFbnVtQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEVudW1lcmF0
aW9uPFRlc3RPYmo6OkVudW1UeXBlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5lbnVtQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9iakVudW1BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpFbnVtQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVu
dW1BdHRyIik7CiB9CkBAIC0yNzQyLDcgKzI3NDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqRW51bUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
YwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakVudW1BdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpFbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqRW51bUF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVu
dW1BdHRyIik7CiB9CkBAIC0yNzU1LDcgKzI3NTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqQnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
YwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCeXRlPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5dGVBdHRyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQnl0ZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
akJ5dGVBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnl0ZUF0dHIiKTsKIH0KQEAgLTI3NzMsNyArMjc3
NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpCeXRlQXR0clNldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqQnl0ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpCeXRlQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnl0ZUF0dHIiKTsKIH0KQEAgLTI3ODYsNyArMjc4
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETE9jdGV0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLm9jdGV0QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3Rl
dEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpPY3RldEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9jdGV0QXR0ckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIm9jdGV0QXR0ciIpOwogfQpAQCAtMjgwNCw3ICsyODA1LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdE9iak9jdGV0QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpPY3RldEF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iak9jdGV0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
T2N0ZXRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJvY3RldEF0dHIiKTsKIH0KQEAgLTI4MTcsNyArMjgxOCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNob3J0QXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTaG9ydEF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ialNob3J0QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNob3J0QXR0ciIpOwog
fQpAQCAtMjgzNSw3ICsyODM2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialNo
b3J0QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamUKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialNob3J0
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU2hvcnRBdHRyU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzaG9ydEF0dHIi
KTsKIH0KQEAgLTI4NDgsNyArMjg0OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpDbGFtcGVkU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExT
aG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY2xhbXBlZFNob3J0
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqQ2xhbXBlZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImNsYW1wZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI4NjYsNyArMjg2Nyw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY2xhbXBlZFNob3J0
QXR0ciIpOwogfQpAQCAtMjg3OSw3ICsyODgwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW5mb3JjZVJhbmdl
QWRhcHRvcjxJRExTaG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
ZW5mb3JjZVJhbmdlU2hvcnRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5mb3JjZVJhbmdl
U2hvcnRBdHRyIik7CiB9CkBAIC0yODk3LDcgKzI4OTgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakVuZm9yY2VSYW5n
ZVNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuZm9yY2VSYW5nZVNob3J0
QXR0ciIpOwogfQpAQCAtMjkxMCw3ICsyOTExLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2wK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRTaG9y
dD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZFNob3J0QXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInVuc2lnbmVkU2hvcnRBdHRyIik7CiB9CkBAIC0yOTI4LDcgKzI5MjksNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNl
dEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVuc2lnbmVk
U2hvcnRBdHRyIik7CiB9CkBAIC0yOTQxLDcgKzI5NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmxvbmdBdHRyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTG9uZ0F0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9iakxvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0F0dHIiKTsKIH0KQEAgLTI5NTksNyAr
Mjk2MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpMb25nQXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpMb25nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibG9uZ0F0dHIiKTsKIH0KQEAgLTI5NzIsNyAr
Mjk3Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmdMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmxvbmdMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakxvbmdMb25n
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdMb25nQXR0ciIpOwogfQpAQCAtMjk5MCw3ICsyOTkx
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakxvbmdMb25nQXR0clNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJsb25nTG9uZ0F0dHIiKTsKIH0K
QEAgLTMwMDMsNyArMzAwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbnNp
Z25lZExvbmdMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkTG9uZ0xvbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRMb25nTG9uZ0F0dHIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpV
bnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtMzAyMSw3ICsz
MDIyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVW5zaWduZWRM
b25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwogfQpAQCAtMzAzNCw3ICszMDM1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLnN0cmluZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5n
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9ialN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ0F0dHJHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDUyLDcgKzMwNTMsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmlu
Z0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ialN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgInN0cmluZ0F0dHIiKTsKIH0KQEAgLTMwNjUsNyArMzA2Niw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51
c3ZzdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmlu
Z0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVc3ZzdHJpbmdBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidXN2c3RyaW5nQXR0ciIpOwogfQpAQCAtMzA4Myw3ICszMDg0LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RPYmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdBdHRyIik7CiB9CkBAIC0z
MDk2LDcgKzMwOTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxH
bG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBs
LnRlc3RPYmpBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqVGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRlc3RPYmpBdHRyR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidGVzdE9iakF0dHIiKTsKIH0KQEAgLTMxMTQsNyArMzExNSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVGVz
dE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpUZXN0T2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAidGVzdE9iakF0dHIiKTsKIH0KQEAgLTMxMjcsNyArMzEyOCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETE51bGxhYmxlPElETEludGVyZmFjZTxUZXN0T2JqPj4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRl
c3ROdWxsYWJsZU9iakF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVz
dE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialRl
c3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0TnVsbGFibGVPYmpBdHRyIik7
CiB9CkBAIC0zMTQ1LDcgKzMxNDYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
VGVzdE51bGxhYmxlT2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ialRlc3ROdWxsYWJsZU9iakF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInRlc3ROdWxsYWJsZU9iakF0dHIiKTsKIH0KQEAgLTMxNTgs
NyArMzE1OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9i
akF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubGVu
aWVudFRlc3RPYmpBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmll
bnRUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTGVuaWVu
dFRlc3RPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJsZW5pZW50VGVzdE9iakF0dHIiKTsK
IH0KQEAgLTMxNzYsNyArMzE3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpM
ZW5pZW50VGVzdE9iakF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
akxlbmllbnRUZXN0T2JqQXR0clNldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJldHVy
bkVhcmx5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJs
ZW5pZW50VGVzdE9iakF0dHIiKTsKIH0KQEAgLTMxODksNyArMzE5MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElE
TERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bmZvcmdl
YWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5mb3JnZWFibGVB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqVW5mb3JnZWFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJ1bmZvcmdlYWJsZUF0dHIiKTsKIH0KQEAgLTMyMDIsNyArMzIwMyw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZ0dldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3RyaW5nQWRhcHRvcjxJRExET01TdHJpbmc+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ0F0dHJUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVs
bEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmciKTsKIH0KQEAgLTMyMjAsNyArMzIyMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsb2Jh
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmci
KTsKIH0KQEAgLTMyMzMsNyArMzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlcihKU0dsCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5
U3RyaW5nQWRhcHRvcjxJRExVU1ZTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAidXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAg
LTMyNTEsNyArMzI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJp
bmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0dsCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZ1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsK
IH0KQEAgLTMyNjQsNyArMzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpC
eXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIoSlNHCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExlZ2FjeU51bGxUb0VtcHR5U3Ry
aW5nQWRhcHRvcjxJRExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgaW1wbC5ieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0K
QEAgLTMyODIsNyArMzI4Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpCeXRl
U3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdTZXR0ZXIoSlNHCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJl
YXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3Ry
aW5nIik7CiB9CkBAIC0zMjk1LDcgKzMyOTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9N
U3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nTG9uZ1JlY29yZEF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdM
b25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAtMzMxMyw3ICszMzE0LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29y
ZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRB
dHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJzdHJpbmdMb25nUmVjb3JkQXR0ciIpOwogfQpAQCAtMzMyNiw3ICszMzI3LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMUmVjb3JkPElETFVTVlN0cmluZywgSURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnVzdnN0cmluZ0xv
bmdSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmlu
Z0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
alVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidXN2c3RyaW5nTG9uZ1Jl
Y29yZEF0dHIiKTsKIH0KQEAgLTMzNDQsNyArMzM0NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidXN2c3RyaW5nTG9u
Z1JlY29yZEF0dHIiKTsKIH0KQEAgLTMzNTcsNyArMzM1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJlY29y
ZDxJRExCeXRlU3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudXN2c3RyaW5nTG9uZ1JlY29yZEF0
dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIp
OwogfQpAQCAtMzM3NSw3ICszMzc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
alVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0
ciIpOwogfQpAQCAtMzM4OCw3ICszMzg5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ialN0cmluZ09ialJlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETERPTVN0
cmluZywgSURMSW50ZXJmYWNlPFRlc3RPYmo+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nT2JqUmVjb3JkQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0
ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ09ialJlY29yZEF0dHIiKTsKIH0KQEAgLTM0MDYsNyAr
MzQwNyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nT2Jq
UmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5nT2JqUmVj
b3JkQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAic3RyaW5nT2JqUmVjb3JkQXR0ciIpOwogfQpAQCAtMzQxOSw3ICszNDIwLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0ckdl
dHRlcihKU0dsb2JhbE9iamVjdCYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRl
c3RPYmo+Pj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpT
dHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ051bGxhYmxl
T2JqUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0
ciIpOwogfQpAQCAtMzQzNyw3ICszNDM4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJl
Y29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdO
dWxsYWJsZU9ialJlY29yZEF0dHIiKTsKIH0KQEAgLTM0NTAsNyArMzQ1MSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFJlY29yZDxJRExET01TdHJpbmcsIElETENhbGxiYWNrRnVuY3Rpb248SlNWb2lkQ2FsbGJh
Y2s+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwuc3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3Ry
aW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nVm9pZENhbGxi
YWNrUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0
dHIiKTsKIH0KQEAgLTM0NjgsNyArMzQ2OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNr
UmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3Ry
aW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ciIpOwogfQpAQCAtMzQ4MSw3ICszNDgyLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakRpY3Rpb25hcnlBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRGljdGlvbmFyeTxUZXN0T2JqOjpEaWN0aW9uYXJ5Pj4obGV4aWNhbEdsb2JhbE9i
amVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuZGljdGlv
bmFyeUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGljdGlvbmFyeUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqRGljdGlvbmFyeUF0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJkaWN0aW9uYXJ5QXR0ciIpOwogfQpAQCAtMzQ5OSw3ICszNTAwLDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJkaWN0aW9uYXJ5QXR0ciIpOwogfQpA
QCAtMzUxMiw3ICszNTEzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxh
YmxlRGljdGlvbmFyeUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRGljdGlvbmFyeTxU
ZXN0T2JqOjpEaWN0aW9uYXJ5Pj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlRGljdGlvbmFyeUF0dHIoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
ak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlRGljdGlvbmFy
eUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZURpY3Rpb25hcnlBdHRyIik7CiB9CkBAIC0z
NTMwLDcgKzM1MzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVE
aWN0aW9uYXJ5QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
ak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
ak51bGxhYmxlRGljdGlvbmFyeUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlRGljdGlvbmFyeUF0dHIiKTsKIH0KQEAgLTM1
NDMsNyArMzU0NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpBbm5vdGF0ZWRU
eXBlSW5VbmlvbkF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuaW9uPElETERPTVN0cmluZywgSURMQ2xhbXBB
ZGFwdG9yPElETExvbmc+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW5ub3RhdGVkVHlwZUlu
VW5pb25BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyIik7CiB9
CkBAIC0zNTYxLDcgKzM1NjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW5u
b3RhdGVkVHlwZUluVW5pb25BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFubm90YXRlZFR5cGVJblVuaW9uQXR0
ciIpOwogfQpAQCAtMzU3NCw3ICszNTc1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2VxdWVuY2U8SURMQ2xh
bXBBZGFwdG9yPElETExvbmc+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuYW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVl
bmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW5u
b3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYW5ub3RhdGVkVHlwZUlu
U2VxdWVuY2VBdHRyIik7CiB9CkBAIC0zNTkyLDcgKzM1OTMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakFubm90YXRl
ZFR5cGVJblNlcXVlbmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5j
ZUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgImFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0ciIpOwogfQpAQCAtMzYwNSw3ICszNjA2LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248QWx0ZXJuYXRlRW51bU5hbWU+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmltcGxlbWVudGF0aW9uRW51bUF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iaklt
cGxlbWVudGF0aW9uRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0
dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJpbXBsZW1lbnRhdGlvbkVudW1BdHRyIik7CiB9CkBAIC0zNjI2
LDcgKzM2MjcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRp
b25FbnVtQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iaklt
cGxlbWVudGF0aW9uRW51bUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iaklt
cGxlbWVudGF0aW9uRW51bUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgImltcGxlbWVudGF0aW9uRW51bUF0dHIiKTsKIH0KQEAgLTM2Mzks
NyArMzY0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpNZWRpYURldmljZXNH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxNZWRpYURldmljZXM+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1w
bC5tZWRpYURldmljZXMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTWVkaWFE
ZXZpY2VzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqTWVkaWFEZXZpY2VzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpNZWRpYURldmljZXNHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJtZWRpYURldmljZXMiKTsKIH0KQEAgLTM2NTIsNyArMzY1Myw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwueG1sT2JqQXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqWE1MT2JqQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqWE1MT2JqQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlhNTE9iakF0dHIiKTsKIH0KQEAg
LTM2NzAsNyArMzY3MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpYTUxPYmpB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqWE1MT2JqQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqWE1MT2JqQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiWE1MT2JqQXR0ciIp
OwogfQpAQCAtMzY4Myw3ICszNjg0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
akNyZWF0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pc0NyZWF0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNyZWF0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgImNyZWF0ZSIpOwogfQpAQCAtMzcwMSw3ICszNzAyLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdE9iakNyZWF0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RP
YmpDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iakNyZWF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqQ3JlYXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJjcmVhdGUiKTsKIH0KQEAgLTM3MTQsNyArMzcxNSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkc3RyaW5n
YXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkU3Ry
aW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM3
MzIsNyArMzczMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRT
dHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVm
bGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwogfQpAQCAtMzc0NSw3ICszNzQ2LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMVVNWU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWR1c3ZzdHJpbmdhdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVm
bGVjdGVkVVNWU3RyaW5nQXR0ciIpOwogfQpAQCAtMzc2Myw3ICszNzY0LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZs
ZWN0ZWRVU1ZTdHJpbmdBdHRyIik7CiB9CkBAIC0zNzc2LDcgKzM3NzcsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmdldEludGVncmFs
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVkaW50ZWdyYWxhdHRyQXR0cikp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zNzk0
LDcgKzM3OTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50
ZWdyYWxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVm
bGVjdGVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRJbnRlZ3JhbEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZEludGVncmFsQXR0ciIpOwogfQpAQCAtMzgwNyw3ICsz
ODA4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVk
SW50ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBzdGQ6Om1heCgwLCBpbXBsLmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6
OkhUTUxOYW1lczo6cmVmbGVjdGVkdW5zaWduZWRpbnRlZ3JhbGF0dHJBdHRyKSkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
UmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHIiKTsKIH0KQEAgLTM4MjUsNyArMzgyNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9i
amVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5z
aWduZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAicmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM4MzgsNyArMzgz
OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1M
TmFtZXM6OnJlZmxlY3RlZGJvb2xlYW5hdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVj
dGVkQm9vbGVhbkF0dHIiKTsKIH0KQEAgLTM4NTYsNyArMzg1Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0clNldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0clNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQm9vbGVh
bkF0dHIiKTsKIH0KQEAgLTM4NjksNyArMzg3MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRVUkxBdHRyaWJ1dGUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1cmxhdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVVJM
QXR0ciIpOwogfQpAQCAtMzg4Nyw3ICszODg4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ialJlZmxlY3RlZFVSTEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVUkxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRVUkxBdHRyIik7CiB9CkBAIC0zOTAwLDcgKzM5
MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuZ2V0VVJMQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVmbGVjdGVk
dXN2dXJsYXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVj
dGVkVVNWVVJMQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZFVTVlVSTEF0dHIiKTsKIH0K
QEAgLTM5MTgsNyArMzkxOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRVU1ZVUkxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2Jq
UmVmbGVjdGVkVVNWVVJMQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkVVNWVVJMQXR0ciIpOwogfQpAQCAtMzkzMSw3ICsz
OTMyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpjdXN0b21Db250ZW50U3RyaW5nQXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxl
Y3RlZFN0cmluZ0F0dHIiKTsKIH0KQEAgLTM5NDksNyArMzk1MCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0
ciIpOwogfQpAQCAtMzk2Miw3ICszOTYzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5nZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRJbnRlZ3JhbEF0dHJBdHRyKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRl
Z3JhbEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIiKTsK
IH0KQEAgLTM5ODAsNyArMzk4MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3Vz
dG9tSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zOTkzLDcgKzM5OTQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJv
b2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaGFzQXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRC
b29sZWFuQXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxl
Y3RlZEN1c3RvbUJvb2xlYW5BdHRyIik7CiB9CkBAIC00MDExLDcgKzQwMTIsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xl
YW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21C
b29sZWFuQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiKTsKIH0KQEAgLTQwMjQsNyArNDAy
NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxB
dHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250
ZW50VVJMQXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRDdXN0b21VUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbVVS
TEF0dHIiKTsKIH0KQEAgLTQwNDIsNyArNDA0Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tVVJM
QXR0ciIpOwogfQpAQCAtNDA1Niw3ICs0MDU3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakVu
YWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlIik7CiB9CkBAIC00MDc3LDcgKzQwNzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVj
dCYgbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQwOTIsNyArNDA5Myw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGVTdGF0aWNHZXR0ZXIoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdE9iajo6
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
b25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpz
VGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpY0dldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGVTdGF0aWMiKTsKIH0KQEAgLTQxMTIsNyArNDExMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWNTZXR0
ZXIoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJs
ZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0U3RhdGljPHNl
dEpTVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpY1NldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxl
ZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyIpOwogfQpAQCAtNDEyNyw3ICs0MTI4LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRmxvYXQzMkFycmF5PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50eXBlZEFycmF5QXR0cigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpUeXBlZEFycmF5QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInR5cGVkQXJy
YXlBdHRyIik7CiB9CkBAIC00MTQ1LDcgKzQxNDYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqVHlwZWRBcnJheUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqVHlwZWRBcnJheUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInR5cGVkQXJyYXlBdHRyIik7CiB9CkBAIC00MTU2LDcgKzQxNTcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0aGlzT2JqZWN0LmN1c3RvbUF0
dHIobGV4aWNhbEdsb2JhbE9iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1
c3RvbUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDdXN0b21BdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiY3VzdG9tQXR0ciIpOwogfQpAQCAtNDE2OCw3ICs0MTY5LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iakN1c3RvbUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpD
dXN0b21BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpDdXN0b21BdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJjdXN0b21BdHRyIik7CiB9CkBAIC00MTc5LDcgKzQxODAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqT25mb29HZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIGV2ZW50SGFuZGxlckF0dHJpYnV0ZSh0
aGlzT2JqZWN0LndyYXBwZWQoKSwgZXZlbnROYW1lcygpLmZvb0V2ZW50LCB3b3JsZEZvckRPTU9i
amVjdCh0aGlzT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
T25mb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak9uZm9vR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib25mb28iKTsKIH0K
QEAgLTQxOTQsNyArNDE5NSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpPbmZv
b1NldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpPbmZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT25mb28oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak9uZm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJvbmZvbyIpOwogfQpAQCAtNDIwNSw3ICs0
MjA2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak9ud2Via2l0Zm9vR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICByZXR1cm4gZXZlbnRIYW5kbGVy
QXR0cmlidXRlKHRoaXNPYmplY3Qud3JhcHBlZCgpLCBldmVudE5hbWVzKCkuZm9vRXZlbnQsIHdv
cmxkRm9yRE9NT2JqZWN0KHRoaXNPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqT253ZWJraXRmb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpPbndlYmtpdGZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqT253ZWJraXRmb29H
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJvbndlYmtpdGZvbyIpOwogfQpAQCAtNDIyMCw3ICs0MjIxLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9ud2Via2l0Zm9vU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpPbndlYmtpdGZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT253ZWJraXRmb28oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6c2V0PHNldEpTVGVzdE9iak9ud2Via2l0Zm9vU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJvbndlYmtpdGZvbyIpOwogfQpAQCAtNDIzMyw3
ICs0MjM0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC53aXRoRXhlY1N0YXRlQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhF
eGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyNTEsNyArNDI1Miw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqV2l0
aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aEV4
ZWNTdGF0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDI2NCw3ICs0MjY1LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRl
R2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC53aXRoQ2FsbFdpdGhB
bmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSgqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxl
eGljYWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0
ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVy
Q2FsbFdpdGhBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ3aXRoQ2FsbFdpdGhBbmRTZXR0ZXJD
YWxsV2l0aEF0dHJpYnV0ZSIpOwogfQpAQCAtNDI4Miw3ICs0MjgzLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRl
U2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpXaXRo
Q2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRo
QW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoQ2FsbFdpdGhBbmRT
ZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZSIpOwogfQpAQCAtNDI5OCw3ICs0Mjk5LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZSgqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGUiKTsKIH0KQEAgLTQzMTksNyArNDMyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGUiKTsKIH0KQEAgLTQzMzUsNyArNDMzNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZUdlCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0
T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRy
aWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
KmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlIik7
CiB9CkBAIC00MzU2LDcgKzQzNTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVTZQogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlIik7CiB9CkBAIC00MzcyLDcg
KzQzNzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxP
YmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSgqanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpLCAqY2FsbEZyYW1l
LCAqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlIik7CiB9CkBAIC00MzkzLDcgKzQzOTQsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRFeGVjU3RhdGVXaXRoU3BhY2VzQQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVX
aXRoU3BhY2VzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIpOwog
fQpAQCAtNDQwNyw3ICs0NDA4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEF0dHIxKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9u
YWxBdHRyMSIpOwogfQpAQCAtNDQyOCw3ICs0NDI5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjFTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0dHIxIik7CiB9CkBAIC00NDQ0LDcg
KzQ0NDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
MkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLmNvbmRpdGlvbmFsQXR0cjIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHIyIik7CiB9
CkBAIC00NDY1LDcgKzQ0NjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMlNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIiKTsKIH0KQEAgLTQ0ODEsNyArNDQ4Miw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuY29u
ZGl0aW9uYWxBdHRyMygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyM0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjMiKTsKIH0KQEAgLTQ1MDIsNyAr
NDUwMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIz
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyM1Nl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29u
ZGl0aW9uYWxBdHRyMyIpOwogfQpAQCAtNDUxNiw3ICs0NTE3LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0T2JqZWN0QTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImNvbmRpdGlvbmFsQXR0cjQiKTsKIH0KQEAgLTQ1MzEsNyArNDUzMiw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRp
dGlvbmFsQXR0cjQiKSwgc3RybGVuKCJjb25kaXRpb25hbEF0dHI0IikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNCIpOwogfQpAQCAt
NDU0NSw3ICs0NTQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNU
ZXN0T2JqZWN0Qjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjUiKTsKIH0K
QEAgLTQ1NjAsNyArNDU2MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNvbmRpdGlvbmFsQXR0cjUiKSwgc3RybGVuKCJj
b25kaXRpb25hbEF0dHI1IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiY29uZGl0aW9uYWxBdHRyNSIpOwogfQpAQCAtNDU3NCw3ICs0NTc1LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvckdldHRl
cihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0T2JqZWN0Qzo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjYiKTsKIH0KQEAgLTQ1ODksNyArNDU5MCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3JT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImNvbmRpdGlvbmFsQXR0cjYiKSwgc3RybGVuKCJjb25kaXRpb25hbEF0dHI2IikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNiIp
OwogfQpAQCAtNDYwOSw3ICs0NjEwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1
dGUxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqQ2FjaGVkQXR0cmlidXRlMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgImNhY2hlZEF0dHJpYnV0ZTEiKTsKIH0KQEAgLTQ2MjcsNyArNDYyOCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyR2V0dGVy
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRB
dHRyaWJ1dGUyIik7CiB9CkBAIC00NjQ2LDcgKzQ2NDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlM0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsbwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDYWNoZWRB
dHRyaWJ1dGUzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2FjaGVkQXR0cmlidXRlMyIpOwogfQpAQCAtNDY2
MSw3ICs0NjYyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmFueUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpBbnlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakFueUF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImFueUF0dHJpYnV0ZSIpOwogfQpAQCAtNDY3OSw3ICs0Njgw
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZVNldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQW55QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhbnlBdHRyaWJ1dGUiKTsKIH0K
QEAgLTQ2OTIsNyArNDY5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpPYmpl
Y3RBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE9iamVjdD4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5vYmplY3RBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJvYmplY3RBdHRyaWJ1
dGUiKTsKIH0KQEAgLTQ3MTAsNyArNDcxMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpPYmplY3RBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
ak9iamVjdEF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAib2JqZWN0QXR0cmlidXRlIik7CiB9CkBAIC00NzIzLDcgKzQ3MjQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50R2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExJbnRlcmZhY2U8RG9jdW1lbnQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgQmluZGluZ1NlY3VyaXR5Ojpj
aGVja1NlY3VyaXR5Rm9yTm9kZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmNvbnRlbnREb2N1
bWVudCgpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqQ29udGVudERvY3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnRHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJjb250ZW50RG9jdW1lbnQiKTsKIH0KQEAgLTQ3MzYsNyArNDczNyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnRHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEludGVyZmFjZTxTVkdQb2ludD4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm11dGFibGVQb2ludCgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpNdXRhYmxlUG9p
bnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iak11dGFibGVQb2ludEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm11dGFibGVQ
b2ludCIpOwogfQpAQCAtNDc1NCw3ICs0NzU1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9iak11dGFibGVQb2ludFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iak11dGFibGVQb2ludChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTXV0
YWJsZVBvaW50U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJtdXRhYmxlUG9pbnQiKTsKIH0KQEAgLTQ3NjcsNyArNDc2OCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYmx1ZWJlcnJ5
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJhd2Jl
cnJ5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpTdHJhd2JlcnJ5R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyYXdiZXJy
eSIpOwogfQpAQCAtNDc4NSw3ICs0Nzg2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9ialN0cmF3YmVycnlTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpTdHJhd2JlcnJ5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJz
dHJhd2JlcnJ5Iik7CiB9CkBAIC00Nzk4LDcgKzQ3OTksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqRGVzY3JpcHRpb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmRlc2NyaXB0aW9uKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRGVzY3JpcHRpb24oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9iakRlc2NyaXB0aW9uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZGVzY3JpcHRpb24iKTsK
IH0KQEAgLTQ4MTEsNyArNDgxMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpJ
ZEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuaWQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqSWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpJZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqSWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJpZCIpOwog
fQpAQCAtNDgyOSw3ICs0ODMwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iaklk
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpJZChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqSWQoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iaklkU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJpZCIpOwogfQpAQCAtNDg0Miw3ICs0ODQzLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakhhc2hHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmhhc2goKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSGFzaChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakhhc2go
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9iakhhc2hHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJoYXNoIik7CiB9CkBAIC00ODU1
LDcgKzQ4NTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFibGVB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLnJlcGxhY2VhYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVw
bGFjZWFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4NjcsNyArNDg2OCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInJlcGxh
Y2VhYmxlQXR0cmlidXRlIiksIHN0cmxlbigicmVwbGFjZWFibGVBdHRyaWJ1dGUiKSksIHZhbHVl
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2Jq
UmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDg4MCw3ICs0
ODgxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5yZXN0cmljdGVkRG91YmxlPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZURvdWJsZUF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZURv
dWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlRG91YmxlQXR0cmlidXRlIik7
CiB9CkBAIC00ODkzLDcgKzQ4OTQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVMb25nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExMb25nPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZUxvbmdBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZUxvbmdBdHRyaWJ1dGUiKTsKIH0KQEAg
LTQ5MDYsNyArNDkwNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJs
ZUJvb2xlYW5BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETEJvb2xlYW4+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0
ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxl
Qm9vbGVhbkF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0
ZSIpOwogfQpAQCAtNDkxOSw3ICs0OTIwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRE9N
U3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZVN0
cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJs
ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlU3RyaW5n
QXR0cmlidXRlIik7CiB9CkBAIC00OTMyLDcgKzQ5MzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxP
YmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJs
ZTxJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5udWxsYWJs
ZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OmdldDxqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00OTUw
LDcgKzQ5NTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVMb25n
U2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8
c2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxhYmxlTG9uZ1NldHRh
YmxlQXR0cmlidXRlIik7CiB9CkBAIC00OTYzLDcgKzQ5NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxs
YWJsZTxJRExET01TdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
Lm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3Ry
aW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFi
bGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJudWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmli
dXRlIik7CiB9CkBAIC00OTgxLDcgKzQ5ODIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iagog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5OTQsNyAr
NDk5NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVTVlN0cmluZz4+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUw
MTIsNyArNTAxMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVVT
VlN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0
ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
bnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTAyNSw3ICs1MDI2
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1Nl
dHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQnl0ZVN0cmluZz4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJudWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAt
NTA0Myw3ICs1MDQ0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxl
Qnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJudWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTA1Niw3
ICs1MDU3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZUdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakF0dHJpYnV0ZUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImF0dHJpYnV0ZSIpOwogfQpAQCAtNTA2OSw3ICs1MDcwLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlR2V0
dGVyKEpTR2xvYmFsT2JqZWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMRW51bWVyYXRpb248VGVzdE9iajo6T3B0aW9uYWw+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakF0dHJpYnV0
ZVdpdGhSZXNlcnZlZEVudW1UeXBlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2Vy
dmVkRW51bVR5cGUiKTsKIH0KQEAgLTUwOTAsNyArNTA5MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZVNldHRlcihKU0dsb2Jh
bE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQXR0cmlidXRl
V2l0aFJlc2VydmVkRW51bVR5cGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1U
eXBlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2
ZWRFbnVtVHlwZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUiKTsKIH0KQEAgLTUxMDMsNyAr
NTEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlWb2lk
UHJvbWlzZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURMVW5kZWZpbmVkPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVz
dFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21pc2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlW
b2lkUHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVzdFJlYWRPbmx5Vm9pZFByb21p
c2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQcm9taXNl
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdFJlYWRPbmx5Vm9pZFByb21p
c2VBdHRyaWJ1dGUiKTsKIH0KQEAgLTUxMTYsNyArNTExNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21p
c2U8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRlc3RSZWFkT25seVByb21pc2VB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFJlYWRPbmx5
UHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpSZWplY3RQcm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAidGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTEyOSw3ICs1MTMwLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucHV0Rm9yd2FyZHNB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIpOwogfQpA
QCAtNTE1Miw3ICs1MTUzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialB1dEZv
cndhcmRzQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
alB1dEZvcndhcmRzQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIpOwogfQpAQCAtNTE2NSw3
ICs1MTY2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVs
bGFibGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRlc3ROb2RlPj4+
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLnB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialB1dEZvcndh
cmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVB
dHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIik7
CiB9CkBAIC01MTg4LDcgKzUxODksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
UHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdAogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInB1dEZvcndh
cmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyMDEsNyArNTIwMiw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zdHJp
bmdpZmllckF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJp
bmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpT
dHJpbmdpZmllckF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRl
Iik7CiB9CkBAIC01MjE5LDcgKzUyMjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAg
IHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ2lmaWVyQXR0cmlidXRlIik7CiB9CkBA
IC01MjMyLDcgKzUyMzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZUdldHRlcihKU0dsbwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRU
b1dpbmRvd0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0cmlidXRlIik7CiB9
CkBAIC01MjUwLDcgKzUyNTEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZVNldHRlcihKU0dsbwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKTsK
IH0KQEAgLTUyNjMsNyArNTI2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlR2V0dGVyKEpTR2xvCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJp
YnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUi
KTsKIH0KQEAgLTUyODEsNyArNTI4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlU2V0dGVyKEpTR2xvCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRU
b1dvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dvcmtlckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0
ZSIpOwogfQpAQCAtNTI5NCw3ICs1Mjk1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXQKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QW5kV29ya2VyQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25h
bGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSIpOwogfQpA
QCAtNTMxMiw3ICs1MzEzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRp
dGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVTZXQKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QW5kV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93
QW5kV29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlIik7CiB9CkBAIC01Mzc1LDcgKzUzNzYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcgogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhy
b3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3Bl
cmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRB
dFJ1bnRpbWVPcGVyYXRpb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpOwogfQpAQCAtNTM5OSw3
ICs1NDAwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3AKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3Rh
dGljKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVu
Y3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljIik7CiB9
CkBAIC01NDIzLDcgKzU0MjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dv
cmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3Js
ZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVk
Iik7CiB9CkBAIC01NDQ1LDcgKzU0NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmljTWV0aG9kQgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Xb3JsZFNwZWNpZmlj
TWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldvcmxkU3BlY2lmaWNNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNN
ZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndvcmxkU3BlY2lm
aWNNZXRob2QiKTsKIH0KQEAgLTU0NjIsNyArNTQ2Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJl
c3VsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNhbGN1
bGF0ZVNlY3JldFJlc3VsdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpOwogfQpAQCAtNTQ3Nyw3
ICs1NDc4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbkJvZHkKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5nZXRT
ZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImdldFNlY3JldEJvb2xlYW4iKTsKIH0KQEAgLTU0OTMsNyArNTQ5NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+KGltcGwudGVzdEZlYXR1cmVH
ZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEZl
YXR1cmVHZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNl
Y3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RG
ZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpOwogfQpAQCAtNTUxMiw3ICs1NTEzLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5k
ZWZpbmVkTWV0aG9kQm9keSgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VW5kZWZpbmVkTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1
bmRlZmluZWRNZXRob2QiKTsKIH0KQEAgLTU1NDAsNyArNTU0MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1l
dGhvZFdpdGhBCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blVuZGVmaW5lZE1ldGhvZFdpdGhBcmdzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblVuZGVmaW5lZE1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25VbmRlZmluZWRNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MiKTsKIH0KQEAgLTU1NTUsNyAr
NTU1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RCb2R5KEpTQzo6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJ5dGU+KGltcGwuYnl0ZU1ldGhv
ZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0
aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJieXRlTWV0aG9kIik7
CiB9CkBAIC01NTgxLDcgKzU1ODIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3NCbwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCeXRl
PihpbXBsLmJ5dGVNZXRob2RXaXRoQXJncyhXVEZNb3ZlKGJ5dGVBcmcpLCBXVEZNb3ZlKHN0ckFy
ZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJncywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJieXRlTWV0aG9kV2l0aEFyZ3MiKTsKIH0KQEAgLTU1OTYsNyAr
NTU5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kQm9keShKU0M6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE9jdGV0PihpbXBsLm9jdGV0TWV0
aG9kKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0
ZXRNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9jdGV0TWV0
aG9kIik7CiB9CkBAIC01NjIyLDcgKzU2MjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzQgog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExPY3RldD4oaW1wbC5vY3RldE1ldGhvZFdpdGhBcmdzKFdURk1vdmUob2N0ZXRBcmcpLCBXVEZN
b3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2N0ZXRNZXRob2RXaXRoQXJncyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhv
ZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvY3RldE1ldGhvZFdpdGhBcmdzIik7CiB9
CkBAIC01NjM3LDcgKzU2MzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kQm9keShKU0M6OgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExMb25nPihp
bXBsLmxvbmdNZXRob2QoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZCwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTG9uZ01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bG9uZ01ldGhvZCIpOwogfQpAQCAtNTY2Myw3ICs1NjY0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhB
cmdzQm8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMTG9uZz4oaW1wbC5sb25nTWV0aG9kV2l0aEFyZ3MoV1RGTW92ZShsb25nQXJnKSwg
V1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJncyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0
aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJnc0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibG9uZ01ldGhvZFdpdGhBcmdzIik7CiB9
CkBAIC01Njc4LDcgKzU2NzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RCb2R5KEpTQzo6SgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZh
Y2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIGltcGwub2JqTWV0aG9kKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PYmpNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm9iak1ldGhvZCIpOwogfQpAQCAtNTcwNCw3ICs1NzA1LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0
aEFyZ3NCb2QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLm9iak1ldGhvZFdpdGhBcmdzKFdURk1vdmUo
bG9uZ0FyZyksIFdURk1vdmUoc3RyQXJnKSwgKm9iakFyZykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRo
QXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PYmpNZXRob2RXaXRoQXJncywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFyZ3NC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm9iak1ldGhvZFdpdGhBcmdz
Iik7CiB9CkBAIC01NzE5LDcgKzU3MjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlTWV0aG9kQm9keQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExM
b25nPihpbXBsLnVuZm9yZ2VhYmxlTWV0aG9kKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlTWV0aG9kKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9uVW5mb3Jn
ZWFibGVNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2RCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVuZm9yZ2VhYmxlTWV0aG9kIik7CiB9CkBA
IC01NzQxLDcgKzU3NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdO
dWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhBcmdUcmVhdGlu
Z051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC01NzYzLDcgKzU3NjQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoWFBhdGhOU1JlcwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVz
b2x2ZXJQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2
ZXJQYXJhbWV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIiKTsKIH0KQEAgLTU3NzgsNyArNTc3OSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBpbXBsLm51bGxhYmxlU3RyaW5nTWV0aG9kKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxs
YWJsZVN0cmluZ01ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVs
bGFibGVTdHJpbmdNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im51bGxhYmxlU3RyaW5nTWV0aG9kIik7CiB9CkBAIC01NzkyLDcgKzU3OTMsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk51
bGxhYmxlU3RyaW5nU3RhdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgVGVzdE9iajo6bnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
TnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZEJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTdHJpbmdTdGF0aWNNZXRo
b2QiKTsKIH0KQEAgLTU4MTIsNyArNTgxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TE51bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLm51bGxh
YmxlU3RyaW5nU3BlY2lhbE1ldGhvZChXVEZNb3ZlKGluZGV4KSkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0
cmluZ1NwZWNpYWxNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZCIpOwogfQpAQCAtNTgz
NCw3ICs1ODM1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmdCb2QKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVu
dW1BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoRW51bUFyZyIpOwogfQpAQCAtNTg1
Niw3ICs1ODU3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxvbmUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0YW5kYWxvbmVFbnVtQXJn
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhTdGFuZGFsb25lRW51bUFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0
YW5kYWxvbmVFbnVtQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
ZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmciKTsKIH0KQEAgLTU4NzYsNyArNTg3Nyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmcoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51
bUFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsRW51bUFy
ZyIpOwogfQpAQCAtNTg5Niw3ICs1ODk3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW4KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVm
YXVsdFZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5k
RGVmYXVsdFZhbHVlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRo
b2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlIik7CiB9CkBAIC01OTE5LDcgKzU5
MjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwubWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhXVEZNb3ZlKHN0ckFy
ZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kVGhhdFJlcXVpcmVzQWxsQXJnc0FuZFRocm93cyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RU
aGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzIik7CiB9CkBAIC01
OTQxLDcgKzU5NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJnKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhVU1ZTdHJpbmdBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhVU1ZT
dHJpbmdBcmciKTsKIH0KQEAgLTU5NjMsNyArNTk2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJs
ZVVTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmcsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZ0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5n
QXJnIik7CiB9CkBAIC01OTg1LDcgKzU5ODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
VVNWU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJn
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVT
VlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nIik7CiB9CkBAIC02MDA3LDcgKzYwMDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0
cmluZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQnl0ZVN0cmluZ0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnIik7CiB9CkBAIC02MDI5LDcgKzYwMzAs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVCeQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFibGVCeXRlU3RyaW5nQXJnKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxs
YWJsZUJ5dGVTdHJpbmdBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmciKTsKIH0KQEAgLTYwNTEsNyArNjA1Miw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9k
V2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIik7CiB9CkBAIC02MDcz
LDcgKzYwNzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWVCb2R5KAogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2VyaWFsaXplZFZhbHVl
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWVCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInNlcmlhbGl6ZWRWYWx1ZSIpOwogfQpAQCAtNjA5NSw3ICs2MDk2
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZEJvZHkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3JkLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3JkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJtZXRob2RXaXRoUmVjb3JkIik7CiB9CkBAIC02MTEyLDcgKzYxMTMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uQgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhFeGNlcHRpb24iKTsKIH0KQEAgLTYxMjcsNyAr
NjEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETExvbmc+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25n
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9uZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0
aW9uUmV0dXJuaW5nTG9uZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblJl
dHVybmluZ0xvbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nIik7CiB9CkBAIC02MTQyLDcgKzYxNDMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoRXhjZXB0aW9uUgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
bWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ09iamVjdCgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4
Y2VwdGlvblJldHVybmluZ09iamVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0LCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0Qm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nT2JqZWN0Iik7CiB9CkBAIC02MTU2LDcgKzYxNTcsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RC
b2R5KEpTQwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5j
b2RlKGNhc3RlZFRoaXMtPmN1c3RvbU1ldGhvZCgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
dXN0b21NZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImN1c3Rv
bU1ldGhvZCIpOwogfQpAQCAtNjE3MCw3ICs2MTcxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFy
Z3MKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShj
YXN0ZWRUaGlzLT5jdXN0b21NZXRob2RXaXRoQXJncygqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImN1c3RvbU1ldGhvZFdpdGhBcmdzIik7CiB9CkBAIC02MTkw
LDcgKzYxOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9kQm9keShKUwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBpbXBsLnByaXZhdGVNZXRob2QoV1RGTW92ZShhcmd1bWVudCkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uUHJpdmF0ZU1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Qcml2YXRlTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2YXRl
TWV0aG9kQm9keSwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJwcml2YXRlTWV0aG9kIik7CiB9CkBAIC02MjEwLDcgKzYy
MTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCBpbXBsLnB1YmxpY0FuZFByaXZhdGVNZXRob2QoV1RGTW92ZShhcmd1bWVudCkp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uUHVibGljQW5kUHJpdmF0ZU1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aG9kLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25QdWJsaWNBbmRQcml2YXRlTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJwdWJsaWNBbmRQcml2YXRlTWV0aG9kIik7CiB9CkBAIC02MjM5
LDcgKzYyNDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyQm9keQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVu
ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXJCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImFkZEV2ZW50TGlzdGVuZXIiKTsKIH0KQEAgLTYyNjgsNyAr
NjI2OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXJCCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0
ZW5lciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lckJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciIpOwogfQpAQCAt
NjI4NSw3ICs2Mjg2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRCb2QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWQoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNT
dGF0ZVZvaWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoRXhlY1N0YXRlVm9pZCIpOwogfQpAQCAt
NjMwMCw3ICs2MzAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakJvZHkKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRl
c3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCBpbXBsLndpdGhFeGVjU3RhdGVPYmooKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGlj
YWxHbG9iYWxPYmplY3QpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmooSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iaiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZU9iaiIpOwogfQpAQCAtNjMxNyw3ICs2MzE4
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb24oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0
ZVZvaWRFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkRXhjZXB0
aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoRXhlY1N0YXRl
Vm9pZEV4Y2VwdGlvbiIpOwogfQpAQCAtNjMzMiw3ICs2MzMzLDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0
ZU9iakV4Y2UKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhFeGVjU3RhdGVP
YmpFeGNlcHRpb24oKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxHbG9iYWxPYmpl
Y3QpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVPYmpFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2Vw
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbkJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlv
biIpOwogfQpAQCAtNjM1Miw3ICs2MzUzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpOwogfQpAQCAtNjM3Miw3ICs2
MzczLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVj
U3RhdGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4
ZWNTdGF0ZSIpOwogfQpAQCAtNjM5MCw3ICs2MzkxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlv
bkMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRv
SlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3Qq
PihsZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb24oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlT2JqRXhjZXB0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiIpOwogfQpAQCAtNjQwOCw3ICs2NDA5LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLndpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcygqanNDYXN0PEpTRE9NR2xvYmFs
T2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0KSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzIik7CiB9CkBAIC02NDMwLDcgKzY0MzEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRG9jdW1lbnRBcmd1bWVudAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoRG9jdW1lbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRG9jdW1lbnRBcmd1bWVudCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aERvY3VtZW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIndpdGhEb2N1bWVudEFyZ3VtZW50Iik7CiB9CkBAIC02NDUwLDcg
KzY0NTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRBcgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2Fs
bGVyRG9jdW1lbnRBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50
QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhDYWxs
ZXJEb2N1bWVudEFyZ3VtZW50Iik7CiB9CkBAIC02NDY3LDcgKzY0NjgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2Fs
bGVyV2luZG93QXJndQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlcldpbmRvd0FyZ3VtZW50LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhDYWxsZXJXaW5kb3dBcmd1bWVudCIpOwogfQpAQCAt
NjQ4Nyw3ICs2NDg4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXIKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJn
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9u
YWxBcmciKTsKIH0KQEAgLTY1MDcsNyArNjUwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFy
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0
VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRW
YWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVlIik7CiB9CkBAIC02NTMyLDcgKzY1MzMsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoTm9uT3B0aW9uYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Tm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnIik7CiB9
CkBAIC02NTYwLDcgKzY1NjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9u
YWxBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29P
cHRpb25hbEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyIpOwogfQpAQCAtNjU4MCw3ICs2
NTgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmciKTsKIH0KQEAgLTY2MDAsNyArNjYwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bFVTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbFVTVlN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmcsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nIik7CiB9CkBA
IC02NjIwLDcgKzY2MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9t
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmciKTsKIH0KQEAgLTY2NDAsNyArNjY0
MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRW
YWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0VmFsdWUsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVm
YXVsdFZhbHVlIik7CiB9CkBAIC02NjYwLDcgKzY2NjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxBdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0
b21TdHJpbmdBbmREZWZhdWx0VmFsdWUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUi
KTsKIH0KQEAgLTY2ODAsNyArNjY4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFN0cmluZ0lzTnVsbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsIik7CiB9
CkBAIC02NzAwLDcgKzY3MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxT
dHJpbmdJc1VuZGVmaW5lZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWRCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lz
VW5kZWZpbmVkIik7CiB9CkBAIC02NzIwLDcgKzY3MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxBdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJ
c051bGwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051
bGxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbEF0b21TdHJpbmdJc051bGwiKTsKIH0KQEAgLTY3NDAsNyArNjc0MSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbFN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nSXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsU3RyaW5nSXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZyIpOwogfQpAQCAtNjc2
MCw3ICs2NzYxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5n
SXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3RyaW5nQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxV
U1ZTdHJpbmdJc0VtcHR5U3RyaW5nIik7CiB9CkBAIC02NzgwLDcgKzY3ODEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3Ry
aW5nIik7CiB9CkBAIC02ODAwLDcgKzY4MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEbwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxEb3VibGVJc05hTihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU5Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOIik7CiB9
CkBAIC02ODIwLDcgKzY4MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxGbAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxG
bG9hdElzTmFOKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4iKTsKIH0KQEAgLTY4NDAsNyAr
Njg0MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbExvbmdMb25nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxM
b25nTG9uZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsTG9uZ0xvbmciKTsKIH0KQEAgLTY4NjAsNyArNjg2MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbExvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdM
b25nSXNaZXJvLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxMb25nTG9uZ0lz
WmVyb0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsTG9uZ0xvbmdJc1plcm8iKTsKIH0KQEAgLTY4ODAsNyArNjg4MSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbFVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
VW5zaWduZWRMb25nTG9uZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5z
aWduZWRMb25nTG9uZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0
aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZyIpOwogfQpAQCAtNjkwMCw3ICs2OTAxLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVy
byhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdM
b25nSXNaZXJvIik7CiB9CkBAIC02OTIwLDcgKzY5MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxTZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxTZXF1ZW5jZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlIik7CiB9CkBAIC02
OTQwLDcgKzY5NDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5j
ZUlzRW1wdHkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5LCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHlCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eSIpOwog
fQpAQCAtNjk2MCw3ICs2OTYxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
Qm9vbGVhbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxCb29sZWFuQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJtZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuIik7CiB9CkBAIC02OTgwLDcgKzY5ODEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxCbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNGYWxzZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxCb29sZWFuSXNGYWxzZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
Qm9vbGVhbklzRmFsc2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1l
dGhvZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNlIik7CiB9CkBAIC03MDAwLDcgKzcwMDEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbnkoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQW55
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbnlCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEFueSIpOwogfQpAQCAt
NzAyMCw3ICs3MDIxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2IKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsT2JqZWN0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RX
aXRoT3B0aW9uYWxPYmplY3QiKTsKIH0KQEAgLTcwNDAsNyArNzA0MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbE51CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxs
YWJsZVdyYXBwZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxl
V3JhcHBlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyIik7CiB9CkBAIC03MDYwLDcgKzcwNjEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxOdQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGwoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxOdWxsYWJsZVdyYXBwZXJJc051bGxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbCIp
OwogfQpAQCAtNzA4MCw3ICs3MDgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFAKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsWFBhdGhOU1Jlc29sdmVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVz
b2x2ZXIiKTsKIH0KQEAgLTcxMDAsNyArNzEwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJl
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFJlY29yZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsUmVjb3JkIik7CiB9CkBAIC03MTIwLDcgKzcxMjEs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxQcm9taXNlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFByb21pc2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2VC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25h
bFByb21pc2UiKTsKIH0KQEAgLTcxNDIsNyArNzE0Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFj
a0FyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhDYWxsYmFja0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhDYWxsYmFja0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWV0aG9kV2l0aENhbGxiYWNrQXJnIik7CiB9CkBAIC03MTY3LDcgKzcxNjgsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoTm9uQ2FsbGJhYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Tm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnIik7CiB9
CkBAIC03MTg3LDcgKzcxODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tB
bmRPcHRpb25hbEFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIik7
CiB9CkBAIC03MjA5LDcgKzcyMTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJh
Y2tGdW5jdGlvbkFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnIik7CiB9CkBAIC03
MjM0LDcgKzcyMzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhYwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdB
bmRDYWxsYmFja0Z1bmN0aW9uQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVu
Y3Rpb25BcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENh
bGxiYWNrRnVuY3Rpb25BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rpb25BcmciKTsKIH0KQEAg
LTcyNTQsNyArNzI1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0
aW9uQW5kT3B0aW9uYWxBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRpb25hbEFy
Z0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aENhbGxi
YWNrRnVuY3Rpb25BbmRPcHRpb25hbEFyZyIpOwogfQpAQCAtNzI3Myw3ICs3Mjc0LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rp
b25TdGF0aWNNZXRob2RXaXRoQ2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRp
Y01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRp
b25hbEFyZyIpOwogfQpAQCAtNzI5NCw3ICs3Mjk1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRo
Q2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0
aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmcsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0aENhbGxiYWNrQXJnQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tB
cmciKTsKIH0KQEAgLTczMTAsNyArNzMxMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMUJvCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuY29uZGl0aW9uYWxNZXRob2Qx
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDFCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImNvbmRpdGlvbmFsTWV0aG9kMSIpOwogfQpAQCAtNzMzMCw3ICs3MzMxLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29uZGl0aW9uYWxNZXRob2QyQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJjb25kaXRpb25hbE1ldGhvZDIiKTsKIH0KQEAgLTczNTAsNyArNzM1MSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kM0JvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kM0JvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxNZXRob2QzIik7CiB9CkBAIC03NjA0LDcgKzc2
MDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcgogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhv
ZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3Zlcmxv
YWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2Fk
ZWRNZXRob2QiKTsKIH0KQEAgLTc2NzEsNyArNzY3Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFs
UGFyYW1ldGVyIik7CiB9CkBAIC03NzI2LDcgKzc3MjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aAogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1VuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
dmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb25PdmVybG9hZERpc3BhdGNoZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZFdpdGhE
aXN0aW5ndWlzaGluZ1VuaW9uIik7CiB9CkBAIC03NzgzLDcgKzc3ODQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kV2l0aAogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlz
aGluZ1VuaW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnNPdmVy
bG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3Zlcmxv
YWRlZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMiKTsKIH0KQEAgLTc4NDEsNyArNzg0
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDIg
PyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90
RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1
aXNoaW5nVW5pb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlz
dGluZ3Vpc2hpbmdVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5nVW5pb24i
KTsKIH0KQEAgLTc4OTgsNyArNzg5OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlCiAgICAg
cmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbk92ZXJsb2FkRGlzcGF0
Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZFdpdGhOdWxs
YWJsZVVuaW9uIik7CiB9CkBAIC03OTU2LDcgKzc5NTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRp
b25hbAogICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoT3B0aW9uYWxVbmlvbihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25h
bFVuaW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uT3Zlcmxv
YWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2Fk
V2l0aE9wdGlvbmFsVW5pb24iKTsKIH0KQEAgLTgwMTUsNyArODAxNiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
V2l0aE51bGxhYmxlCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDIgPyB0aHJvd1ZNRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vp
c2hpbmdQYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRl
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGlu
Z1BhcmFtZXRlck92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJvdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyIik7
CiB9CkBAIC04MDMxLDcgKzgwMzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kQm9keShKUwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xh
c3NNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kIik7CiB9CkBAIC04MDQ4
LDcgKzgwNDksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExMb25nPihUZXN0T2JqOjpj
bGFzc01ldGhvZFdpdGhPcHRpb25hbChXVEZNb3ZlKGFyZykpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhPcHRpb25hbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJjbGFzc01ldGhvZFdpdGhPcHRpb25hbCIpOwogfQpAQCAtODA2Miw3ICs4
MDYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDJCb2R5KEoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPYmo6OmNsYXNzTWV0aG9kMigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNz
TWV0aG9kMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDJCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kMiIpOwogfQpAQCAtODEy
Myw3ICs4MTI0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMU8KICAgICByZXR1cm4gYXJnc0Nv
dW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJv
d1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2QxT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRob2QxIik7CiB9CkBAIC04MTUwLDcgKzgxNTEs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFt
cCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kV2l0aENsYW1wIik7CiB9CkBAIC04
MTcwLDcgKzgxNzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9uT3B0
aW9uYWwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFz
c01ldGhvZFdpdGhDbGFtcE9uT3B0aW9uYWxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25hbCIpOwogfQpAQCAtODE5NSw3
ICs4MTk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3IKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNz
TWV0aG9kV2l0aEVuZm9yY2VSYW5nZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRo
RW5mb3JjZVJhbmdlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGFz
c01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UiKTsKIH0KQEAgLTgyMTUsNyArODIxNiw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNs
YXNzTWV0aG9kV2l0aEVuZm9yCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZU9uT3B0aW9uYWwoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RX
aXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RX
aXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiY2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbCIpOwogfQpAQCAt
ODIzNyw3ICs4MjM4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG8KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1Nl
cXVlbmNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UiKTsKIH0KQEAgLTgyNTcs
NyArODI1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb25CCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFNlcXVlbmNlPElETERPTVN0
cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCks
IHRocm93U2NvcGUsIGltcGwuc3RyaW5nQXJyYXlGdW5jdGlvbihXVEZNb3ZlKHZhbHVlcykpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25TdHJpbmdBcnJheUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJzdHJpbmdBcnJheUZ1bmN0aW9uIik7CiB9CkBAIC04Mjc3LDcgKzgyNzgsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Eb21TdHJpbmdMaXN0RnVuY3RpbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8RE9NU3RyaW5nTGlzdD4+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwuZG9tU3RyaW5nTGlzdEZ1bmN0aW9uKCp2YWx1ZXMpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5nTGlz
dEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9tU3RyaW5n
TGlzdEZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkb21T
dHJpbmdMaXN0RnVuY3Rpb24iKTsKIH0KQEAgLTgyOTcsNyArODI5OCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlv
bldpdGhPcHRpb25hCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1ldGVyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25h
bFVuaW9uUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoT3B0aW9uYWxV
bmlvblBhcmFtZXRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3Bl
cmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIiKTsKIH0KQEAgLTgzMjIsNyArODMyMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhBbmRXaXRob3V0TnVsbGFibGVTZXF1ZW5jZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlIik7CiB9
CkBAIC04MzQyLDcgKzgzNDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZEJvZHkoSgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExOdWxsYWJs
ZTxJRExJbnRlcmZhY2U8RWxlbWVudD4+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmdldEVsZW1lbnRCeUlkKFdURk1vdmUoZWxlbWVudElk
KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
R2V0RWxlbWVudEJ5SWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdl
dEVsZW1lbnRCeUlkIik7CiB9CkBAIC04MzU3LDcgKzgzNTgsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVu
dEJvZHkoSgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExJbnRlcmZhY2U8RG9jdW1lbnQ+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBCaW5kaW5nU2VjdXJpdHk6OmNo
ZWNrU2VjdXJpdHlGb3JOb2RlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmdldFNWR0RvY3Vt
ZW50KCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZHRG9jdW1lbnQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkdldFNWR0RvY3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJnZXRTVkdEb2N1bWVudCIpOwogfQpAQCAtODM3OSw3ICs4MzgwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDFC
b2R5KEpTQzo6SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29udmVydDEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb252ZXJ0MSIpOwogfQpAQCAtODQwMSw3ICs4
NDAyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29udmVydDJCb2R5KEpTQzo6SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbnZlcnQyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb252ZXJ0
MiIpOwogfQpAQCAtODQyMyw3ICs4NDI0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDNCb2R5KEpTQzo6SlMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDMoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVy
dDMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJjb252ZXJ0MyIpOwogfQpAQCAtODQ0NSw3ICs4NDQ2LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
dmVydDRCb2R5KEpTQzo6SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29udmVydDQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29udmVydDQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0Qm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb252ZXJ0NCIpOwogfQpAQCAtODQ2
MCw3ICs4NDYxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFNWR1Bv
aW50Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwg
aW1wbC5tdXRhYmxlUG9pbnRGdW5jdGlvbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0
YWJsZVBvaW50RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9u
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtdXRhYmxlUG9pbnRGdW5j
dGlvbiIpOwogfQpAQCAtODQ3Nyw3ICs4NDc4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlQm9keShKU0M6OkpTR2wK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9yYW5n
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJvcmFuZ2UiKTsKIH0KQEAgLTg1MDEsNyArODUwMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
U3RyaW5nTWV0aG9kCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZhcmlhZGljU3RyaW5nTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljU3RyaW5nTWV0aG9kLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidmFyaWFkaWNTdHJpbmdNZXRob2QiKTsKIH0KQEAgLTg1MjUsNyArODUyNiw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZhcmlhZGljRG91YmxlTWV0aG9kCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNEb3VibGVNZXRob2QiKTsKIH0KQEAgLTg1NDks
NyArODU1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZEJvCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY05vZGVN
ZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNOb2RlTWV0aG9kIik7CiB9CkBAIC04
NTczLDcgKzg1NzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9uTWV0aG9kQgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY1VuaW9uTWV0aG9kKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGlj
VW5pb25NZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRob2RCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhcmlhZGljVW5pb25NZXRob2QiKTsK
IH0KQEAgLTg1OTgsNyArODU5OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueUJvZHkoSlNDOjpKU0dsb2JhCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BbnksIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkFueUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYW55Iik7
CiB9CkBAIC04NjE1LDcgKzg2MTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uQgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0
aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blRlc3RQcm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uIik7CiB9CkBAIC04NjM3LDcgKzg2MzgsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0
UHJvbWlzZUZ1bmN0aW9uVwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5j
dGlvbldpdGhGbG9hdEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0
dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFByb21pc2VGdW5jdGlvbldpdGhGbG9hdEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQi
KTsKIH0KQEAgLTg2NTQsNyArODY1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVu
Y3Rpb25XaXRoRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRXhjZXB0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9taXNlRnVu
Y3Rpb25XaXRoRXhjZXB0aW9uIik7CiB9CkBAIC04Njc0LDcgKzg2NzUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJv
bWlzZUZ1bmN0aW9uVwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnQoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VG
dW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhPcHRpb25hbEludEFyZ3VtZW50Qm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aE9wdGlvbmFsSW50QXJndW1lbnQiKTsKIH0KQEAgLTg3MjcsNyArODcyOCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlT3ZlcmxvYWRlCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RQcm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb25PdmVybG9hZERpc3BhdGNoZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFByb21pc2VPdmVybG9hZGVkRnVu
Y3Rpb24iKTsKIH0KQEAgLTg3NDMsNyArODc0NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VG
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0
YXRpY1Byb21pc2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGxTdGF0
aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25C
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RTdGF0aWNQcm9taXNl
RnVuY3Rpb24iKTsKIH0KQEAgLTg3NTksNyArODc2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21p
c2VGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVz
dFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0
aW9uV2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmlu
Z1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhj
ZXB0aW9uIik7CiB9CkBAIC04NzczLDcgKzg3NzQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1
bgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNh
c3RlZFRoaXMtPnRlc3RDdXN0b21Qcm9taXNlRnVuY3Rpb24oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsIFdURk1vdmUocHJvbWlzZSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VG
dW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAidGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbiIpOwogfQpAQCAtODc4
Nyw3ICs4Nzg4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljQ3VzdG9tUHIKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPYmo6OnRlc3RTdGF0aWND
dXN0b21Qcm9taXNlRnVuY3Rpb24oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsIFdU
Rk1vdmUocHJvbWlzZSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
VGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpD
b25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY0N1c3RvbVByb21pc2VGdW5jdGlvbkJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFN0YXRpY0N1c3RvbVByb21pc2VG
dW5jdGlvbiIpOwogfQpAQCAtODgwMSw3ICs4ODAyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdEN1c3RvbVJldHVybnNP
d24KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShj
YXN0ZWRUaGlzLT50ZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21p
c2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFJldHVy
bmluZ093blByb21pc2U8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJu
c093blByb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdEN1c3RvbVJldHVybnNPd25Qcm9taXNlRnVuY3Rpb24iKTsKIH0KQEAgLTg4MTYsNyAr
ODgxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5zT3duUHJvbWlzCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETFByb21pc2U8SURMVW5kZWZpbmVk
Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1w
bC50ZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbigpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
VGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Q
cm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGxSZXR1cm5pbmdPd25Qcm9taXNl
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Qcm9taXNlQW5kUHJvbWlz
ZVByb3h5RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRl
c3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uIik7CiB9CkBAIC04ODc5
LDcgKzg4ODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE92ZXJsb2FkTwogICAgIHJldHVybiBhcmdzQ291
bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNy
ZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93
Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE92ZXJsb2FkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlv
bmFsT3ZlcmxvYWRPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiY29uZGl0aW9uYWxPdmVybG9hZCIpOwogfQpAQCAtODkzNyw3ICs4OTM4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmUKICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93
Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU2luZ2xlQ29uZGl0aW9uYWxPdmVy
bG9hZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25k
aXRpb25hbE92ZXJsb2FkT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInNpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQiKTsKIH0KQEAgLTg5NTksNyAr
ODk2MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3RCb2R5CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAiYXR0YWNoU2hhZG93Um9vdCIpOwogfQpAQCAtODk4MSw3ICs4OTgy
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aEV4dGVybmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFt
ZXRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9u
YXJ5UGFyYW1ldGVyIik7CiB9CkBAIC05MDAzLDcgKzkwMDQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CdWZmZXJTb3VyY2VQ
YXJhbWV0ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25C
dWZmZXJTb3VyY2VQYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyU291cmNlUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25CdWZmZXJTb3VyY2VQYXJhbWV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImJ1ZmZlclNvdXJjZVBhcmFtZXRlciIpOwogfQpAQCAtOTAyNSw3ICs5MDI2LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTGVnYWN5Q2FsbGVyTmFtZWRCb2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVyTmFtZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVyTmFtZWQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJsZWdhY3lDYWxsZXJOYW1lZCIpOwogfQpAQCAtOTA1MCw3ICs5MDUxLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVGVzdFJldHVyblZhbHVlT3B0aW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFyZ3Vt
ZW50MC52YWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFs
dWVPcHRpbWl6YXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2Jq
Pjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXph
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFJldHVyblZh
bHVlT3B0aW1pemF0aW9uIik7CiB9CkBAIC05MDc1LDcgKzkwNzYsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
VmFsdWVPcHRpbQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQwLnZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuVmFs
dWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
VmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJ0ZXN0UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uIik7
CiB9CkBAIC05MDkyLDcgKzkwOTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb25Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dGdW5jdGlvbiIpOwogfQpAQCAtOTEwOSw3ICs5MTEwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9u
YWxseUV4cG9zZWQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9Xb3JrZXJGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RP
Ymo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRU
b1dvcmtlckZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJj
b25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24iKTsKIH0KQEAgLTkxMjYsNyArOTEy
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3Jr
ZXJGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyRnVuY3Rpb24sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5j
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uIik7CiB9CkBAIC05MTQxLDcgKzkxNDIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZ0JvZHkoSlNDOjpKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExVU1ZTdHJpbmc+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCBpbXBsLnN0cmluZ2lmaWVyQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9wZXJhdGlvbkNv
bmRpdGlvbmFsLmNwcAppbmRleCA0YjRiYTczODNmYjkwNWYyZTM3OTkzYWI5OTMwYTFmMDUxMGU2
M2YyLi5kOTExNDg5ZGQ3OWU5NTJlMjVmNWUxM2FlYjViMjNhNTJmZmQzZmNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAKQEAgLTQ5LDE2ICs0OSwxNiBAQCB1
c2luZyBuYW1lc3BhY2UgSlNDOwogLy8gRnVuY3Rpb25zCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9u
QmFzZSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPcGVyYXRpb25D
b25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uTm9uQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Ob25Db25kaXRp
b25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uQmFzZSkgJiYgRU5B
QkxFKENvbmRpdGlvbk9wZXJhdGlvbikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxP
cGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbik7CiAjZW5kaWYKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RPcGVy
YXRpb25Db25kaXRpb25hbFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTc3LDcgKzE3Nyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsKiBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0aW9uQ29u
ZGl0CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODcsNyArMTg3LDcg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMyw3ICsyMTMs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0
aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bFByb3RvdHlwZUZ1bmN0aW9uTm9uQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWw+OjpjYWxsPGpzVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJh
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibm9uQ29uZGl0aW9u
YWxPcGVyYXRpb24iKTsKIH0KQEAgLTIzMyw3ICsyMzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlv
bkNvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90
b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9u
YWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWw+OjpjYWxsPGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiY29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA1YTJhODIwYzc1NmY2YTRkNTdiZjc4
Njg3ZDc0MzFhOGEzYmUyMzAxLi5iODY5YTM1Zjg3MzA0NGNkMWIzMDkzMjU4ZjUyYTdhMjNjOWJk
ZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBA
IC01MCw4ICs1MCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6
SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODEsNyArMTgxLDcgQEAgc3RhdGljIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
NShKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQog
Ci10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc0NvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yMDQsNiArMjA0LDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcjoKICAgICB9
CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzQ29uc3RydWN0b3JDb25zdHJ1Y3QsIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAt
MjczLDcgKzI3NCw3IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6ZGVzdHJv
eShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzOjp+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycygpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODMsNyArMjg0LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCBh
OTIwMjI0NGE1YTMxMjNhOWZhYmYyNjc3YzJjMDMyOGU2ZmU5MmUwLi45MDdiMDEwNjA3NjNjZTg4
ODc2ZDE3YmVmNTIxMTRjMjBhNTJlZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCkBAIC00OSw4ICs0OSw4
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzV2l0aFNlcXVlbmNlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMjQsNyArMTI0LDcgQEAgc3RhdGljIGlubGluZSBFbmNv
ZGVkSlNWYWx1ZSBjb25zdHJ1Y3RKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlMigKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQogCi10ZW1wbGF0
ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2
bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDMsNiArMTQzLDcgQEAgdGVtcGxhdGU8PiBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2UKICAgICB9CiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3JDb25zdHJ1Y3Qs
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6Y29u
c3RydWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0m
IHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjEyLDcg
KzIxMyw3IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6
ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjp+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIzLDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKaW5kZXggYWQ0ZGMz
NDYwOWQwYjAzZjJjZjdjMzhjMWY5MzhhY2MyYzQyMGExZS4uYjExM2IwYTI4ODkxZDNkNjI3NzY3
MzZiODg0NjU2ZWFlNTY4NjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAK
QEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFBsdWdpbkludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0UGx1Z2luSW50ZXJmYWNlUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0y
MTEsNyArMjExLDcgQEAgQ2FsbERhdGEgSlNUZXN0UGx1Z2luSW50ZXJmYWNlOjpnZXRDYWxsRGF0
YShKU0NlbGwqIGNlbGwpCiAgICAgcmV0dXJuIHBsdWdpbkVsZW1lbnRDdXN0b21HZXRDYWxsRGF0
YSh0aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UGx1Z2luSW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMSw3ICsyMjEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0UGx1Z2luSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50LmNwcAppbmRleCAwZmUzYTgwOTY1MGJjMzA4NDI3ZTI2NzdmYjAxYjJmNGZi
M2NhMzE4Li44ZTVjNmJhMjM5MTRmNzA3OWI3NmU0OWJmYWMyNDk5OTUzZTlmNWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcApAQCAtMTI3LDEwICsxMjcs
MTAgQEAgdGVtcGxhdGU8PiBUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpJbml0IGNvbnZlcnRE
aWN0aW9uYXJ5PFRlc3RQcm9taXNlUmVqZWN0aW8KIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFz
b24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJl
amVjdGlvbkV2ZW50UmVhc29uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMTY2LDcgKzE2Niw3IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJB
QkxFKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb3RvdHlwZSwgSlNUZXN0CiAKIHVzaW5n
IEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rv
cjxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+OwogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6
OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRU
UklCVVRFUyBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg5LDYgKzE4OSw3IEBA
IHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcjo6CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9CitKU0Nf
QU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdCwgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3I6OmNv
bnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRDb25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBK
U0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjU4LDcgKzI1OSw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCogSURMQXR0cmlidXRl
PEpTVGVzdFByb21pc2VSZWplY3RpCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTI2OCw3ICsyNjksNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNl
UmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsbwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjg5LDcgKzI5MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFByb21pc2U8SURM
QW55Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRo
cm93U2NvcGUsIGltcGwucHJvbWlzZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlzZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvbWlz
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJwcm9taXNlIik7CiB9CkBAIC0zMDIsNyArMzAzLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNv
bkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LnJlYXNvbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRSZWFzb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRSZWFzb24oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
Pjo6Z2V0PGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbkdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InJlYXNvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFJlYWRPbmx5TWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcAppbmRleCBkYzI3
M2YzYjQ3OTM4ZGM1YjcxYmIyNTQwNjQ0ZGViNzg4NjZlM2M5Li45MjA1NzZhNDEzNjFlNjRlN2Qw
NzQxMzAwMTNjMzMyMTZlYzZiYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNw
cApAQCAtNTAsMTggKzUwLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9u
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9u
bHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25I
YXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RSZWFk
T25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CiAKIGNsYXNzIEpTVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTgzLDcgKzE4Myw3IEBAIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdFJlYWRPbmx5TWFwTGlrZSogSURMT3BlcmF0aW9uPEpTVGVz
dFJlYWRPbmx5TWFwTGlrZT46OmNhCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0UmVh
ZE9ubHlNYXBMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFt
ZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTMsNyArMTkz
LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdFJlYWRPbmx5TWFwTGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZWFkT25seU1hcExpa2VD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMyw3ICsyMTMsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndhcmRTaXplVG9N
YXBMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25s
eU1hcExpa2U+OjpnZXQ8anNUZXN0UmVhZE9ubHlNYXBMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KQEAgLTIzMiw3ICsyMzIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25HZXRCb2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRHZXRUb01hcExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uR2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJnZXQiKTsKIH0KQEAgLTI1MSw3ICsyNTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNC
b2R5KAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
SGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RS
ZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0K
QEAgLTI2NSw3ICsyNjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRFbnRyaWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2Fz
dGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2Fs
bDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI3OSw3ICsy
NzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9NYXBM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFk
T25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0UmVhZE9ubHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImtleXMiKTsKIH0KQEAgLTI5Myw3ICsyOTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXNCbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExBbnk+KGZvcndhcmRWYWx1ZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9u
bHlNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9
CkBAIC0zMTIsNyArMzEyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEIKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3
YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNh
c3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2go
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RS
ZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFj
aCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFJlYWRPbmx5U2V0TGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAppbmRleCBkZTAyNWE2YjRh
M2QzNDYwZTFiYjExNmI2NmZhOGRmMmNmMGExNjhmLi5jMzJkNzc0ZWQ1MDYzZjlmZmZjNzU1MzAz
ZjhkYTUwOGQzZjBmZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVhZE9ubHlTZXRMaWtlLmNwcApAQCAt
NTAsMTcgKzUwLDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRMaWtlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VTaXplKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlTZXRM
aWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RSZWFkT25s
eVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RSZWFk
T25seVNldExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE4MSw3ICsxODEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RS
ZWFkT25seVNldExpa2UqIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpjYQog
ICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFJlYWRPbmx5U2V0TGlrZSo+KEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5U2V0
TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTkxLDcgKzE5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RSZWFkT25seVNldExpa2U6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RSZWFkT25seVNldExpa2VD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFJl
YWRPbmx5U2V0TGlrZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvU2V0TGlrZShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlT
ZXRMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Z2V0PGpzVGVzdFJl
YWRPbmx5U2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJzaXplIik7CiB9CkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keSgK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMQW55Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9u
bHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhh
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0y
NDQsNyArMjQ0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJl
YWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0IKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50
cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRo
aXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNU
ZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0yNTgsNyArMjU4LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvU2V0TGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJrZXlzIik7CiB9CkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm8K
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMQW55Pihmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
VmFsdWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0
TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAt
MjkxLDcgKzI5MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZv
ckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRU
aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9u
bHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdC5jcHAKaW5kZXggNDYy
MTRjODMwNjAwOTA1OWNjMjhkMzYxYzI2ZWViNGE5YmY1Mjk4Ny4uM2VkZDAxZmNhYjI0OWVmNWVm
ODliOTc1YmY1OGZmM2UxNTU3OGEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdC5jcHAKQEAgLTQ0LDggKzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlcG9ydEV4dHJhTWVt
b3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0UHJvdG90eXBlIGZpbmFsIDog
cHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNTAsNyArMTUwLDcg
QEAgdm9pZCBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3Q6OmRlc3Ryb3koSlNDOjpKU0NlbGwq
IGNlbGwpCiAgICAgdGhpc09iamVjdC0+SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Ojp+SlNU
ZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFJl
cG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNjAsNyArMTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UmVwb3J0
RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG8KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdDo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29z
dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggYzE1NTY3ZTI0NjMxMjkzNDNkMTkwYjVhYTQ1NDE1
NmViODQ2MDEzNC4uZjBhZGM4M2YwNDZjNzJjMWQ2NjI4ZTlmMTM0OTRmMTRjZDMxN2EyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZS5jcHAKQEAgLTU2LDIwICs1NiwyMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5j
dGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb24oSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25GdW5jdGlvblJldHVybmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uRnVuY3Rpb25SZXR1cm5pbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFs
dWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2Fj
aGVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9u
bHlWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFs
dWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVk
UmVhZG9ubHlWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTE5MCw3ICsxOTAsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIElETE9wZXJhdGlvbjxKU1Rlc3RTZXJpYQogICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjAwLDcgKzIwMCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjEsNyArMjIxLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVZhbHVlR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLnZhbHVlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidmFsdWUiKTsKIH0KQEAg
LTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVTZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInZhbHVlIik7CiB9CkBAIC0yNTIsNyArMjUyLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJl
YWRvbmx5VmFsdWVHZXR0ZXIoSlMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnJlYWRvbmx5VmFsdWUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6
Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJyZWFkb25seVZhbHVlIik7CiB9CkBAIC0yNzAsNyArMjcwLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNh
Y2hlZFZhbHVlR2V0dGVyKEpTR2wKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRW
YWx1ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZFZhbHVlIik7CiB9CkBAIC0yODgsNyArMjg4LDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNhY2hlZFZhbHVlU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6c2V0PHNldEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjYWNoZWRWYWx1ZSIpOwogfQpAQCAtMzAxLDcgKzMw
MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VQb3J0c0dldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETFNlcXVlbmNlPElETEludGVyZmFjZTxNZXNzYWdlUG9ydD4+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC5wb3J0cygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBv
cnRzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VQb3J0c0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBvcnRzIik7CiB9CkBAIC0z
MTksNyArMzE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWVHZXQKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDYWNoZWRSZWFkb25seVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVk
UmVhZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZUdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImNhY2hlZFJlYWRvbmx5VmFsdWUiKTsKIH0KQEAgLTM0MSw3ICszNDEsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJvdG90eXBlRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25GdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25Cb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmN0aW9uIik7CiB9CkBAIC0zNTYsNyAr
MzU2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUYKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VyaWFsaXplZFNjcmlwdFZhbHVl
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIGltcGwuZnVuY3Rpb25SZXR1cm5pbmcoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uUmV0dXJuaW5nKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvbkZ1bmN0aW9uUmV0dXJuaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmNhbGw8anNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvblJldHVybmlu
Z0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZnVuY3Rpb25SZXR1cm5p
bmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcAppbmRleCAzZGFmNTA3OWUyNTIwYWJmODA1MjI0ODE2
Nzk3NzQwMDhhZjFkYjk4Li5iZjQyOTkxYTU2NDcwZTg1ZDE5Y2ZhMjE5MWI3NWI3OWNkYTc2OGI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2V0TGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNldExpa2UuY3BwCkBAIC01MCwyMCArNTAsMjAgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExp
a2VQcm90b3R5cGVGdW5jdGlvbkFkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25EZWxldGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkhhcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZCk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
dExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTZXRMaWtlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlU2l6ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVNpemUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKIAogY2xhc3MgSlNUZXN0U2V0TGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6
OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTg3LDcgKzE4Nyw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTVGVzdFNldExpa2UqIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2Fz
dChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2V0TGlrZSo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0
TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmMK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFNldExpa2U6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNldExp
a2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNyw3ICsyMTcsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2V0TGlrZVNpemVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndhcmRTaXpl
VG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNldExpa2U+OjpnZXQ8anNUZXN0
U2V0TGlrZVNpemVHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXpl
Iik7CiB9CkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0cKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55
Pihmb3J3YXJkSGFzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAq
Y2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImhhcyIpOwogfQpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keShKU0M6
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETEFueT4oZm9yd2FyZEVudHJpZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5
c0JvZHkoSlNDOjpKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rl
c3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVl
c0JvZHkoSlNDOjoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8
anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTI5Nyw3ICsyOTcsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaEJvZHkoSlNDOgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBK
U1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNoVG9TZXRMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShjYWxsYmFj
aykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFj
aCIpOwogfQpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGRCb2R5KEpTQzo6SlNHCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFu
eT4oZm9yd2FyZEFkZFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
KmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uQWRkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJhZGQiKTsKIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5KEpTQzo6
SgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xl
YXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkNsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+
OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGVhciIpOwogfQpAQCAtMzUxLDcgKzM1MSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25EZWxldGVCb2R5KEpTQzo6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZERlbGV0ZVRvU2V0TGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5
KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zLmNwcAppbmRleCA3M2M0ZWZjMTYxOGYyMWE0YWM2M2QxZTczMmM3NmVmMjg5MGU5ODNm
Li4xNzNhOTY3MjM3M2Y1ZDEyNTkzMThjZTQzNjk2MWRhZjUzYmQ2ZjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCkBA
IC01MSwyMSArNTEsMjEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rp
b25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uRGVsZXRlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
IAogY2xhc3MgSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTg5LDcg
KzE4OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyo+KEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyAr
MTk5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uczo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkR2V0dGVyKEpT
R2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExv
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYWRkKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnM+OjpnZXQ8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZEdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImFkZCIpOwogfQpAQCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkU2V0dGVyKEpT
R2xvYmFsT2JqCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc0FkZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6
c2V0PHNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGRTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFkZCIpOwogfQpA
QCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZUdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1NldExpa2UobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmdldDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InNpemUiKTsKIH0KQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJkZWxldGUiKTsKIH0KQEAgLTI4Niw3ICsyODYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
aGFzIik7CiB9CkBAIC0zMDAsNyArMzAwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkRW50cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVu
dHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNh
bGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9u
RW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIp
OwogfQpAQCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4o
Zm9yd2FyZEtleXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0KQEAgLTMyOCw3ICszMjgs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRWYWx1ZXNUb1NldExp
a2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMzQ3LDcgKzM0Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNr
KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CkBAIC0zNjMsNyAr
MzYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhckJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IDE1MTNmZDhmYWQ2ZWIyM2JjNWFmZGJmZTkyNWY2MWNm
Yzg0M2U4NDcuLjZkYTFmMDhkYTZiZWEzZWRlZmU4Y2I0YjhhNjlmYmU5YjY3MGRkMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAtNDYsMTIgKzQ2LDEyIEBAIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjEsNyArMTYxLDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RT
dHJpbmdpZmllcj46OmNhc3QoSlNHbG8KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RT
dHJpbmdpZmllcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUu
dGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3MSw3ICsxNzEsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3Ry
aW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdp
ZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTk0LDcgKzE5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERP
TVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwudG9TdHJpbmcoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lm
aWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTdHJpbmdpZmllcj46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGVG
dW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0
b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbi5jcHAKaW5kZXggZDAxN2RmYjQ5NjcxZTdkN2YwYjBiNTkzMzBiZTg3NjA2
MzE1ODQ1YS4uZWFlMDQ5NzNlMTA5Mjc2ZDYwYjBmYzNkNDlmYjU1N2UwOTZlNTA1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3Bw
CkBAIC00NiwxMiArNDYsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25z
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9u
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2MSw3ICsxNjEsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbiogSURMT3BlcmF0aW9u
PEpTVGVzdFN0cmluZwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lm
aWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJh
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcxLDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7
CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTQs
NyArMTk0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnUKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgaW1wbC50b1N0cmluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvblByb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRv
U3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbi5jcHAKaW5kZXggM2Y2Mjg3NjM5ZjQyOGI4MzBjYmY0M2UzMTY2MDZmZTg5NmVmMTY3Ny4u
M2Q0MGNkYjIxNzZhZDJmNjUzNzQ1ZGI2MDAxM2E1ZDg5ZTVlYWM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFt
ZWRPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcApAQCAtNDYsMTMgKzQ2LDEz
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3Rv
dHlwZUZ1bmN0aW9uSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Q
cm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNz
IEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGUgZmluYWwgOiBwdWJsaWMg
SlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2Myw3ICsxNjMsNyBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uKiBJRExPcGVyYXRp
b248SlNUZXN0U3RyaW5naWZpZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmlu
Z2lmaWVyTmFtZWRPcGVyYXRpb24qPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
Y2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTczLDcgKzE3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0
cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9u
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTYsNyArMTk2LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRp
b25Qcm90b3R5cGVGdW5jdGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1w
bC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
blByb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uPjo6Y2FsbDxqc1Rlc3RTdHJpbmdp
Zmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25JZGVudGlmaWVyQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpZGVudGlmaWVyIik7CiB9CkBAIC0yMTEsNyAr
MjExLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgaW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0
aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpjYWxsPGpz
VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRl
ZEFzLmNwcAppbmRleCBiODZmMTJmOTE3NTM5YzJkNTM5ZDUwOWM5YWE4NDg0MmY5ZmEyNmEzLi43
ZGI1ZmY3ZGMzNDkzZGNmYjEyOTJjNmViOWEyMTRiNzQzYWMxNWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcApA
QCAtNDYsMTMgKzQ2LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25JZGVudGlmaWVyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllcik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTE2Myw3ICsxNjMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMqIElETE9wZXJhdGlvbjxKU1Rlc3RTdAogICAgIHJl
dHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
cyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTczLDcgKzE3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
OTYsNyArMTk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHkKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5hbHRlcm5hdGVJZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25JZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVG
dW5jdGlvbklkZW50aWZpZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXJCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImlkZW50aWZpZXIiKTsKIH0KQEAgLTIx
MSw3ICsyMTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBpbXBsLmFsdGVybmF0ZUlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcz46OmNhbGw8anNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKaW5k
ZXggNjY2ZTM1NjdlZDQ5ODYzNzZiYzdkZmFlNGQ0ZDJkYWNhOWIwMGI3Mi4uY2VhZjY0YWI1YmUy
NTg0YWFiNDFiYTBkYWJlNTdjY2UzMjc3NGJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKQEAgLTQ2LDEyICs0
NiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2MSw3ICsxNjEs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmcqIElETE9wZXJhdGlvbjxKU1Rlc3RTdAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcxLDcg
KzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2Jq
ZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9T
dHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTQsNyArMTk0LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ1Byb3RvdHkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1w
bC50b1N0cmluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nPjo6
Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0
cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGUuY3BwCmluZGV4IGM1MDM3ZWYzNTFiOTU2MWZiMGMwN2YwYjM1YWJmMGRlMTAxMDc3
MGMuLjllZjgxYjE2OTQ5NjJmNGRhMWVmOThmNzdkOWNmNzgyYTM5YjE4OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKQEAgLTQ3
LDEzICs0NywxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVu
dGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQ
cm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoK
QEAgLTE2OSw3ICsxNjksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlKiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naQogICAgIHJldHVybiBq
c0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTc5LDcg
KzE3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1
dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyR2V0dGVyKEpTR2xv
YmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmlkZW50aWZpZXIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlk
ZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlPjo6Z2V0PGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJ
ZGVudGlmaWVyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaWRlbnRpZmllciIpOwogfQpAQCAtMjE1LDcgKzIx
NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9i
YWxPYmplY3QsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5j
dGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmll
clJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlPjo6
Y2FsbDxqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25U
b1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmci
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRy
aWJ1dGUuY3BwCmluZGV4IDkwMDI5YmNlNjM4NjJlN2NmM2I4NzhmMzM5NjBiM2Q2MGYzZmY5YTQu
LjdjM2Q0Y2I2MDc5ZGVmMWIzMjhhZmU2ZWUxOTY0NmI4NjM2ZDMzNTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcApAQCAtNDcs
MTQgKzQ3LDE0IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBB
dHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFk
V3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpT
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzAsNyArMTcwLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUqIElETE9w
ZXJhdGlvbjxKU1Rlc3RTdHJpbmcKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4MCw3ICsxODAsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjAxLDcgKzIwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0ZXIoSlNHbG9iCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZT46OmdldDxqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJpZGVudGlmaWVyIik7CiB9CkBAIC0yMTksNyArMjE5LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRp
ZmllclNldHRlcihKU0dsb2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZT46OnNldDxzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUlkZW50aWZpZXJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImlkZW50aWZpZXIiKTsKIH0KQEAgLTIzNCw3ICsyMzQsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGVQcm90b3R5cGVGdQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmlk
ZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RT
dHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZT46OmNhbGw8anNUZXN0U3Ry
aW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKaW5kZXggZWViOTkwZjg1YTM2ZWY2OTEzYjc3NWIxNTMxYzViMTVhMjhlZTg3
YS4uOTBjZDcwNmMyZTMzOWMyY2Q5MTJkZjQwNzYyNDJjY2M2YTdjMGM5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwCkBAIC02NSwzOSArNjUsMzkgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8g
RnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VBcmcoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZO
dWxsYWJsZXNBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mVW5pb25zQXJnKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhD
bGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVu
Y1dpdGhDbGFtcEluVHlwZWRlZihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3Rv
dHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRo
U2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXRTaGFkb3cpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNl
cXVlbmNlQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxlc0Fy
Zyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9m
VW5pb25zQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvblVuaW9uQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXApOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcElu
VHlwZWRlZik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25Qb2ludEZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24pOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3Ry
aW5nU2VxdWVuY2VGdW5jdGlvbjIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1
ZGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZz
VW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RUeXBlZGVm
c1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5
cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5
cGVkZWZzRG9tVGltZVN0YW1wQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBl
ZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQXR0
cmlidXRlV2l0aENsYW1wKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRl
ZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5
cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5
cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE1NCw3ICsxNTQsNyBAQCBzdGF0aWMgY29uc3QgSGFz
aFRhYmxlVmFsdWUgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogICAg
IHsgIlRlc3RTdWJPYmoiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3Vi
T2JqKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVu
Yz4oMCkgfSB9LAogfTsKIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVj
dG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
ODAsNiArMTgwLDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpT
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0cKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Zh
bHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3JDb25zdHJ1Y3QsIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAK
IHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpwcm90b3R5cGVG
b3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCiB7CkBAIC0yODEsNyArMjgyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0VHlw
ZWRlZnMqIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhc3QoSlNHbG9iYWxPYmoKICAg
ICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI5MSw3ICsyOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSlNUZXN0VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzEyLDcgKzMxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2ln
bmVkTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWdu
ZWRMb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNV
bnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+Ojpn
ZXQ8anNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVu
c2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zMzAsNyArMzMxLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RUeXBlZGVm
c1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25n
TG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zNDMsNyArMzQ0LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUs
IGltcGwuc2VyaWFsaXplZFNjcmlwdFZhbHVlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0
VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzZXJpYWxpemVkU2NyaXB0VmFsdWUiKTsKIH0KQEAgLTM2MSw3ICszNjIs
NyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0
VmFsdWVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5
cGVkZWZzU2VyaWFsaXplZFNjcmlwdFZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXJpYWxpemVkU2NyaXB0VmFsdWUiKTsKIH0KQEAg
LTM3Miw3ICszNzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIEpTVGVz
dFN1Yk9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc0NvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2Jq
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5
cGVkZWZzPjo6Z2V0U3RhdGljPGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1Yk9iaiIpOwogfQpA
QCAtMzg1LDcgKzM4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0
dHJpYnV0ZVdpdGhDbGFtcEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExVbnNpZ25lZExv
bmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVX
aXRoQ2xhbXAoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1
dGVXaXRoQ2xhbXAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RU
eXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhD
bGFtcCIpOwogfQpAQCAtNDAzLDcgKzQwNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcFNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVk
ZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1dGVXaXRo
Q2xhbXAiKTsKIH0KQEAgLTQxNiw3ICs0MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZHZXR0ZXIoSlNHbG9iYWxPYgog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExDbGFtcEFkYXB0b3I8
SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0cmlidXRl
V2l0aENsYW1wSW5UeXBlZGVmKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJ
blR5cGVkZWYoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5
cGVkZWZHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0K
QEAgLTQzNCw3ICs0MzUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0VHlwZWRlZnNB
dHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWZTZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBl
ZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlw
ZWRlZlNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiYXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmIik7CiB9CkBAIC00NDcsNyArNDQ4LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMVW5pb248SURMQXJyYXlCdWZmZXJWaWV3LCBJRExBcnJheUJ1ZmZlcj4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLmJ1ZmZlclNvdXJjZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6
Z2V0PGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImJ1ZmZl
clNvdXJjZUF0dHIiKTsKIH0KQEAgLTQ2NSw3ICs0NjYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpYwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFR5cGVkZWZzQnVmZmVy
U291cmNlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5
cGVkZWZzPjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYnVmZmVyU291cmNl
QXR0ciIpOwogfQpAQCAtNDc4LDcgKzQ3OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFVuc2lnbmVkTG9uZ0xv
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG9tVGltZVN0YW1wQXR0
cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0VHlwZWRlZnNEb21U
aW1lU3RhbXBBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG9tVGltZVN0YW1wQXR0ciIpOwogfQpAQCAt
NDk2LDcgKzQ5Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRp
bWVTdGFtcEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBl
ZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0
VHlwZWRlZnNEb21UaW1lU3RhbXBBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJkb21UaW1lU3RhbXBBdHRyIik7CiB9CkBAIC01MTYsNyAr
NTE3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25GdW5jQm9keShKU0M6OkoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuYywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbkZ1bmNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImZ1bmMiKTsKIH0KQEAgLTU1MCw3ICs1NTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvd0JvZHkoSgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNo
YWRvdyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvblNldFNoYWRvdywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RU
eXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvd0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic2V0U2hhZG93Iik7CiB9CkBA
IC01NzAsNyArNTcxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWUKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMVW5zaWduZWRMb25n
TG9uZz4oaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoV1RGTW92ZShzZXF1ZW5jZUFyZykpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmdCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIp
OwogfQpAQCAtNTkyLDcgKzU5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1
ZW5jZUFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25OdWxsYWJsZVNlcXVlbmNlQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJudWxsYWJsZVNlcXVlbmNlQXJnIik7CiB9CkBAIC02MTQsNyArNjE1LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25TZXF1ZW5jZU9mTnVsbGEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGFibGVzQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxl
c0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNh
bGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInNlcXVlbmNlT2ZOdWxsYWJs
ZXNBcmciKTsKIH0KQEAgLTYzNiw3ICs2MzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuYwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxh
YmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxlc0Fy
ZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8
anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZk51bGxhYmxl
c0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTZXF1
ZW5jZU9mTnVsbGFibGVzQXJnIik7CiB9CkBAIC02NTgsNyArNjU5LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxs
YWJsZVNlcXVlbmMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmcoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZV
bmlvbnNBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+
OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZV
bmlvbnNBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxhYmxl
U2VxdWVuY2VPZlVuaW9uc0FyZyIpOwogfQpAQCAtNjgwLDcgKzY4MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5p
b25BcmdCb2R5KEpTCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uVW5pb25BcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
blVuaW9uQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmlvbkFy
ZyIpOwogfQpAQCAtNzA1LDcgKzcwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEJvCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhD
bGFtcChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbkZ1bmNXaXRoQ2xhbXAsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0
aENsYW1wQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmdW5jV2l0aENs
YW1wIik7CiB9CkBAIC03MjcsNyArNzI4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW4KICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0
aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZiwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWZCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0KQEAgLTc0Miw3
ICs3NDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rpb25CbwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8U1ZHUG9pbnQ+
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBs
LnBvaW50RnVuY3Rpb24oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rp
b24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxs
PGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25Qb2ludEZ1bmN0aW9uQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJwb2ludEZ1bmN0aW9uIik7CiB9CkBAIC03NjIs
NyArNzYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUYKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8SURMRE9NU3Ry
aW5nPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5zdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uKFdURk1vdmUodmFsdWVzKSkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90
b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2Fs
bDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbkJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic3RyaW5nU2VxdWVuY2VGdW5j
dGlvbiIpOwogfQpAQCAtNzgyLDcgKzc4Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TFNlcXVlbmNlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhp
cy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuc3RyaW5nU2VxdWVuY2VGdW5jdGlv
bjIoV1RGTW92ZSh2YWx1ZXMpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbjIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0
cmluZ1NlcXVlbmNlRnVuY3Rpb24yQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJzdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMiIpOwogfQpAQCAtODAyLDcgKzgwMyw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1
bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+KGltcGwuY2FsbFdpdGhTZXF1ZW5jZVRo
YXRSZXF1aXJlc0luY2x1ZGUoV1RGTW92ZShzZXF1ZW5jZUFyZykpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxs
V2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVuY2VUaGF0UmVx
dWlyZXNJbmNsdWRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVk
ZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5j
ZVRoYXRSZXF1aXJlc0luY2x1ZGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImNhbGxXaXRoU2VxdWVuY2VUaGF0UmVxdWlyZXNJbmNsdWRlIik7CiB9CkBAIC04MTksNyAr
ODIwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXAKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBl
ZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNl
cHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhF
eGNlcHRpb24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA5ZmE5ZDEx
MTZjOTA0MzU0ODUzOTRhYzM5YjY0M2IwZTdjYWFjNmYyLi5lYmQ0ZmNkNmNiYzAwODBkOWU4YjE5
OTdiMjQzNjFmODZkMDI4NWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC01
MCwxOCArNTAsMTggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNXb3Jr
ZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNX
b3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3Jr
ZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZUV4
cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckds
b2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0
VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5v
ZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2Nv
cGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
ID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNXb3JrZXJHbG9iYWxTY29wZT47
CiAKQEAgLTE3MSw3ICsxNzEsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1dvcmtlckdsb2JhbFNj
b3BlKiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmNhc3QoSgogICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTV29ya2VyR2xvYmFsU2NvcGUqPihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xODEsNyArMTgxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVj
dG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2Jq
ZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMCw3
ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUV4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yR2V0dAogICAgIHJldHVybiBKU0V4cG9zZWRU
b1dvcmtlckFuZFdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtl
ckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29w
ZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3ciKTsKIH0KQEAgLTIxMiw3ICsyMTIsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVj
dG9yU2V0dAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3ciKSwgc3RybGVuKCJFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3ciKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29y
a2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvclNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Iik7CiB9CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3QKICAgICByZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzV29ya2VyR2xvYmFs
U2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFs
U2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKIH0KQEAgLTIzNSw3ICsy
MzUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIiksIHN0cmxl
bigiVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRl
cmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OnNldDxz
ZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENv
bnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIik7CiB9CkBAIC0yNDYs
NyArMjQ2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0
Tm9kZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNUZXN0Tm9k
ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2Vy
R2xvYmFsU2NvcGU+OjpnZXQ8anNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0Tm9kZSIpOwogfQpA
QCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNj
b3BlVGVzdE5vZGVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROb2RlIiksIHN0cmxlbigiVGVzdE5vZGUiKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3Jr
ZXJHbG9iYWxTY29wZT46OnNldDxzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdE5vZGUiKTsKIH0KQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvckdldHRlcihKU0dsb2Jh
bE9iagogICAgIHJldHVybiBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxl
eGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xv
YmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckds
b2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiVGVzdE9iamVjdCIpOwogfQpAQCAtMjgxLDcgKzI4MSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9y
U2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3RPYmplY3QiKSwgc3RybGVuKCJUZXN0T2JqZWN0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wg
c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9i
YWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6
c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RPYmplY3Qi
KTsKIH0KQEAgLTI5Miw3ICsyOTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJH
bG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldAogICAgIHJl
dHVybiBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNXb3JrZXJHbG9iYWxTY29wZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQpAQCAtMzA0LDcgKzMwNCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudENvbnN0cnVjdG9yU2V0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKSwgc3RybGVuKCJUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9iYWxT
Y29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckds
b2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDIyZWI4YzliZmU5NTZmNGRiYzczMjAyYTFmNDI4
Y2I1ZWZiZjg2OWEuLmVmM2NiYjBjYjVmOTJjOTQ2NDVhOTliNjhjMjRlNTQ2YzhhZTY0NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmts
ZXRHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5n
IEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZTxKU1dvcmtsZXRHbG9iYWxTY29wZT47CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBK
U1ZhbHVlIEpTV29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1dv
cmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1dvcmtsZXRH
bG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEy
Niw3ICsxMjYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBzZXRKU1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtsZXRHbG9iYWxT
Y29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IGU2NTdjMDFjNDJjMTAxNmIxYjYyODg4ZjhkOGQ2
ODI0MmRiYjRhMTMuLmY2ZTJlNzdjZmQ1MjZhZWE5YjYzMDYxOTc3NTg4YTA3ZTc3NTBiMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTI0Niw3ICsy
NDYsOSBAQCBib29sIE9iamNGYWxsYmFja09iamVjdEltcDo6cHV0KEpTQ2VsbCosIEpTR2xvYmFs
T2JqZWN0KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iakNGYWxsYmFja09iamVj
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsT2JqQ0ZhbGxiYWNrT2Jq
ZWN0KTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxPYmpDRmFsbGJhY2tPYmplY3Qs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIEpTQzo6Vk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjEsNyArMjYzLDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iakNGYWxsYmFja09i
amVjdChKU0dsb2JhbE9iamVjdCogbGV4aWMKICAgICBPYmpjSW5zdGFuY2UqIG9iamNJbnN0YW5j
ZSA9IHJ1bnRpbWVPYmplY3QtPmdldEludGVybmFsT2JqQ0luc3RhbmNlKCk7CiAKICAgICBpZiAo
IW9iamNJbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2Jq
ZWN0Ojp0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkp
OworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93UnVudGltZU9iamVjdEludmFs
aWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkpOwogICAgIAogICAgIG9i
amNJbnN0YW5jZS0+YmVnaW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
Y3BwCmluZGV4IGVjMzU4OGZjNTY1OTU1M2Y1MjcyODNjNThhNzM1ODAyMTMyOWFjNWQuLmJjNjhk
NTA2MjgwZTE0ZjM1NDkxMmQ1OTJlYmU1YzU5MWNhNmU0YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTM5LDYgKzM5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAK
IGNvbnN0IENsYXNzSW5mbyBSdW50aW1lQXJyYXk6OnNfaW5mbyA9IHsgIlJ1bnRpbWVBcnJheSIs
ICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVu
dGltZUFycmF5KSB9OwogCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBhcnJh
eUxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworCiBSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogSlNBcnJheSh2bSwgc3RydWN0dXJlLCBudWxscHRyKQogICAgICwgbV9h
cnJheShudWxscHRyKQpAQCAtNjIsNyArNjQsNyBAQCB2b2lkIFJ1bnRpbWVBcnJheTo6ZGVzdHJv
eShKU0NlbGwqIGNlbGwpCiAgICAgc3RhdGljX2Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCktPlJ1
bnRpbWVBcnJheTo6flJ1bnRpbWVBcnJheSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1l
QXJyYXk6Omxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGFycmF5TGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyLDcgKzk0LDcgQEAgYm9vbCBSdW50aW1lQXJy
YXk6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEcKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIFJ1
bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihvYmplY3QpOwog
ICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAg
ICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtLCB0aGlzT2JqZWN0LT5sZW5ndGhHZXR0ZXIpOworICAgICAgICBzbG90
LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSwgYXJyYXlMZW5ndGhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5o
IGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaAppbmRleCAxZDdiNzBiN2Yz
OTYyZmNlODE2MTM3YmEyNmM0YzIyMjAyMGJlYTEzLi4zYzRjN2U4NjEwNDgxNzU0MTRjMGZhZWUw
MmMwYTlhOGM1ZjQ5YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgKQEAg
LTg4LDcgKzg4LDYgQEAgY2xhc3MgUnVudGltZUFycmF5IGZpbmFsIDogcHVibGljIEpTQXJyYXkg
ewogICAgIFJ1bnRpbWVBcnJheShWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBCaW5kaW5nczo6QXJyYXkqKTsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKICAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBsKEpTQzo6
Vk0mKTsKIAogICAgIEJpbmRpbmdzQXJyYXkqIG1fYXJyYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmNwcAppbmRleCAxODFhNDY4ZTBiNmZkNzIxZDMzMmQ4ZjA0Y2YxYTNk
ZDFkMTY2ZTRjLi4yZTk4NTQ3MGQwNGJjMzQzOGU3YmJmZGJlZjgwMTBlNWM0OTMxY2MyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKQEAgLTQzLDcgKzQzLDggQEAg
dXNpbmcgbmFtZXNwYWNlIEJpbmRpbmdzOwogCiBXRUJDT1JFX0VYUE9SVCBjb25zdCBDbGFzc0lu
Zm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGltZU1ldGhvZCIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoUnVu
dGltZU1ldGhvZCkgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lTWV0aG9kKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG1ldGhvZExlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiBSdW50aW1lTWV0aG9kOjpSdW50aW1l
TWV0aG9kKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE1ldGhvZCogbWV0aG9kKQogICAg
IC8vIENhbGxlcnMgd2lsbCBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3Qg
Y29ycmVzcG9uZGluZyB0byB0aGlzIG5hdGl2ZSBvYmplY3QgIm1ldGhvZCIuCkBAIC01OCw3ICs1
OSw3IEBAIHZvaWQgUnVudGltZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBjb25zdCBT
dHJpbmcmIGlkZW50KQogICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIG1ldGhvZExlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC02Niw3ICs2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdl
dHRlcihKU0dsb2JhbE9iamVjdCogZXhlYywgRW5jb2RlZEpTVmFsdWUKICAgICBSdW50aW1lTWV0
aG9kKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lTWV0aG9kKj4odm0sIEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRoaXNPYmplY3QpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPm1fbWV0aG9kLT5udW1QYXJhbWV0ZXJzKCkpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRoaXNPYmplY3QtPm1ldGhvZCgp
LT5udW1QYXJhbWV0ZXJzKCkpKTsKIH0KIAogYm9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCAmc2xvdCkKQEAgLTc0LDcgKzc1LDcgQEAg
Ym9vbCBSdW50aW1lTWV0aG9kOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
SlNHbG9iYWxPYmplY3QqIGV4ZWMsIFAKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIFJ1
bnRpbWVNZXRob2QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZU1ldGhvZCo+KG9iamVjdCk7
CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAg
ICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0sIHRoaXNPYmplY3QtPmxlbmd0aEdldHRlcik7CisgICAgICAgIHNs
b3Quc2V0Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250
RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6
OkRvbnRFbnVtLCBtZXRob2RMZW5ndGhHZXR0ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgCkBAIC04Niw3ICs4Nyw3IEBAIElzb1N1YnNwYWNlKiBSdW50aW1lTWV0aG9kOjpz
dWJzcGFjZUZvckltcGwoVk0mIHZtKQogICAgIHJldHVybiAmc3RhdGljX2Nhc3Q8SlNWTUNsaWVu
dERhdGEqPih2bS5jbGllbnREYXRhKS0+cnVudGltZU1ldGhvZFNwYWNlKCk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50aW1lTWV0aG9kKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MDMsNyArMTA0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1
bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICAgICAgUnVudGltZU9i
amVjdCogcnVudGltZU9iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihhc09iamVj
dCh0aGlzVmFsdWUpKTsKICAgICAgICAgaW5zdGFuY2UgPSBydW50aW1lT2JqZWN0LT5nZXRJbnRl
cm5hbEluc3RhbmNlKCk7CiAgICAgICAgIGlmICghaW5zdGFuY2UpIAotICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShSdW50aW1lT2JqZWN0Ojp0aHJvd0ludmFsaWRBY2Nlc3NFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlKSk7CisgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gQ2FsbGluZyBhIHJ1bnRpbWUgb2JqZWN0
IG9mIGEgcGx1Z2luIGVsZW1lbnQ/CiAgICAgICAgIGlmICh0aGlzVmFsdWUuaW5oZXJpdHM8SlNI
VE1MRWxlbWVudD4odm0pKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAppbmRl
eCA2ZGMzNjY4Njc1NmU4Nzg5NDU5MjQyZmVkMWIwMjI4ZmRjYzA3YjliLi5iNGI5ZTllZjczZmFl
NDYyNjkxN2VmOWNiZTkzYTE5MmVmNjdjZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuaApAQCAtNzQsOCArNzQsNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1l
TWV0aG9kIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCosIEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVu
Z3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
Ci0KICAgICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChWTSYpOwogCiAgICAg
QmluZGluZ3M6Ok1ldGhvZCogbV9tZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcAppbmRleCA4MDUxZTZlYzNjNmMxMjhkMmNlZjA1YTc0NjMwMWY4YzBkYjRjZmI4
Li44OGIyZGU4NzVkZjFmYWFjMGRhMDgxZWNiZDFhODU5NWM5ZTlkODgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTM4LDYgKzM4LDEzIEBAIG5hbWVzcGFj
ZSBCaW5kaW5ncyB7CiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBSdW50aW1lT2Jq
ZWN0OjpzX2luZm8gPSB7ICJSdW50aW1lT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwg
bnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShSdW50aW1lT2JqZWN0KSB9OwogCitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsUnVudGltZU9iamVjdCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsUnVudGltZUNvbnN0cnVjdG9yKTsKKworc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZpZWxkR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBtZXRob2RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKwogUnVudGltZU9iamVjdDo6UnVudGltZU9iamVjdChWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBSZWZQdHI8SW5zdGFuY2U+JiYgaW5zdGFuY2UpCiAgICAgOiBCYXNlKHZt
LCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2UpKQpAQCAtNjMs
MTYgKzcwLDE2IEBAIHZvaWQgUnVudGltZU9iamVjdDo6aW52YWxpZGF0ZSgpCiAgICAgbV9pbnN0
YW5jZSA9IG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxi
YWNrT2JqZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBS
dW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNP
YmotPm1faW5zdGFuY2U7CisgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmot
PmdldEludGVybmFsSW5zdGFuY2UoKTsKIAogICAgIGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgc2NvcGUpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1J1
bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUp
KTsKICAgICAKICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKIApAQCAtODQsMTYgKzkxLDE2IEBAIEVu
Y29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBm
aWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogeyAgICAKICAgICBW
TSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmogPSBqc0Nh
c3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAgICBSZWZQ
dHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0YW5jZTsKKyAgICBSZWZQdHI8
SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+Z2V0SW50ZXJuYWxJbnN0YW5jZSgpOwogCiAg
ICAgaWYgKCFpbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0lu
dmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkpOworICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkpOwogICAgIAogICAgIGluc3RhbmNlLT5iZWdp
bigpOwogCkBAIC0xMDYsMTYgKzExMywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0
OjpmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVu
dGltZU9iamVjdDo6bWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG1ldGhvZEdldHRlcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
UnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlz
T2JqLT5tX2luc3RhbmNlOworICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2Jq
LT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAKICAgICBpZiAoIWluc3RhbmNlKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsIHNjb3BlKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dS
dW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3Bl
KSk7CiAgICAgCiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAKQEAgLTEzMyw3ICsxNDAsNyBAQCBi
b29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBK
U0dsb2JhbE9iamVjdCogbGV4aWNhbAogCiAgICAgUnVudGltZU9iamVjdCogdGhpc09iamVjdCA9
IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBpZiAoIXRoaXNPYmplY3QtPm1f
aW5zdGFuY2UpIHsKLSAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgc2NvcGUpOworICAgICAgICB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNz
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogICAgIApAQCAtMTQ3LDE0ICsxNTQsMTQgQEAgYm9vbCBSdW50aW1lT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGlj
YWwKICAgICAgICAgLy8gU2VlIGlmIHRoZSBpbnN0YW5jZSBoYXMgYSBmaWVsZCB3aXRoIHRoZSBz
cGVjaWZpZWQgbmFtZS4KICAgICAgICAgRmllbGQgKmFGaWVsZCA9IGFDbGFzcy0+ZmllbGROYW1l
ZChwcm9wZXJ0eU5hbWUsIGluc3RhbmNlLmdldCgpKTsKICAgICAgICAgaWYgKGFGaWVsZCkgewot
ICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpLCB0aGlzT2JqZWN0LT5maWVs
ZEdldHRlcik7CisgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSksIGZpZWxk
R2V0dGVyKTsKICAgICAgICAgICAgIGluc3RhbmNlLT5lbmQoKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIGEg
bWV0aG9kIHdpdGggc3BlY2lmaWVkIG5hbWUgZXhpc3RzLCBpZiBzbyByZXR1cm4gYSBmdW5jdGlv
biBvYmplY3QgZm9yCiAgICAgICAgICAgICAvLyB0aGF0IG1ldGhvZC4KICAgICAgICAgICAgIGlm
IChhQ2xhc3MtPm1ldGhvZE5hbWVkKHByb3BlcnR5TmFtZSwgaW5zdGFuY2UuZ2V0KCkpKSB7Ci0g
ICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHksIHRoaXNPYmplY3Qt
Pm1ldGhvZEdldHRlcik7CisgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVj
dCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVh
ZE9ubHksIG1ldGhvZEdldHRlcik7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
aW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTYzLDcg
KzE3MCw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsCiAKICAgICAgICAgLy8gVHJ5IGEgZmFs
bGJhY2sgb2JqZWN0LgogICAgICAgICBpZiAoIWFDbGFzcy0+ZmFsbGJhY2tPYmplY3QobGV4aWNh
bEdsb2JhbE9iamVjdCwgaW5zdGFuY2UuZ2V0KCksIHByb3BlcnR5TmFtZSkuaXNVbmRlZmluZWQo
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0sIHRoaXNPYmplY3QtPmZhbGxiYWNrT2JqZWN0R2V0dGVyKTsK
KyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRl
OjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnRFbnVtLCBmYWxsYmFja09iamVjdEdldHRlcik7CiAgICAgICAgICAgICBpbnN0
YW5jZS0+ZW5kKCk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMTgx
LDcgKzE4OCw3IEBAIGJvb2wgUnVudGltZU9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlCiAKICAgICBSdW50aW1lT2JqZWN0
KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihjZWxsKTsKICAgICBpZiAoIXRo
aXNPYmplY3QtPm1faW5zdGFuY2UpIHsKLSAgICAgICAgdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOworICAgICAgICB0aHJvd1J1bnRpbWVPYmplY3RJ
bnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMjEzLDcgKzIyMCw3IEBAIEpTVmFsdWUgUnVu
dGltZU9iamVjdDo6ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFs
T2JqZWN0KiBsZXhpCiAKICAgICBjb25zdCBSdW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0ganND
YXN0PGNvbnN0IFJ1bnRpbWVPYmplY3QqPihvYmplY3QpOwogICAgIGlmICghdGhpc09iamVjdC0+
bV9pbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKKyAgICAgICAgcmV0dXJuIHRocm93UnVudGltZU9iamVj
dEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgCiAg
ICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmplY3QtPm1faW5zdGFuY2U7CiAK
QEAgLTIyMyw3ICsyMzAsNyBAQCBKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmRlZmF1bHRWYWx1ZShj
b25zdCBKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSdW50
aW1lT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lT2JqZWN0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFT
U0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCktPmluaGVyaXRz
PFJ1bnRpbWVPYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpOwogICAgIFJlZlB0cjxJbnN0YW5j
ZT4gaW5zdGFuY2Uoc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGNhbGxGcmFtZS0+anNDYWxs
ZWUoKSktPmdldEludGVybmFsSW5zdGFuY2UoKSk7CkBAIC0yNDYsNyArMjUzLDcgQEAgQ2FsbERh
dGEgUnVudGltZU9iamVjdDo6Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogICAgIHJldHVybiBj
YWxsRGF0YTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1
bnRpbWVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUnVudGltZUNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciA9IGNhbGxGcmFtZS0+anNDYWxsZWUoKTsK
ICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwgY29uc3RydWN0b3ItPmluaGVyaXRzPFJ1
bnRpbWVPYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpOwpAQCAtMjgwLDcgKzI4Nyw3IEBAIHZv
aWQgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBK
U0dsb2JhbE9iamVjdCogbGV4aWNhCiAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0g
anNDYXN0PFJ1bnRpbWVPYmplY3QqPihvYmplY3QpOwogICAgIGlmICghdGhpc09iamVjdC0+bV9p
bnN0YW5jZSkgewotICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBzY29wZSk7CisgICAgICAgIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTI5MSw3ICsyOTgsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5
TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYQogICAgIGluc3Rh
bmNlLT5lbmQoKTsKIH0KIAotRXhjZXB0aW9uKiBSdW50aW1lT2JqZWN0Ojp0aHJvd0ludmFsaWRB
Y2Nlc3NFcnJvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgVGhyb3dTY29w
ZSYgc2NvcGUpCitFeGNlcHRpb24qIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUp
CiB7CiAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFj
Y2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4iKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCmluZGV4IGU2MTc3ZTVhMTdmY2Q1OWFkNjMzOGVlMWU2YzM2
OTllMzIwY2ZmMTkuLjY1OTkxYzUxNTkzYWQ4OWFiNWY3MDU4YjJkOWFlM2FjNmVmYjdiNmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCkBAIC0zMiw2ICszMiw4IEBACiBu
YW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAKK0V4Y2VwdGlvbiogdGhyb3dS
dW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKEpTR2xvYmFsT2JqZWN0KiwgVGhyb3dTY29w
ZSYpOworCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVibGljIEpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU05vbkZpbmFsT2JqZWN0
OwpAQCAtNjgsOCArNzAsNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogCiAgICAgSW5zdGFuY2UqIGdldEludGVybmFsSW5z
dGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2luc3RhbmNlLmdldCgpOyB9CiAKLSAgICBzdGF0aWMg
RXhjZXB0aW9uKiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihKU0dsb2JhbE9iamVjdCosIFRocm93
U2NvcGUmKTsKLQogICAgIERFQ0xBUkVfSU5GTzsKIAogICAgIHN0YXRpYyBPYmplY3RQcm90b3R5
cGUqIGNyZWF0ZVByb3RvdHlwZShWTSYsIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCkBA
IC04NywxMCArODcsNiBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBSdW50aW1lT2JqZWN0IDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgZmllbGRHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0KICAg
ICBzdGF0aWMgSXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChWTSYpOwogCiAgICAgUmVmUHRy
PEluc3RhbmNlPiBtX2luc3RhbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAppbmRleCBmZDMwNGQzOGZiNzcz
Y2MyYTBlY2I2MmZkN2IyZWY2Y2I2ZDFlNDEzLi5lYjRhOTZlMTc5NGNiOGQ5MWVkMzlmMTVkM2Q0
NWJmMDA5Njk0OGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcApAQCAtNDYsNyArNDYsNyBAQCBTVEFUSUNf
QVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSlNOUE1ldGhvZCk7CiAKIGNvbnN0IENs
YXNzSW5mbyBKU05QTWV0aG9kOjpzX2luZm8gPSB7ICJOUE1ldGhvZCIsICZJbnRlcm5hbEZ1bmN0
aW9uOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNOUE1l
dGhvZCkgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE1ldGhv
ZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY2FsbE1ldGhvZCk7CiAKIEpTTlBNZXRob2Q6OkpTTlBNZXRob2QoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5QSWRlbnRpZmllciBu
cElkZW50aWZpZXIpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSwg
c3RydWN0dXJlLCBjYWxsTWV0aG9kLCBudWxscHRyKQpAQCAtNjYsNyArNjYsNyBAQCBJc29TdWJz
cGFjZSogSlNOUE1ldGhvZDo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSkKICAgICByZXR1cm4gJnBl
clZNLmdldCgpLmZvclZNKHZtKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbE1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsTWV0aG9kLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCmluZGV4IGUzZGU5MWE3ZDUxODMxM2I2YjY1MzNi
ZjAxYjBlNzM4MmI2MjBlNWIuLjY4MDQzMzE4OGQxZDEwM2NjOTk1MmEyNGM3MjllY2Q2MDc4NjJl
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCkBAIC0yMzksNyArMjM5LDEwIEBAIEpTVmFsdWUgSlNOUE9i
amVjdDo6Y2FsbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsTlBKU09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxOUEpTT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdFdpdGhDb25zdHJ1Y3Rvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsTlBK
U09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBKU09iamVjdCogb2JqZWN0ID0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpOwog
ICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBvYmplY3QtPmluaGVyaXRzPEpTTlBPYmpl
Y3Q+KGdsb2JhbE9iamVjdC0+dm0oKSkpOwpAQCAtMjU5LDcgKzI2Miw3IEBAIENhbGxEYXRhIEpT
TlBPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCogY2VsbCkKICAgICByZXR1cm4gY2FsbERhdGE7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgSlNPYmplY3QqIGNvbnN0cnVjdG9yID0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpOwogICAg
IEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvci0+aW5oZXJpdHM8SlNOUE9i
amVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSk7Cg==
</data>
<flag name="review"
          id="425448"
          type_id="1"
          status="+"
          setter="saam"
    />
    <flag name="commit-queue"
          id="425454"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409719</attachid>
            <date>2020-09-25 12:22:27 -0700</date>
            <delta_ts>2020-09-25 12:22:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216966-20200925122225.patch</filename>
            <type>text/plain</type>
            <size>1868364</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
ZWVhNDhjZWM1Y2Y0Y2JiYjI3ZjQ5NTc0NzFjNGMzODc2ZTQ5OWQ3Li5lNDAwOGI0MWU4MzE2NDNj
ZjVlNjMzMWNjYjIxM2YwYWJiODY3NzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDcwIEBACisyMDIwLTA5LTI1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0pTQ10gSW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04g
LyBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04gdG8gbWFrZSBob3N0IGZ1bmN0aW9uIGRlZmluaXRp
b24gZWFzeS10by1zY2FubmVkIGZvciBKSVQtY2FnaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY5NjYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTiBhbmQgY2hhbmdlcyBo
b3cgdG8gZGVmaW5lIGhvc3QgZnVuY3Rpb25zLgorICAgICAgICBJbiB0aGUgbmV3IHdheSwgd2Ug
ZGVjbGFyZSBhIGZ1bmN0aW9uIGxpa2UsCisKKyAgICAgICAgICAgIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25IZWxsb1dvcmxkKTsKKworICAgICAgICBBbmQgZGVmaW5lIHRoZSBm
dW5jdGlvbiBsaWtlLAorCisgICAgICAgICAgICBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25IZWxsb1dvcmxkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGZ1bmN0aW9u
IGJvZHkuCisgICAgICAgICAgICB9CisKKyAgICAgICAgVGhpcyBtYWtlcyBhZGRpbmcgc29tZSBt
ZXRhIGluZm9ybWF0aW9uIHRvIGVhY2ggZnVuY3Rpb24gZWFzeSwgd2hpY2ggaGVscHMgSklULWNh
Z2luZyB0byBjb2xsZWN0IGFsbG93ZWQgZnVuY3Rpb24gcG9pbnRlcnMuCisKKyAgICAgICAgKiBB
UEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpT
Q2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24p
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQ
SS9KU0NhbGxiYWNrQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RKU0NhbGxiYWNrQ29uc3RydWN0
b3IpOiBEZWxldGVkLgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxs
SlNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVj
dD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNO
b25GaW5hbE9iamVjdD46OmdldENvbnN0cnVjdEZ1bmN0aW9uKToKKyAgICAgICAgKEpTQzo6SlND
YWxsYmFja09iamVjdDxKU0dsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAg
IChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRDb25zdHJ1Y3RGdW5j
dGlvbik6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
ICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVj
dEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dENvbnN0cnVjdERhdGEpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmNvbnN0cnVjdEltcGwpOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46
OmdldENhbGxEYXRhKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsSW1wbCk6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y29uc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJlbnQ+Ojpj
YWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW06Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNh
bGxPYmpDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVj
dE9iakNDYWxsYmFja0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBBUEkvZ2xpYi9KU0FQ
SVdyYXBwZXJHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0
PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChK
U0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3Ry
dWN0RnVuY3Rpb24pOgorICAgICAgICAqIEFQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIu
Y3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46
OmdldENhbGxGdW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmplY3Q8SlNBUElX
cmFwcGVyT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAqIEFQSS9nbGliL0pTQ0NhbGxiYWNrRnVu
Y3Rpb24uY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjYWxsSlNDQ2FsbGJhY2tGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdEpTQ0NhbGxiYWNrRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0
ZVNhdmVkUmVzdWx0QWxpYXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUpOiBE
ZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSXNIVE1MQWxsQ29sbGVjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0
b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1Byb21pc2VSZWplY3Rl
ZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9y
Ojpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZSk6
IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25XZWFrTWFwU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6Ompz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcyk6IERlbGV0
ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVu
Y3Rpb25XZWFrU2V0U2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0RW50cmllcyk6IERlbGV0ZWQuCisg
ICAgICAgIChJbnNwZWN0b3I6OmpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25J
dGVyYXRvckVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMpOiBEZWxldGVkLgorICAg
ICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVl
cnlIb2xkZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlw
dEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5j
dGlvblN1YnR5cGUpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEluc3BlY3Rvcjo6anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldElu
dGVybmFsUHJvcGVydGllcyk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxG
cmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24pOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5j
dGlvblNjb3BlRGVzY3JpcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNK
YXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ2FsbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKElu
c3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQpOiBEZWxldGVk
LgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVMaW5l
KTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlQ29sdW1uKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3Bl
Y3Rvcjo6anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbik6IERlbGV0ZWQu
CisgICAgICAgIChJbnNwZWN0b3I6OmpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVRoaXNP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpqc0phdmFTY3JpcHRDYWxsRnJh
bWVBdHRyaWJ1dGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKEluc3BlY3Rvcjo6anNKYXZhU2Ny
aXB0Q2FsbEZyYW1lSXNUYWlsRGVsZXRlZCk6IERlbGV0ZWQuCisgICAgICAgICoganNjLmNwcDoK
KyAgICAgICAgKEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChmdW5jdGlvblBy
aW50U3RkT3V0KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25EZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
bkRlc2NyaWJlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNsZWVwU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkpTQ1N0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uR0NBbmRTd2Vl
cCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZ1bGxHQyk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkVkZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBTaXplKTog
RGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUmVzZXRNZW1vcnlQZWFrKTogRGVsZXRlZC4KKyAg
ICAgICAgKGZ1bmN0aW9uQWRkcmVzc09mKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uVmVy
c2lvbik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblJ1bik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJ1blN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Mb2FkU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVhZEZpbGUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DaGVja1N5bnRh
eCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MpOiBEZWxldGVkLgorICAgICAg
ICAoZnVuY3Rpb25HZXRSYW5kb21TZWVkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uU2V0
UmFuZG9tU2VlZCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzUm9wZSk6IERlbGV0ZWQu
CisgICAgICAgIChmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvblJlYWRsaW5lKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uUHJlY2lzZVRp
bWUpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uTm9ERkcpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Ob0ZUTCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcpOiBE
ZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChmdW5jdGlvbkNhbGxlcklzT01HQ29tcGlsZWQpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Eb2xsYXJDcmVhdGVSZWFsbSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckV2YWxTY3JpcHQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZWNlaXZlQnJvYWRjYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQpOiBEZWxldGVk
LgorICAgICAgICAoZnVuY3Rpb25Eb2xsYXJBZ2VudFNsZWVwKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9hZGNhc3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Eb2xsYXJBZ2VudEdldFJlcG9ydCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxh
ckFnZW50TGVhdmluZyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRvbGxhckFnZW50TW9u
b3RvbmljTm93KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uV2FpdEZvclJlcG9ydCk6IERl
bGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkhlYXBDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAg
IChmdW5jdGlvbkZsYXNoSGVhcEFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkRp
c2FibGVSaWNoU291cmNlSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1hbGxvY0lu
QUxvb3ApOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Ub3RhbENvbXBpbGVUaW1lKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSlNDT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChm
dW5jdGlvblJlb3B0aW1pemF0aW9uUmV0cnlDb3VudCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblRyYW5zZmVyQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25GYWls
TmV4dE5ld0NvZGVCbG9jayk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblF1aXQpOiBEZWxl
dGVkLgorICAgICAgICAoZnVuY3Rpb25GYWxzZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blVuZGVmaW5lZDEpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25VbmRlZmluZWQyKTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uSXNJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbklzUHVyZU5hTik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklkZW50aXR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRWZmZWN0ZnVsNDIpOiBEZWxldGVkLgorICAgICAgICAo
ZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DYWxs
TWFzcXVlcmFkZXIpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25IYXNDdXN0b21Qcm9wZXJ0
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVz
KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uU2V0VGltZW91dCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlv
blJlbGVhc2VXZWFrUmVmcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkZpbmFsaXphdGlv
blJlZ2lzdHJ5TGl2ZUNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9uRmluYWxpemF0
aW9uUmVnaXN0cnlEZWFkQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25JczMyQml0
UGxhdGZvcm0pOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3Qp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25DcmVhdGVIZWFwQmlnSW50KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIpOiBEZWxldGVkLgorICAgICAgICAoZnVu
Y3Rpb25Vc2VCaWdJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbklzQmlnSW50MzIp
OiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rpb25Jc0hlYXBCaWdJbnQpOiBEZWxldGVkLgorICAg
ICAgICAoZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVidWdnaW5nKTogRGVsZXRlZC4KKyAgICAgICAg
KGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5j
dGlvbkVuc3VyZUFycmF5U3RvcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblN0YXJ0
U2FtcGxpbmdQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvblNhbXBsaW5nUHJv
ZmlsZXJTdGFja1RyYWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbk1heEFyZ3VtZW50
cyk6IERlbGV0ZWQuCisgICAgICAgIChmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0KTogRGVsZXRlZC4K
KyAgICAgICAgKGZ1bmN0aW9uQXN5bmNUZXN0UGFzc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1
bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKGZ1bmN0aW9u
U2V0VW5oYW5kbGVkUmVqZWN0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoZnVuY3Rp
b25Bc0RvdWJsZU51bWJlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BZ2dyZWdhdGVF
cnJvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RXaXRoQXJyYXlDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxBcnJh
eUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlDb25zdHJ1Y3RvclBy
aXZhdGVGdW5jSXNBcnJheVNsb3cpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvQXJyYXlQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcnJh
eVByb3RvRnVuY1NwZWNpZXNDcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVBy
b3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9p
bik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNLZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJy
YXlQcm90b0Z1bmNQb3ApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1B1
c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1JldmVyc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjphcnJheVByb3RvRnVuY1NoaWZ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFy
cmF5UHJvdG9GdW5jU3BsaWNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1
bmNVblNoaWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNJbmRleE9m
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNw
eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9BcnJheVByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEFzeW5jRnVuY3Rp
b25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0cnVjdEFzeW5jRnVu
Y3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Bc3luY0dlbmVy
YXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNv
bnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0QXN5bmNHZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0F0b21p
Y3NPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjphdG9taWNzRnVuY0FkZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0
b21pY3NGdW5jQW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNDb21wYXJl
RXhjaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY0V4Y2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNJc0xvY2tGcmVlKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6YXRvbWljc0Z1bmNMb2FkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
YXRvbWljc0Z1bmNPcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jU3RvcmUp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjphdG9taWNzRnVuY1N1Yik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmF0b21pY3NGdW5jV2FpdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21p
Y3NGdW5jV2FrZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmF0b21pY3NGdW5jWG9yKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbEJpZ0lu
dENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50Q29uc3RydWN0b3JG
dW5jQXNVaW50Tik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0ludENvbnN0cnVjdG9yRnVu
Y0FzSW50Tik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjpiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJpZ0lu
dFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6YmlnSW50
UHJvdG9GdW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Cb29sZWFuQ29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjYWxsQm9vbGVhbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Y29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1RvU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym9vbGVhblByb3RvRnVuY1ZhbHVlT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNEZWJ1Zyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNFcnJvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnNvbGVQcm90b0Z1bmNXYXJuKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVu
Y0Rpcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNEaXJYTUwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGFibGUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVHJhY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29u
c29sZVByb3RvRnVuY0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0NvdW50UmVzZXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5j
UHJvZmlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNQcm9maWxl
RW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWVFbmQpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1wKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY0dyb3VwRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY1JlY29yZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNSZWNv
cmRFbmQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hv
dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25z
dHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbERh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUGFyc2UpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkYXRlTm93KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVVUQyk6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Rv
U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvVVRDU3RyaW5n
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2wpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNHZXRVVENGdWxsWWVhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90
b0Z1bmNHZXRNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRV
VENNb250aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXREYXRlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0RGF5KTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ0RheSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRh
dGVQcm90b0Z1bmNHZXRIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1
bmNHZXRVVENIb3Vycyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRN
aW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0
ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENTZWNvbmRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vjb25kcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VGltZSk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmRhdGVQcm90b0Z1bmNTZXRNaWxsaVNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6ZGF0ZVByb3RvRnVuY1NldFNlY29uZHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpk
YXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQ
cm90b0Z1bmNTZXRNaW51dGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ01pbnV0ZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0
SG91cnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jU2V0RGF0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNTZXRVVENEYXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1NldE1vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0ZVByb3RvRnVuY1NldFVUQ01vbnRoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVBy
b3RvRnVuY1NldEZ1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVu
Y1NldFVUQ0Z1bGxZZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0ZVByb3RvRnVuY1Nl
dFllYXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRlUHJvdG9GdW5jR2V0WWVhcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGVQcm90b0Z1bmNUb0pTT04pOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjYWxsRXJyb3JDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9FcnJvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChKU0M6OmVycm9yUHJvdG9GdW5jVG9TdHJpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbnN0
cnVjdEZpbmFsaXphdGlvblJlZ2lzdHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jRmluYWxpemF0aW9uUmVn
aXN0cnlSZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnByb3RvRnVuY0ZpbmFsaXph
dGlvblJlZ2lzdHJ5VW5yZWdpc3Rlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3RydWN0V2l0aEZ1bmN0aW9uQ29uc3RydWN0b3IpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxGdW5jdGlvblBy
b3RvdHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJp
bmcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmNhbGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcik6IERlbGV0
ZWQuCisgICAgICAgICogcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlND
OjppbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RMb2cpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsQ29sbGF0
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bENvbGxhdG9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxl
c09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OkludGxDb2xsYXRvckZ1bmNDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50
bENvbGxhdG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkludGxDb2xsYXRvclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1
Y3RJbnRsRGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSW50bERh
dGVUaW1lRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0
Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1h
dEZ1bmNGb3JtYXREYXRlVGltZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxEYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1BhcnRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jl
c29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsRGlzcGxheU5h
bWVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEludGxEaXNwbGF5TmFtZXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxl
dGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bERpc3BsYXlOYW1lc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9JbnRsTG9jYWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRs
TG9jYWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEludGxMb2NhbGUpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bExvY2FsZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxMb2NhbGVQ
cm90b3R5cGVGdW5jTWF4aW1pemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxl
UHJvdG90eXBlRnVuY01pbmltaXplKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bExvY2Fs
ZVByb3RvdHlwZUZ1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2Nh
bGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxM
b2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxlbmRhcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ29sbGF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1lcmljKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6SW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWJlcmluZ1N5c3RlbSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bE51bWJlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxOdW1iZXJG
b3JtYXRGdW5jRm9ybWF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bE51bWJlckZvcm1h
dFByb3RvdHlwZUdldHRlckZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxOdW1i
ZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OkludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjppbnRsT2JqZWN0RnVuY0dldENh
bm9uaWNhbExvY2FsZXMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsSW50bFBsdXJhbFJ1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0ludGxQbHVyYWxSdWxlc1Byb3RvdHlwZS5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Oklu
dGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEludGxSZWxhdGl2ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Oklu
dGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3Jt
YXRUb1BhcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1h
dFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50SXRlcmF0b3JQ
cm90b3R5cGVGdW5jTmV4dCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9JbnRsU2VnbWVu
dGVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RJbnRsU2VnbWVudGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y2FsbEludGxTZWdtZW50ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJ
bnRsU2VnbWVudGVyQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bFNlZ21lbnRlclByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50ZXJQ
cm90b3R5cGVGdW5jU2VnbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGxTZWdtZW50
ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkludGxTZWdtZW50c1Byb3RvdHlwZUZ1bmND
b250YWluaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50bFNlZ21lbnRzUHJvdG90eXBl
RnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXlCdWZmZXJD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OmNhbGxBcnJheUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEFycmF5QnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0
U2hhcmVkQXJyYXlCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjphcnJheUJ1ZmZlckZ1
bmNJc1ZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OmFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjphcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzaGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Ym91bmRUaGlz
Tm9BcmdzRnVuY3Rpb25DYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Ym91bmRGdW5jdGlv
bkNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNv
bnN0cnVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmJvdW5kRnVuY3Rpb25Db25zdHJ1Y3Qp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjppc0JvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0N1c3RvbUdl
dHRlclNldHRlckZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpkYXRh
Vmlld1Byb3RvR2V0dGVyQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQ
cm90b0dldHRlckJ5dGVMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvR2V0dGVyQnl0ZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJv
dG9GdW5jR2V0SW50OCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5j
R2V0SW50MTYpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldElu
dDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50OCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MzIpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0NjQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDgpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFW
aWV3UHJvdG9GdW5jU2V0VWludDgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpkYXRhVmlld1By
b3RvRnVuY1NldFVpbnQxNik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmRhdGFWaWV3UHJvdG9G
dW5jU2V0VWludDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDMyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGF0YVZpZXdQcm90b0Z1bmNTZXRG
bG9hdDY0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTRnVuY3Rpb24uY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjphcmd1
bWVudHNHZXR0ZXIpOgorICAgICAgICAoSlNDOjpjYWxsZXJHZXR0ZXIpOgorICAgICAgICAoSlND
OjpjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RnVuY3Rpb246OmNhbGxlckdldHRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0Z1
bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0
cnVjdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0Nv
bnN0cnVjdG9yPFZpZXdDbGFzcz46OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Ip
OgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKToKKyAg
ICAgICAgKEpTQzo6Y2FsbEdlbmVyaWNUeXBlZEFycmF5Vmlld0ltcGwpOgorICAgICAgICAoSlND
Ojpjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpjYWxsR2VuZXJpY1R5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChK
U0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvRnVuY1NldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRoaW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdElu
ZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b0dldHRlckZ1bmNCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpn
ZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9m
ZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY1JldmVyc2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY1NvcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmdlbmVyaWNU
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjptYWtlQm91bmRGdW5jdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omhhc093bkxlbmd0aFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y3JlYXRlUHJpdmF0ZVN5bWJvbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmFz
c2VydENhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplbmFibGVTYW1wbGluZ1Byb2ZpbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZGlzYWJsZVNhbXBsaW5nUHJvZmlsZXIpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjplbmFibGVTdXBlclNhbXBsZXIpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpkaXNhYmxlU3VwZXJTYW1wbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZW5x
dWV1ZUpvYik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6Omdsb2JhbEZ1bmNFdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFs
RnVuY1BhcnNlSW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNlRmxv
YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jRGVjb2RlVVJJKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY0RlY29kZVVSSUNvbXBvbmVudCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNFbmNvZGVVUkkpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY0VzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNV
bmVzY2FwZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJvckFyZ3Vt
ZW50c0NhbGxlZUFuZENhbGxlcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNN
YWtlVHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvR2V0
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1Byb3RvU2V0dGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5jQnVpbHRpbkxvZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNCdWlsdGluRGVzY3JpYmUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpnbG9iYWxGdW5jSW1wb3J0TW9kdWxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6Z2xvYmFsRnVuY093bktleXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpnbG9iYWxGdW5j
RGF0ZVRpbWVGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmpl
Y3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bW9k
dWxlTG9hZGVyUGFyc2VNb2R1bGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2Fk
ZXJSZXF1ZXN0ZWRNb2R1bGVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVy
TW9kdWxlRGVjbGFyYXRpb25JbnN0YW50aWF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bW9kdWxlTG9hZGVyUmVzb2x2ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1vZHVsZUxvYWRl
clJlc29sdmVTeW5jKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bW9kdWxlTG9hZGVyRmV0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptb2R1bGVMb2FkZXJFdmFsdWF0ZSk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6cnVuU3Rk
RnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OkpT
T05Qcm90b0Z1bmNQYXJzZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTT05Qcm90b0Z1bmNT
dHJpbmdpZnkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAg
ICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpvYmpl
Y3RQcml2YXRlRnVuY0luc3RhbmNlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFR5cGVkQXJyYXlWaWV3KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
SXNUeXBlZEFycmF5Vmlldyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc05ldXRlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY0xlbmd0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJy
YXlWaWV3UHJpdmF0ZUZ1bmNHZXRPcmlnaW5hbENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5UHJvdG9WaWV3RnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0tleXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjp0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcik6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRl
T2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNS
ZXZlcnNlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQcml2YXRlRnVu
Y1N1YmFycmF5Q3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6dHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNTbGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNU
eXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5
cy5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZVVpbnQ4VHlwZWRBcnJheSk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9NYXBDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxNYXApOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RNYXApOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQ
cml2YXRlRnVuY01hcEJ1Y2tldEhlYWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2
YXRlRnVuY01hcEJ1Y2tldE5leHQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcml2YXRl
RnVuY01hcEJ1Y2tldEtleSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hcFByaXZhdGVGdW5j
TWFwQnVja2V0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTWFwQ29uc3RydWN0
b3IuaDoKKyAgICAgICAgKiBydW50aW1lL01hcFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6Om1hcFByb3RvRnVuY0Ns
ZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jRGVsZXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jR2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWFwUHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5j
U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jVmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWFwUHJvdG9GdW5jS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hcFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXBQcm90
b0Z1bmNTaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpt
YXRoUHJvdG9GdW5jQWJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0FD
b3MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNpbik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNBVGFuKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6bWF0aFByb3RvRnVuY0FUYW4yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0NlaWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2x6MzIpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ29zKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0V4cCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQ
cm90b0Z1bmNGbG9vcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNIeXBv
dCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jTWF4KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
bWF0aFByb3RvRnVuY01pbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNQ
b3cpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jUmFuZG9tKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1JvdW5kKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6bWF0aFByb3RvRnVuY1NpZ24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJv
dG9GdW5jU2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY1NxcnQpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6bWF0aFByb3RvRnVuY0lNdWwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRo
UHJvdG9GdW5jQUNvc2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVNp
bmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQVRhbmgpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jQ2JydCk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6Om1hdGhQcm90b0Z1bmNDb3NoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3Rv
RnVuY0V4cG0xKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVuY0Zyb3VuZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxcCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNMb2cxMCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
Om1hdGhQcm90b0Z1bmNMb2cyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6bWF0aFByb3RvRnVu
Y1NpbmgpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjptYXRoUHJvdG9GdW5jVGFuaCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om1hdGhQcm90b0Z1bmNUcnVuYyk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKEpTQzo6Y2FsbEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNv
bnN0cnVjdEV2YWxFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxSYW5nZUVycm9y
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0UmFuZ2VFcnJvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxSZWZlcmVuY2VFcnJvcik6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmNvbnN0cnVjdFJlZmVyZW5jZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2Fs
bFN5bnRheEVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0U3ludGF4RXJy
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsVHlwZUVycm9yKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0VHlwZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFVSSUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0VVJJRXJyb3Ip
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaDoKKyAgICAgICAg
KiBydW50aW1lL051bGxHZXR0ZXJGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6Ok51bGxHZXR0
ZXJGdW5jdGlvbkludGVybmFsOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
SlNDOjpOdWxsR2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6Y2FsbFJldHVyblVuZGVmaW5lZCk6IERl
bGV0ZWQuCisgICAgICAgICogcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbDo6SlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKEpTQzo6TnVsbFNldHRlckZ1bmN0aW9uSW50ZXJuYWw6OmNhbGxSZXR1
cm5VbmRlZmluZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpOdWxsU2V0dGVyRnVuY3Rpb25J
bnRlcm5hbDo6Y2FsbFRocm93RXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvTnVt
YmVyQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3ROdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmNhbGxOdW1iZXJDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzSW50ZWdlcik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om51bWJlckNvbnN0cnVjdG9yRnVuY0lzU2FmZUludGVnZXIpOiBEZWxldGVkLgorICAg
ICAgICAqIHJ1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9FeHBv
bmVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvRml4ZWQp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om51bWJlclByb3RvRnVuY1RvU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6bnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoSlNDOjpjb25zdHJ1Y3RXaXRoT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpjYWxsT2JqZWN0Q29uc3RydWN0b3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6b2JqZWN0Q29uc3RydWN0b3JTZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JLZXlzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JBc3NpZ24pOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9i
amVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnRpZXMpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpvYmplY3RDb25zdHJ1Y3RvckNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVj
dENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpv
YmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0
Q29uc3RydWN0b3JJc0Zyb3plbik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdENvbnN0
cnVjdG9ySXNFeHRlbnNpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3Ry
dWN0b3JJcyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5o
OgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5j
VmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0hhc093blBy
b3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5
cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZUdldHRl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0RlZmluZVNldHRlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY0xvb2t1cFNldHRlcik6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6Om9iamVjdFByb3RvRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6b2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpvYmplY3RQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAgICAgKiBydW50aW1l
L1Byb3h5Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAoSlNDOjptYWtlUmV2b2NhYmxlUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RQcm94eU9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmNhbGxQcm94eSk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OnBlcmZvcm1Qcm94eUNhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwZXJmb3JtUHJveHlD
b25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlSZXZva2UuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpw
ZXJmb3JtUHJveHlSZXZva2UpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OnJlZmxlY3RPYmplY3RDb25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpy
ZWZsZWN0T2JqZWN0R2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVmbGVjdE9iamVjdEdl
dE93blByb3BlcnR5RGVzY3JpcHRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RP
YmplY3RHZXRQcm90b3R5cGVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmpl
Y3RJc0V4dGVuc2libGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0T3du
S2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5z
aW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RTZXQpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpyZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YpOiBEZWxldGVkLgor
ICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjplc1NwZWNSZWdFeHBDcmVh
dGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjplc1NwZWNJc1JlZ0V4cCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmNhbGxSZWdFeHBDb25zdHJ1Y3Rvcik6IERlbGV0ZWQuCisgICAgICAgICog
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jVGVzdEZhc3QpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpyZWdFeHBQcm90b0Z1bmNFeGVjKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhw
UHJvdG9GdW5jTWF0Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9G
dW5jQ29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvRnVuY1RvU3Ry
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0dldHRlck11bHRpbGluZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnJlZ0V4cFByb3RvR2V0dGVyRG90QWxsKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6cmVnRXhwUHJvdG9HZXR0ZXJTdGlja3kpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpyZWdFeHBQcm90b0dldHRlclVuaWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdF
eHBQcm90b0dldHRlckZsYWdzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9H
ZXR0ZXJTb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpyZWdFeHBQcm90b0Z1bmNTZWFy
Y2hGYXN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6cmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsU2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y29uc3RydWN0U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0
ZUZ1bmNTZXRCdWNrZXRIZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1
bmNTZXRCdWNrZXROZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJpdmF0ZUZ1bmNT
ZXRCdWNrZXRLZXkpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvU2V0Q29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBydW50aW1lL1NldFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0FkZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0NsZWFyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c2V0UHJvdG9GdW5jSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c2V0UHJvdG9GdW5jU2l6
ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY1ZhbHVlcyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnNldFByb3RvRnVuY0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAq
IHJ1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpzdHJpbmdGcm9tQ2hhckNvZGUpOgorICAg
ICAgICAoSlNDOjpzdHJpbmdGcm9tQ29kZVBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbFN0cmluZ0NvbnN0cnVjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N0cmlu
Z0NvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpz
dHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdSZWdFeHApOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNpbmdTdHJpbmdTZWFyY2gpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdTZWFyY2gpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJBdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0
cmluZ1Byb3RvRnVuY0luZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpidWlsdGluU3Ry
aW5nSW5kZXhPZkludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9G
dW5jTGFzdEluZGV4T2YpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNT
bGljZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6c3RyaW5nUHJvdG9GdW5jVG9VcHBlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
c3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZVVwcGVyQ2FzZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OnN0cmluZ1Byb3RvRnVuY1RyaW0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNUcmltU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1
bmNUcmltRW5kKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jU3RhcnRz
V2l0aCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMpOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlLmg6
CisgICAgICAgICogcnVudGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6
OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxTeW1ib2wpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpjb25zdHJ1Y3RTeW1ib2wpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpzeW1ib2xDb25zdHJ1Y3RvckZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OnN5
bWJvbENvbnN0cnVjdG9yS2V5Rm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1N5bWJv
bFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChKU0M6OnN5bWJvbFByb3RvR2V0dGVyRGVzY3JpcHRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpzeW1ib2xQcm90b0Z1bmNUb1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnN5bWJvbFByb3RvRnVuY1ZhbHVlT2YpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRp
bWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYWtNYXApOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpjb25zdHJ1Y3RXZWFrTWFwKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dl
YWtNYXBQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNXZWFrTWFwRGVsZXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha01hcEdldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OnByb3RvRnVuY1dlYWtNYXBIYXMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpwcm90b0Z1bmNX
ZWFrTWFwU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1dlYWtPYmplY3RSZWZDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChKU0M6OmNhbGxXZWFrUmVmKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0V2Vha1JlZik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9XZWFrT2JqZWN0UmVmUHJv
dG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1JlZkRlcmVmKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
dW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNhbGxXZWFrU2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Y29uc3RydWN0V2Vha1NldCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9XZWFrU2V0UHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKEpTQzo6cHJvdG9GdW5jV2Vha1NldERlbGV0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OnByb3RvRnVuY1dlYWtTZXRIYXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpwcm90b0Z1bmNXZWFrU2V0QWRkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0b29scy9KU0Rv
bGxhclZNLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKEpTQzo6SlNEb2xsYXJWTTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNyYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25CcmVha3BvaW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25ERkdUcnVlKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6ZnVuY3Rpb25GVExUcnVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVu
Y3Rpb25DcHVNZmVuY2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNwdVJkdHNj
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcHVDcHVpZCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ3B1UGF1c2UpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpm
dW5jdGlvbkNwdUNsZmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkxMaW50
VHJ1ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Ob0lubGluZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uR0MpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkVk
ZW5HQyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJvbm91
c2x5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wU3Vic3BhY2VIYXNoZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNhbGxGcmFtZSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uQ29kZUJsb2NrRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpmdW5jdGlvbkNvZGVCbG9ja0Zvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFNvdXJjZUZvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVt
cEJ5dGVjb2RlRm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EYXRhTG9nKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25QcmludCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uRHVtcENhbGxGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uRHVtcFN0YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wUmVn
aXN0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EdW1wQ2VsbCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSW5kZXhpbmdNb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25JbmxpbmVDYXBhY2l0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OmZ1bmN0aW9uVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldFBJRCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uSGF2ZUFCYWRUaW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OmZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
ZnVuY3Rpb25DcmVhdGVQcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3Jl
YXRlUnVudGltZUFycmF5KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVO
dWxsUm9wZVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlSW1w
dXJlR2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVDdXN0b21H
ZXR0ZXJPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VE5vZGVPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9N
SklUR2V0dGVyTm9FZmZlY3RzT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rp
b25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6ZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OmZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09iamVjdCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlV2FzbVN0cmVhbWluZ1BhcnNlcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tQWNjZXNz
b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbVZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1Np
ZGVFZmZlY3RQdXRXaXRob3V0Q29ycmVjdFNsb3RTdGF0dXMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpmdW5jdGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SW1wdXJlR2V0dGVyRGVsZWdhdGUpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbkdldFByaXZhdGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1
bmN0aW9uQ3JlYXRlUm9vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRl
RWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uR2V0RWxlbWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQ3JlYXRlU2ltcGxlT2JqZWN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HZXRIaWRkZW5WYWx1ZSk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OmZ1bmN0aW9uU2V0SGlkZGVuVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvblNoYWRvd0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6ZnVuY3Rpb25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJv
dyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRmluZFR5cGVGb3JFeHByZXNzaW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25SZXR1cm5UeXBlRm9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25GbGF0dGVuRGljdGlvbmFyeU9iamVjdCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRHVtcEJhc2ljQmxvY2tFeGVjdXRpb25SYW5nZXMp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkhhc0Jhc2ljQmxvY2tFeGVjdXRlZCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uQmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25FbmFibGVEZWJ1Z2dlck1vZGVXaGVu
SWRsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9k
ZVdoZW5JZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25EZWxldGVBbGxDb2Rl
V2hlbklkbGUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdsb2JhbE9iamVjdENv
dW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldEdldHRlclNldHRlcik6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJT
ZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRl
cmZsaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25DdXJyZW50Q1BVVGltZSk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG90YWxHQ1RpbWUpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvblBhcnNlQ291bnQpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0
aW9uTWFrZTE2Qml0U3RyaW5nSWZQb3NzaWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpT
RG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbkdldENvbmN1cnJlbnRseSk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OmZ1bmN0aW9uSGFzT3duTGVuZ3RoUHJvcGVydHkpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQpOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpmdW5jdGlvblNldFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpmdW5jdGlvbklDVVZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpmdW5jdGlvbklDVUhlYWRlclZlcnNpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5j
dGlvbkFzc2VydEVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpmdW5jdGlvbklzTWVt
b3J5TGltaXRlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZ1bmN0aW9uVXNlSklUKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6ZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OmZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25hcnkpOiBEZWxldGVk
LgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5jcHA6CisgICAgICAgIChKU0M6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5Q29tcGls
ZUZ1bmMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVu
Yyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJuYWwp
OiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3RyZWFtaW5n
SW50ZXJuYWwpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseS5oOgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6
OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAgICog
d2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rv
ci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAg
IChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpjYWxsSlNXZWJBc3NlbWJseUdsb2JhbCk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9q
cy9XZWJBc3NlbWJseUdsb2JhbFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJvdG9G
dW5jVmFsdWVPZik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5R2xvYmFsUHJv
dG9HZXR0ZXJGdW5jVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseUds
b2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dl
YkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJ
bnN0YW5jZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5SW5zdGFu
Y2UpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
dHlwZS5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChKU0M6OndlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpj
b25zdHJ1Y3RKU1dlYkFzc2VtYmx5TGlua0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
Y2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOiBEZWxldGVkLgorICAgICAgICAqIHdhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChKU0M6OmNvbnN0cnVjdEpTV2ViQXNzZW1ibHlN
ZW1vcnkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpjYWxsSlNXZWJBc3NlbWJseU1lbW9yeSk6
IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeVByb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3Jvdyk6IERlbGV0ZWQuCisgICAgICAgIChK
U0M6OndlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiB3YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlND
OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjp3ZWJBc3NlbWJseU1v
ZHVsZUN1c3RvbVNlY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlN
b2R1bGVJbXBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlNb2R1bGVF
eHBvcnRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29uc3RydWN0SlNXZWJBc3NlbWJseU1v
ZHVsZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAg
ICAgICAoSlNDOjpjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Y2FsbEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0SlNXZWJBc3NlbWJseVRhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbEpTV2Vi
QXNzZW1ibHlUYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogd2FzbS9qcy9XZWJBc3NlbWJseVRh
YmxlUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aCk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KTogRGVsZXRl
ZC4KKyAgICAgICAgKEpTQzo6d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OndlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQpOiBEZWxldGVkLgor
ICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwOgorICAgICAg
ICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpjYWxsV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24pOiBEZWxldGVkLgorCiAyMDIwLTA5LTI1ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBEYXRhVmlldyBpbnN0
YW5jZXMgc2hvdWxkIG5vdCBoYXZlIG93biAiYnl0ZUxlbmd0aCIgYW5kICJieXRlT2Zmc2V0IiBw
cm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCmluZGV4IGQ2OGI1ODUxYjQyZTM1NDZkYjZhYTZmZTc0ZTQyODU0MmVhOGMzOGMu
LmY2YjEzZDZhYzQzN2ZjNTFiM2U1MjRmZTJkNTcxMDAxMmVjNWRmYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMDktMjUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiAvIEpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTiB0byBtYWtlIGhvc3QgZnVuY3Rpb24gZGVmaW5pdGlvbiBlYXN5
LXRvLXNjYW5uZWQgZm9yIEpJVC1jYWdpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxNjk2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbmFtZSBKU0NfSE9TVF9DQUxMIHRvIEpTQ19IT1NUX0NBTExf
QVRUUklCVVRFLCBhbmQgaW50cm9kdWNlIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04gLyBKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04uCisgICAgICAgIFdlIGFsc28gaW50cm9kdWNlIEpTQ19BTk5P
VEFURV9IT1NUX0ZVTkNUSU9OIGlmIHRoZSBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZCBhcyBmcmVl
LWZ1bmN0aW9uWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9x
dWVzdGlvbnMvNDg2MTkxNC93aGF0LWlzLXRoZS1tZWFuaW5nLW9mLXRoZS10ZXJtLWZyZWUtZnVu
Y3Rpb24taW4tYworCisgICAgICAgICogd3RmL1BsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmg6
CisKIDIwMjAtMDktMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0ludGVncmF0aW9uXSBFbmFibGUgb24gQXBwbGUgV2luZG93cyBwb3J0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYmQ3NTZiNDQ3NmFjN2MzYjc4YmNiMjFhM2ZhMTk5MDkxMjVhNjM0OS4uNjQxNjQw
ODI5OTgxMDdiMjZhMmYwZTM4YWQzMzAzODJjNWJmZWYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzMDcgQEAKKzIwMjAtMDktMjUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
KworICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiAvIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTiB0byBtYWtlIGhvc3QgZnVuY3Rpb24gZGVmaW5pdGlvbiBl
YXN5LXRvLXNjYW5uZWQgZm9yIEpJVC1jYWdpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNjk2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4gV2UgYWxzbyBhbm5vdGF0
ZSBjdXN0b20gZ2V0dGVycyAvIHNldHRlcnMgd2l0aCBKSVRfT1BFUkFUSU9OIHNpbmNlIHRoZXkg
Y2FuIGJlIGludm9rZWQgZnJvbSBKSVQgY29kZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQnVpbHRpbkNvbnN0cnVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUJ1aWx0aW5D
b25zdHJ1Y3RvcjxKU0NsYXNzPjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTUNvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rv
ckJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKFdlYkNvcmU6OmNhbGxUaHJvd1R5cGVFcnJvcik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjptYWtlVGhpc1R5cGVFcnJvckZv
ckJ1aWx0aW5zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om1ha2VHZXR0ZXJUeXBlRXJy
b3JGb3JCdWlsdGlucyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjptYWtlRE9NRXhjZXB0
aW9uRm9yQnVpbHRpbnMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aXNSZWFkYWJsZUJ5
dGVTdHJlYW1BUElFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzV3JpdGFi
bGVTdHJlYW1BUElFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OndoZW5TaWdu
YWxBYm9ydGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJdGVyYXRvclRyYWl0cz46Om5leHQpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NTGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmg6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNET01X
aW5kb3dXZWJLaXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRh
YmFzZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVu
Y3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChXZWJDb3JlOjpjYWxsUGx1Z2luKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmNsb25lQXJyYXlCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6c3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6c3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdl
bmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAg
ICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJUcmFtcG9saW5lRGVmaW5pdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlclRyYW1wb2xpbmVEZWZpbml0aW9uKToKKyAgICAgICAg
KEdlbmVyYXRlT3BlcmF0aW9uVHJhbXBvbGluZURlZmluaXRpb24pOgorICAgICAgICAoR2VuZXJh
dGVEZWZhdWx0VG9KU09OT3BlcmF0aW9uRGVmaW5pdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUxl
Z2FjeUNhbGxlckRlZmluaXRpb25zKToKKyAgICAgICAgKEdlbmVyYXRlTGVnYWN5Q2FsbGVyRGVm
aW5pdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUl0ZXJhYmxlRGVmaW5pdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbnMpOgorICAgICAgICAoR2VuZXJhdGVDb25z
dHJ1Y3RvckRlZmluaXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRvd0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9NV2luZG93Q29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzRE9NV2luZG93VGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU0RP
TVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNE
T01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRE9N
V2luZG93VGVzdE5vZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRv
d1Rlc3RPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU0RPTVdpbmRv
d1Rlc3RPYmplY3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRvd1Rl
c3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXhwb3Nl
ZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1NvbWV0aGluZyk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblZh
bHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25TZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25DbGVhcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc01hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNS
ZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk6IERl
bGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRM
aWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzUmVhZE9ubHlTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1NldExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OnByb3Rv
dHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBl
RnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJl
YWN0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25z
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENF
UmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zQXR0cmli
dXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxl
Y3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aENFUmVhY3Rpb25zKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rp
b25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDRVJl
YWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMp
OgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRv
U3RyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2FsbFRyYWNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDYWxsVHJhY2VyQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RDYWxsVHJhY2VyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q2Fs
bFRyYWNlckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJU
ZXN0QXR0cmlidXRlSW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENhbGxU
cmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENh
bGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJm
YWNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJQcm90b3R5
cGVGdW5jdGlvblRlc3RPcGVyYXRpb25TcGVjaWZpZWQpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhB
cmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRl
c3RPcGVyYXRpb25XaXRoVmFyaWFudEFyZ3VtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVs
bGFibGVWYXJpYW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhPcHRpb25hbFZhcmlh
bnRBcmd1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rlc3RBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9t
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRp
b25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21Q
YXJ0aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rp
b25NaXhpbk9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25k
aXRpb25hbE9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxP
cGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBl
RnVuY3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbCk6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNv
bnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRp
bWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0
ZVByb21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVBy
b21pc2UpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0
ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0RE9NSklUQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RE9NSklUQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklU
QW55QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRCb29sZWFuQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRCeXRlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRPY3RldEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklU
U2hvcnRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVExvbmdBdHRyKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERP
TUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJ
VEZsb2F0QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklURG91YmxlQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RE9NSklUVXN2U3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRO
b2RlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0cik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERPTUpJVEZsb2F0TnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFibGVBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSXRlbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1l
bnRCeUlkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERPTUpJVFByb3RvdHlw
ZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlDb25kaXRpb25hbEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3Ry
aW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05G
aXJzdFN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9K
U09OU2Vjb25kTG9uZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZh
dWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RE
ZWZhdWx0VG9KU09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRo
VW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERl
ZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVj
dGx5VG9KU09OYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZh
dWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRp
b25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJh
eUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVu
dGhGcm96ZW5BcnJheUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0
VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50
ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVs
dFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvblRvSlNPTik6IERlbGV0ZWQuCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWROb3JtYWxBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2Vk
RmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXb3JrZXJB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZFBy
b3RvdHlwZUZ1bmN0aW9uVG9KU09OKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5k
aXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0
TG9uZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRQcm90b3R5
cGVGdW5jdGlvblRvSlNPTik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmlu
YWxMb25nQXR0cmlidXRlRm9vKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28pOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmlu
YWxMb25nQXR0cmlidXRlQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1
cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3REb21haW5TZWN1cml0eVByb3Rv
dHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QpOiBEZWxl
dGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVR3b1NldHRpbmdz
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdF
bmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRCeVNldHRpbmdP
cGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFbmFi
bGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEVu
YWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RW5h
YmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFi
bGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRD
b25zdHJ1Y3RvckF0dHIzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0RXZlbnRUYXJnZXRD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbSk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2Vw
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RFeGNlcHRpb25OYW1lKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZh
dGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0UHVibGlj
QW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0RE9N
V2luZG93Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0RE9NV2luZG93Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFs
T2JqZWN0RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFj
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXND
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9N
SklUQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdERPTUpJVENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5o
ZXJpdGFuY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9K
U09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEds
b2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2Jh
bE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVj
dFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVy
ZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJp
ZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVyYXRpb25D
b25kaXRpb25hbENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9i
amVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1h
cExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0
cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlrZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJh
dGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2Jh
bFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25SZWd1bGFyT3BlcmF0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25F
bmFibGVkQXRSdW50aW1lT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0
aW9uU3RhdGljKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5T
cGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3Bl
Y2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1
bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkdldFNlY3JldEJvb2xl
YW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25J
bmRleGVkU2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25s
eUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJp
YnV0ZUZyb21QYXJ0aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0
YXRpY0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIy
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyk6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9u
TWl4aW5Db21wbGV4T3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5DdXN0b21PcGVyYXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhp
bkNvbmRpdGlvbmFsT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJh
dGlvbkZyb21QYXJ0aWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRh
bE1ldGhvZDIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QzKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRo
b2Q0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uRW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RJbnRl
cmZhY2VQcm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SW50ZXJmYWNl
TGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SXRl
cmFibGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdEl0ZXJh
YmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2gpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZVJXQ3VzdG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZUZ1
bmN0aW9uVGVzdEN1c3RvbUZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlv
bjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdExlZ2FjeUZhY3Rv
cnlGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlT
dHJpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0
ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0
Tm9kZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJp
bmdBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90
eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25UaHJvd2luZ09wZXJh
dGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY09wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJ
dGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWFwTGlrZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25HZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25TZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldCk6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uQ2xlYXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uR2V0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE1hcExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRGVsZXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9u
TmFtZWRTZXR0ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIp
OiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3Rpb25OYW1lZERlbGV0ZXIpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVj
dG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5h
bWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
cldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWUpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25O
YW1lZFNldHRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
ckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJv
dG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dElucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rp
b25VbmZvcmdlYWJsZU9wZXJhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0
aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Fu
ZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zVW5mb3JnZWFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE5vZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rl
c3ROb2RlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZU5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0Tm9kZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNDYWxsZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVz
dWx0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5j
dGlvbkdldFNlY3JldEJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UmVhZE9ubHlUZXN0T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1
Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
Q29uc3RydWN0b3JUZXN0U3RhdGljUmVhZG9ubHlPYmopOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqRW51bUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqRW51bUF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQnl0ZUF0dHIpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0SlNUZXN0T2JqQnl0ZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqT2N0
ZXRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak9jdGV0QXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTaG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqU2hvcnRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNsYW1wZWRT
aG9ydEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0
cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9iakxvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakxvbmdB
dHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakxvbmdMb25nQXR0cik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNU
ZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
U3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialVzdnN0cmluZ0F0dHIpOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpUZXN0T2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpUZXN0T2Jq
QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKToKKyAgICAgICAgKFdl
YkNvcmU6OnNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
U3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQnl0ZVN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyk6CisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9ialN0cmluZ09ialJlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqU3Ry
aW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9i
alN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqRGljdGlvbmFyeUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
RGljdGlvbmFyeUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTnVsbGFibGVEaWN0
aW9uYXJ5QXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rp
b25hcnlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakFubm90YXRlZFR5cGVJblVu
aW9uQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5V
bmlvbkF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2Vx
dWVuY2VBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJ
blNlcXVlbmNlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpJbXBsZW1lbnRhdGlv
bkVudW1BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakltcGxlbWVudGF0aW9u
RW51bUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqTWVkaWFEZXZpY2VzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialhNTE9iakF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqWE1MT2JqQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UmVmbGVjdGVkSW50ZWdyYWxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJl
ZmxlY3RlZEludGVncmFsQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpSZWZsZWN0ZWRCb29sZWFuQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRCb29sZWFuQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpSZWZsZWN0
ZWRVUkxBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0
dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cik6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIpOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIp
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cik6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGVTdGF0aWMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uc3RydWN0b3JF
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialR5cGVkQXJyYXlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialR5cGVk
QXJyYXlBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakN1c3RvbUF0dHIpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ3VzdG9tQXR0cik6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpPbmZvbyk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpPbmZvbyk6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpPbndlYmtpdGZvbyk6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9i
aldpdGhFeGVjU3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNl
c0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIx
KToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEpOgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMik6CisgICAgICAgIChXZWJD
b3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDYWNoZWRBdHRyaWJ1dGUxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNhY2hl
ZEF0dHJpYnV0ZTIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRl
Myk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iak9iamVjdEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpP
YmplY3RBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29udGVudERvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak11dGFibGVQb2ludCk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqU3RyYXdiZXJyeSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpTdHJh
d2JlcnJ5KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9iaklkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9i
aklkKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakhhc2gpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0
SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
TnVsbGFibGVMb25nQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxh
YmxlQm9vbGVhbkF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJs
ZVN0cmluZ0F0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpOdWxs
YWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpO
dWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpT
VGVzdE9iak51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqTnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0
cmluZ1NldHRhYmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRF
bnVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpUZXN0UmVhZE9ubHlW
b2lkUHJvbWlzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpUZXN0UmVh
ZE9ubHlQcm9taXNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialB1dEZv
cndhcmRzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9ialB1dEZvcndh
cmRzQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialB1dEZvcndhcmRzTnVs
bGFibGVBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqUHV0Rm9yd2Fy
ZHNOdWxsYWJsZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpTdHJpbmdp
ZmllckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpTdHJpbmdpZmll
ckF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
aW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpjYWxsSlNUZXN0T2JqKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxl
ZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGlt
ZUZlYXR1cmVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV29ybGRTcGVjaWZpY01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdl
dFNlY3JldEJvb2xlYW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25V
bmRlZmluZWRNZXRob2RXaXRoQXJncyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1l
dGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0
aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT2JqTWV0aG9kV2l0aEFyZ3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1RyZWF0aW5n
TnVsbEFzRW1wdHlTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFi
bGVTdHJpbmdNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdT
cGVjaWFsTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZUVudW1Bcmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1
bHRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3Ry
aW5nQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5nQXJnKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0Fy
Z1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0aW5nTnVs
bEFzRW1wdHlTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3JkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4
Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlv
blJldHVybmluZ09iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1l
dGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0
ZW5lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhFeGVjU3RhdGVWb2lkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iaik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkRXhj
ZXB0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEb2N1bWVudEFyZ3VtZW50KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3Vt
ZW50QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxB
cmdBbmRPcHRpb25hbEFyZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJn
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0
VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNOdWxsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxsKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERv
dWJsZUlzTmFOKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExv
bmdMb25nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmdJc1plcm8pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxV
bnNpZ25lZExvbmdMb25nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVybyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNl
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQW55KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsTnVsbGFibGVXcmFwcGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNO
dWxsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVj
b3JkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9u
YWxBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0Fy
Z0FuZENhbGxiYWNrRnVuY3Rpb25BcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlv
bmFsQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9y
RnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0
aG9kV2l0aENhbGxiYWNrQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
ZGl0aW9uYWxNZXRob2QzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9u
YWxQYXJhbWV0ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9u
RGlzdGluZ3Vpc2hpbmdVbmlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhP
cHRpb25hbFVuaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uQ2xhc3NNZXRob2QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QxKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xhbXApOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcE9u
T3B0aW9uYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNl
UmFuZ2VPbk9wdGlvbmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uU3RyaW5nQXJyYXlG
dW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFy
YW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25H
ZXRTVkdEb2N1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQxKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Myk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQ0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50
RnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PcmFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFy
aWFkaWNOb2RlTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhvZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aEV4Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlT3ZlcmxvYWRlZEZ1bmN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0
U3RhdGljUHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Qcm9taXNlRnVuY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blBy
b21pc2VGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9u
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29uZGl0aW9uYWxPdmVybG9hZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblNpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dS
b290KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJjZVBh
cmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkxlZ2FjeUNhbGxlck5hbWVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ompz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJl
dHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9X
aW5kb3dGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbik6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0
aW9uYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxD
b25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPcGVyYXRpb25Db25kaXRp
b25hbENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3Rv
dHlwZUZ1bmN0aW9uTm9uQ29uZGl0aW9uYWxPcGVyYXRpb24pOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNvbmRp
dGlvbmFsT3BlcmF0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0
cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3I6OmNvbnN0cnVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldEpTVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yOjpj
b25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UHJvbWlzZVJlamVj
dGlvbkV2ZW50UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRSZWFzb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RSZWFkT25seU1hcExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlN
YXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0UmVhZE9ubHlN
YXBMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlNYXBM
aWtlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25H
ZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25IYXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVh
ZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0UmVhZE9ubHlTZXRMaWtlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVhZE9u
bHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RSZWFkT25seVNldExp
a2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZXBvcnRFeHRyYU1lbW9y
eUNvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0
Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0UmVwb3J0RXh0cmFNZW1v
cnlDb3N0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNo
ZWRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VQb3J0cyk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25SZXR1cm5pbmcpOiBEZWxldGVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFNldExpa2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRK
U1Rlc3RTZXRMaWtlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlr
ZVNpemUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbktleXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0
ZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQWRkKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNBZGQpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVdpdGhP
dmVycmlkZGVuT3BlcmF0aW9uc1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25IYXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U2V0TGlrZVdp
dGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25LZXlzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5j
dGlvbkNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZp
ZXJDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllckNv
bnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTik6
CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9T
dHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpq
c1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0
aW9uSWRlbnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdp
Zmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpz
ZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVu
Y3Rpb25JZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1By
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJS
ZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyUmVh
ZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZp
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBl
RnVuY3Rpb25Ub1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFR5cGVk
ZWZzQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQ29u
c3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdM
b25nQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9u
Z0xvbmdBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzU2VyaWFsaXplZFNj
cmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3JUZXN0U3ViT2JqKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzQXR0cmlidXRl
V2l0aENsYW1wKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRl
V2l0aENsYW1wKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wSW5UeXBlZGVmKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzQXR0
cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVk
ZWZzQnVmZmVyU291cmNlQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RUeXBlZGVm
c0J1ZmZlclNvdXJjZUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNEb21U
aW1lU3RhbXBBdHRyKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdFR5cGVkZWZzRG9tVGlt
ZVN0YW1wQXR0cik6CisgICAgICAgIChXZWJDb3JlOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04p
OgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvblNldFNoYWRvdyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVl
bmNlQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGFibGVzQXJnKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZO
dWxsYWJsZXNBcmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25Bcmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvbkZ1bmNXaXRoQ2xhbXApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5cGVkZWYpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVu
Y3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rp
b24yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEV4Y2VwdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2JhbFNjb3Bl
RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
c2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmpzV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNP
TkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdE5v
ZGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpqc1dvcmtlckdsb2JhbFNjb3BlVGVz
dE9iamVjdENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTV29ya2VyR2xvYmFs
U2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6anNXb3JrZXJH
bG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3Jr
bGV0R2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1dvcmtsZXRHbG9iYWxTY29w
ZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAg
ICAoSlNDOjpCaW5kaW5nczo6Y2FsbE9iakNGYWxsYmFja09iamVjdCk6IERlbGV0ZWQuCisgICAg
ICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjphcnJheUxlbmd0
aEdldHRlcik6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIpOiBEZWxldGVkLgor
ICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6bWV0aG9kTGVuZ3RoR2V0dGVyKToKKyAgICAg
ICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKEpT
Qzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhv
ZDo6bGVuZ3RoR2V0dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y2FsbFJ1bnRpbWVNZXRo
b2QpOiBEZWxldGVkLgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpm
YWxsYmFja09iamVjdEdldHRlcik6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpmaWVsZEdldHRl
cik6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjptZXRob2RHZXR0ZXIpOgorICAgICAgICAoSlND
OjpCaW5kaW5nczo6UnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
KEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OnB1dCk6CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpSdW50aW1lT2JqZWN0OjpkZWZhdWx0VmFsdWUpOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1
bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6dGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKToKKyAgICAgICAgKEpTQzo6
QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6Om1ldGhvZEdldHRl
cik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsUnVudGltZU9iamVjdCk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpjYWxsUnVudGltZUNvbnN0cnVjdG9y
KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OnRocm93
SW52YWxpZEFjY2Vzc0Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9v
YmplY3QuaDoKKwogMjAyMC0wOS0yNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW01hcmdpbkNvbGxhcHNpbmddIE9ubHkgaW5mbG93IGJveGVzIGNvbGxh
cHNlIHRoZWlyIHF1aXJrIG1hcmdpbnMgd2l0aCB0aGVpciBwYXJlbnRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1
MzM4N2QyNTVkY2MyYmRjMjdhNTVkNWE2ZmViNjk3NTQ2ZGZkMDEuLjU0YzFiM2NkNTY3NjM4NDc2
NTlmYTg3MzIxMDlkMDk4NDMzY2YzNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAt
MDktMjUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBJbnRyb2R1Y2UgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiAvIEpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTiB0byBtYWtlIGhvc3QgZnVuY3Rpb24gZGVmaW5pdGlvbiBlYXN5LXRvLXNjYW5uZWQg
Zm9yIEpJVC1jYWdpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNjk2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoV2ViS2l0
OjpjYWxsTWV0aG9kKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkpTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTik6CisgICAgICAgIChXZWJLaXQ6OmNhbGxOUEpTT2JqZWN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6Y29uc3RydWN0V2l0aENvbnN0cnVjdG9yKTogRGVsZXRlZC4KKwogMjAy
MC0wOS0yNSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W21hY09TXSBEZW55IGFjY2VzcyB0byBkaWFnbm9zdGljZCBpbiB0aGUgV2ViQ29udGVudCBwcm9j
ZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQVBJV3JhcHBlck9i
amVjdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1t
CmluZGV4IGUyOWZhZjlmOGNlZGNhNzZlZGFjZTMyYWZkMDE0Y2RlMGFmNTI0ZmQuLjM4ODFlZjZk
NGU3ZTFkZGFkMGFmOWVhY2FmMDcwMTE2MTIwNjU0NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNBUElXcmFwcGVyT2JqZWN0Lm1tCkBAIC02NywxMCArNjcsMjQgQEAgYm9v
bCBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjoKIH0KIAogbmFtZXNwYWNlIEpTQyB7Ci0gICAgCisKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFj
a09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQ
SVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdCk7CisKIHRlbXBsYXRlIDw+IGNvbnN0IENsYXNz
SW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnNfaW5mbyA9IHsgIkpT
QVBJV3JhcHBlck9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKK3RlbXBsYXRlIDw+IGNvbnN0IGJv
b2wgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpuZWVkc0Rlc3RydWN0aW9u
ID0gdHJ1ZTsKKwordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmpl
Y3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6Z2V0Q2FsbEZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4g
Y2FsbEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0OworfQogCi10ZW1wbGF0ZTw+IGNv
bnN0IGJvb2wgSlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpuZWVkc0Rlc3Ry
dWN0aW9uID0gdHJ1ZTsKK3RlbXBsYXRlIDw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNr
T2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmdldENvbnN0cnVjdEZ1bmN0aW9uKCkKK3sKKyAg
ICByZXR1cm4gY29uc3RydWN0SlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CiAK
IHRlbXBsYXRlIDw+CiBTdHJ1Y3R1cmUqIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2Jq
ZWN0Pjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90bykKQEAgLTExOCw2ICsxMzIsMTYgQEAgSXNvU3Vic3BhY2UqIEpTQ2Fs
bGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyT2JqZWN0Pjo6c3Vic3BhY2VGb3JJbXBsKFZNJiB2bSwg
U3Vic3AKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxs
YmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQSVdy
YXBwZXJPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxK
U0FQSVdyYXBwZXJPYmplY3Q+Ojpjb25zdHJ1Y3RJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBKU0NfT0JKQ19BUElfRU5B
QkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrQ29uc3Ry
dWN0b3IuY3BwCmluZGV4IDdmMjk5ZGE5NTViNjVjNzllNDg3YjdmYTdjYWU4ZDM1NzQ0ODVmZWIu
LjQ4Nzc3ODg5MzBlZTQyZmRhYjM1ODc1OWRiZjcxNDJmMDM2YTMzYmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0NvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tDb25zdHJ1Y3Rvci5jcHAKQEAgLTYx
LDcgKzYxLDkgQEAgdm9pZCBKU0NhbGxiYWNrQ29uc3RydWN0b3I6OmRlc3Ryb3koSlNDZWxsKiBj
ZWxsKQogICAgIHN0YXRpY19jYXN0PEpTQ2FsbGJhY2tDb25zdHJ1Y3Rvcio+KGNlbGwpLT5KU0Nh
bGxiYWNrQ29uc3RydWN0b3I6On5KU0NhbGxiYWNrQ29uc3RydWN0b3IoKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNDYWxsYmFja0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNDYWxsYmFja0NvbnN0
cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTQ2FsbGJhY2tD
b25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0SW1w
bDxKU0NhbGxiYWNrQ29uc3RydWN0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRl
eCA2MGI3Mjc2YjgxYjA1ZDkxM2Q5ZWM0ZjJkYzUzYWQxOGE0ZDBlN2MwLi4yMWRjYjJlYjk5MjZi
ZDM4YzIxNzVjZmQ1MTE5OWVkM2M1YjQwOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uY3BwCkBAIC0zNSw3ICszNSw5IEBAIFNUQVRJQ19B
U1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU0NhbGxiYWNrRnVuY3Rpb24pOwogCiBj
b25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1bmN0aW9uOjpzX2luZm8gPSB7ICJDYWxsYmFja0Z1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrRnVuY3Rpb24pIH07CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU0NhbGxiYWNrRnVuY3Rpb24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihjYWxsSlNDYWxsYmFja0Z1bmN0aW9uKTsKKworSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxKU0NhbGxiYWNrRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEFQSUNhbGxi
YWNrRnVuY3Rpb246OmNhbGxJbXBsPEpTQ2FsbGJhY2tGdW5jdGlvbj4oZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09i
amVjdC5jcHAKaW5kZXggYTgyZmFhMWZhZjg4ZTc2ODRjNjU1YzlhNjA2ODk1NmM3Y2NlNjhhOS4u
ZmI0NmE1NTliMzA5MzExMDJjNGJiODBiZjFhYWFiYjVjMWM0MjljZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuY3BwCkBAIC0zMSwxMyArMzEsNDEg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxKU05vbkZpbmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNOb25GaW5hbE9iamVjdENhbGxiYWNrT2JqZWN0KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0dsb2JhbE9iamVjdENhbGxi
YWNrT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpT
R2xvYmFsT2JqZWN0Q2FsbGJhY2tPYmplY3QpOworCiAvLyBEZWZpbmUgdGhlIHR3byB0eXBlcyBv
ZiBKU0NhbGxiYWNrT2JqZWN0cyB3ZSBzdXBwb3J0LgogdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJ
bmZvIEpTQ2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46OnNfaW5mbyA9IHsgIkNhbGxi
YWNrT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwogdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZv
IEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpzX2luZm8gPSB7ICJDYWxsYmFja0ds
b2JhbE9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRI
T0RfVEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKLQogdGVtcGxhdGU8PiBjb25zdCBib29sIEpT
Q2FsbGJhY2tPYmplY3Q8SlNOb25GaW5hbE9iamVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVl
OwogdGVtcGxhdGU8PiBjb25zdCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+
OjpuZWVkc0Rlc3RydWN0aW9uID0gdHJ1ZTsKIAordGVtcGxhdGU8PgorUmF3TmF0aXZlRnVuY3Rp
b24gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFsT2JqZWN0Pjo6Z2V0Q2FsbEZ1bmN0aW9uKCkK
K3sKKyAgICByZXR1cm4gY2FsbEpTTm9uRmluYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwor
dGVtcGxhdGU8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU05vbkZpbmFs
T2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAgIHJldHVybiBjb25zdHJ1Y3RK
U05vbkZpbmFsT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CisKK3RlbXBsYXRlPD4KK1Jhd05hdGl2
ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+OjpnZXRDYWxsRnVuY3Rp
b24oKQoreworICAgIHJldHVybiBjYWxsSlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30K
KwordGVtcGxhdGU8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVjdDxKU0dsb2Jh
bE9iamVjdD46OmdldENvbnN0cnVjdEZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gY29uc3RydWN0
SlNHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdDsKK30KKwogdGVtcGxhdGU8PgogSlNDYWxsYmFj
a09iamVjdDxKU0dsb2JhbE9iamVjdD4qIEpTQ2FsbGJhY2tPYmplY3Q8SlNHbG9iYWxPYmplY3Q+
OjpjcmVhdGUoVk0mIHZtLCBKU0NsYXNzUmVmIGNsYXNzUmVmLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKIHsKQEAgLTg0LDQgKzExMiwyNCBAQCBJc29TdWJzcGFjZSogSlNDYWxsYmFja09iamVjdDxK
U0dsb2JhbE9iamVjdD46OnN1YnNwYWNlRm9ySW1wbChWTSYgdm0sIFN1YnNwYWNlQQogICAgIHJl
dHVybiBudWxscHRyOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTTm9uRmlu
YWxPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxKU05v
bkZpbmFsT2JqZWN0Pjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNOb25GaW5hbE9iamVjdENhbGxiYWNr
T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0PEpTTm9uRmluYWxPYmplY3Q+Ojpj
b25zdHJ1Y3RJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxKU0dsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQoreworICAgIHJldHVy
biBKU0NhbGxiYWNrT2JqZWN0PEpTR2xvYmFsT2JqZWN0Pjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpOworfQorCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNH
bG9iYWxPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlNDYWxsYmFja09iamVjdDxK
U0dsb2JhbE9iamVjdD46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNDYWxsYmFja09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0Nh
bGxiYWNrT2JqZWN0LmgKaW5kZXggM2RmMmE0NGM3YWQ1ZGQyZGJhMjI2Yzc0NzJkZTlkMGQ5MzUw
OTgyOC4uNzc5NzNkYTQ0OTMzODE3N2NiMDYxMjAxZmZjNmUyOWU0NDQyY2NiZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKQEAgLTE4Miw2ICsxODIs
OSBAQCBjbGFzcyBKU0NhbGxiYWNrT2JqZWN0IGZpbmFsIDogcHVibGljIFBhcmVudCB7CiAKICAg
ICB1c2luZyBQYXJlbnQ6Om1ldGhvZFRhYmxlOwogCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGNhbGxJbXBsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CisgICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIGNvbnN0cnVjdEltcGwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKyAg
IAogcHJpdmF0ZToKICAgICBKU0NhbGxiYWNrT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKiwgSlNDbGFzc1JlZiwgdm9pZCogZGF0YSk7CiAgICAgSlNDYWxsYmFja09iamVjdChWTSYs
IEpTQ2xhc3NSZWYsIFN0cnVjdHVyZSopOwpAQCAtMjIzLDEwICsyMjYsMTIgQEAgY2xhc3MgSlND
YWxsYmFja09iamVjdCBmaW5hbCA6IHB1YmxpYyBQYXJlbnQgewogIAogICAgIHN0YXRpYyBKU0Nh
bGxiYWNrT2JqZWN0KiBhc0NhbGxiYWNrT2JqZWN0KEpTVmFsdWUpOwogICAgIHN0YXRpYyBKU0Nh
bGxiYWNrT2JqZWN0KiBhc0NhbGxiYWNrT2JqZWN0KEVuY29kZWRKU1ZhbHVlKTsKKworICAgIHVz
aW5nIFJhd05hdGl2ZUZ1bmN0aW9uID0gRW5jb2RlZEpTVmFsdWUoSlNDX0hPU1RfQ0FMTF9BVFRS
SUJVVEVTKikoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKworICAgIHN0YXRpYyBSYXdO
YXRpdmVGdW5jdGlvbiBnZXRDYWxsRnVuY3Rpb24oKTsKKyAgICBzdGF0aWMgUmF3TmF0aXZlRnVu
Y3Rpb24gZ2V0Q29uc3RydWN0RnVuY3Rpb24oKTsKICAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci0gICAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci0gICAKICAgICBKU1ZhbHVlIGdldFN0YXRpY1ZhbHVlKEpTR2xv
YmFsT2JqZWN0KiwgUHJvcGVydHlOYW1lKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3Rh
dGljRnVuY3Rpb25HZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXgg
NDVlNmFlZjk5YjkwNjUwZDUwZDZmNDRlY2MxYTY5NzE2YjYwNTE0Mi4uMmUzNGRmODIxMzFhYWM1
ZmE4YTMwMGI2MjZkYzA0M2JhM2U2YmRlMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTQ0NCw3ICs0NDQsNyBA
QCBDYWxsRGF0YSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiBjZWxsKQogICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iamVjdC0+Y2xh
c3NSZWYoKTsganNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAg
ICAgIGlmIChqc0NsYXNzLT5jYWxsQXNDb25zdHJ1Y3RvcikgewogICAgICAgICAgICAgY29uc3Ry
dWN0RGF0YS50eXBlID0gQ2FsbERhdGE6OlR5cGU6Ok5hdGl2ZTsKLSAgICAgICAgICAgIGNvbnN0
cnVjdERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY29uc3RydWN0OworICAgICAgICAgICAgY29uc3Ry
dWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBnZXRDb25zdHJ1Y3RGdW5jdGlvbigpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CkBAIC00NTIsNyArNDUyLDcgQEAgQ2FsbERh
dGEgSlNDYWxsYmFja09iamVjdDxQYXJlbnQ+OjpnZXRDb25zdHJ1Y3REYXRhKEpTQ2VsbCogY2Vs
bCkKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJh
Y2tPYmplY3Q8UGFyZW50Pjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09iamVjdDxQ
YXJlbnQ+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGdldFZNKGdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTIxLDcgKzUyMSw3
IEBAIENhbGxEYXRhIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Z2V0Q2FsbERhdGEoSlNDZWxs
KiBjZWxsKQogICAgIGZvciAoSlNDbGFzc1JlZiBqc0NsYXNzID0gdGhpc09iamVjdC0+Y2xhc3NS
ZWYoKTsganNDbGFzczsganNDbGFzcyA9IGpzQ2xhc3MtPnBhcmVudENsYXNzKSB7CiAgICAgICAg
IGlmIChqc0NsYXNzLT5jYWxsQXNGdW5jdGlvbikgewogICAgICAgICAgICAgY2FsbERhdGEudHlw
ZSA9IENhbGxEYXRhOjpUeXBlOjpOYXRpdmU7Ci0gICAgICAgICAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjYWxsOworICAgICAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0g
Z2V0Q2FsbEZ1bmN0aW9uKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0K
QEAgLTUyOSw3ICs1MjksNyBAQCBDYWxsRGF0YSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46Omdl
dENhbGxEYXRhKEpTQ2VsbCogY2VsbCkKIH0KIAogdGVtcGxhdGUgPGNsYXNzIFBhcmVudD4KLUVu
Y29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpT
Q2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2FsbEltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2V0Vk0oZ2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1t
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PYmpDQ2FsbGJhY2tGdW5jdGlvbi5tbQppbmRl
eCBiMzVhZjI5OTJkN2RjZThiNjgzNjUyNjc5Y2VlOTU0ZjkwODcyZTJlLi40YmNkOGY0NWQ5YzQ3
MjdhYjQ2MjIyMmI1ZDU1NmY3ZWM1NTE3YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL09iakNDYWxsYmFja0Z1bmN0aW9uLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvT2JqQ0NhbGxiYWNrRnVuY3Rpb24ubW0KQEAgLTUzNSwxMiArNTM1LDE1IEBAIHN0
YXRpYyBKU09iamVjdFJlZiBvYmpDQ2FsbGJhY2tGdW5jdGlvbkNhbGxBc0NvbnN0cnVjdG9yKEpT
Q29udGV4dFJlZiBjYWxsZXJDb250CiAKIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIE9iakNDYWxsYmFj
a0Z1bmN0aW9uOjpzX2luZm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShPYmpDQ2FsbGJhY2tGdW5jdGlv
bikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbE9iakNDYWxs
YmFja0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE9iakNDYWxsYmFj
a0Z1bmN0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdE9i
akNDYWxsYmFja0Z1bmN0aW9uKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxPYmpD
Q2FsbGJhY2tGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y2FsbElt
cGw8T2JqQ0NhbGxiYWNrRnVuY3Rpb24+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0T2JqQ0NhbGxiYWNr
RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0T2JqQ0NhbGxiYWNrRnVuY3Rp
b24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIEFQSUNhbGxiYWNrRnVuY3Rpb246OmNvbnN0cnVjdEltcGw8T2JqQ0Nh
bGxiYWNrRnVuY3Rpb24+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9i
amVjdC5jcHAKaW5kZXggZDhhZmU4MDhmMTEwMjYzNGJjYzA5MDVkZjc0M2UyY2U3OGZmMWQ3Mi4u
ODI5MDBmNDMxZTRjMzAyMWY2NmJlMThmOWQ2YzM4MjNhZjMxNDRlYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlckdsb2JhbE9i
amVjdC5jcHAKQEAgLTU0LDEwICs1NCwyNCBAQCB2b2lkIEpTQVBJV3JhcHBlckdsb2JhbE9iamVj
dEhhbmRsZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbgogCiBu
YW1lc3BhY2UgSlNDIHsKIAotdGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZvIEpTQ2FsbGJhY2tP
YmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiSlNBUElXcmFwcGVy
R2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdENhbGxiYWNrT2JqZWN0KTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTQVBJV3JhcHBlckdsb2Jh
bE9iamVjdENhbGxiYWNrT2JqZWN0KTsKIAordGVtcGxhdGUgPD4gY29uc3QgQ2xhc3NJbmZvIEpT
Q2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6c19pbmZvID0geyAiSlNB
UElXcmFwcGVyR2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU0NhbGxiYWNrT2JqZWN0KSB9OwogdGVtcGxhdGU8PiBjb25z
dCBib29sIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6bmVlZHNE
ZXN0cnVjdGlvbiA9IHRydWU7CiAKK3RlbXBsYXRlIDw+CitSYXdOYXRpdmVGdW5jdGlvbiBKU0Nh
bGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlckdsb2JhbE9iamVjdD46OmdldENhbGxGdW5jdGlvbigp
Cit7CisgICAgcmV0dXJuIGNhbGxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVj
dDsKK30KKwordGVtcGxhdGUgPD4KK1Jhd05hdGl2ZUZ1bmN0aW9uIEpTQ2FsbGJhY2tPYmplY3Q8
SlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0Pjo6Z2V0Q29uc3RydWN0RnVuY3Rpb24oKQoreworICAg
IHJldHVybiBjb25zdHJ1Y3RKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdDsK
K30KKwogdGVtcGxhdGUgPD4KIElzb1N1YnNwYWNlKiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3Jh
cHBlckdsb2JhbE9iamVjdD46OnN1YnNwYWNlRm9ySW1wbChWTSYgdm0sIFN1YnNwYWNlQWNjZXNz
IG1vZGUpCiB7CkBAIC04NSw2ICs5OSwxNiBAQCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBl
ckdsb2JhbE9iamVjdD4qIEpTQ2FsbGJhY2tPYmplY3Q8SlNBUElXcmFwcGVyR2xvYmFsTwogICAg
IHJldHVybiBjYWxsYmFja09iamVjdDsKIH0KIAorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNh
bGxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlND
YWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+OjpjYWxsSW1wbChnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7Cit9CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1
Y3RKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3RDYWxsYmFja09iamVjdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gSlND
YWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJHbG9iYWxPYmplY3Q+Ojpjb25zdHJ1Y3RJbXBsKGds
b2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKwogSlNBUElXcmFwcGVyR2xvYmFsT2JqZWN0OjpK
U0FQSVdyYXBwZXJHbG9iYWxPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEJhc2Uodm0sIHN0cnVjdHVyZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvZ2xpYi9KU0FQSVdyYXBwZXJPYmplY3RHTGliLmNwcAppbmRleCAyMzM0YTFi
NTdmMjllYzIwZjQ5YjkxOWQyMTQ5ZDFiN2U4MDAxZjAwLi41MmU2MDYwODFiZjdhODk1NmExNzkz
ZjRkNmU2YzU4YzNmYmE5ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L2dsaWIvSlNBUElXcmFwcGVyT2JqZWN0R0xpYi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQVBJV3JhcHBlck9iamVjdEdMaWIuY3BwCkBAIC02NywxMCArNjcsMjQg
QEAgYm9vbCBKU0FQSVdyYXBwZXJPYmplY3RIYW5kbGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjoKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXRlbXBsYXRl
IDw+IGNvbnN0IENsYXNzSW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46
OnNfaW5mbyA9IHsgIkpTQVBJV3JhcHBlck9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0FQSVdyYXBwZXJPYmplY3RDYWxsYmFj
a09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0FQ
SVdyYXBwZXJPYmplY3RDYWxsYmFja09iamVjdCk7CiAKK3RlbXBsYXRlIDw+IGNvbnN0IENsYXNz
SW5mbyBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OnNfaW5mbyA9IHsgIkpT
QVBJV3JhcHBlck9iamVjdCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNDYWxsYmFja09iamVjdCkgfTsKIHRlbXBsYXRlPD4gY29uc3QgYm9v
bCBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Om5lZWRzRGVzdHJ1Y3Rpb24g
PSB0cnVlOwogCit0ZW1wbGF0ZSA8PgorUmF3TmF0aXZlRnVuY3Rpb24gSlNDYWxsYmFja09iamVj
dDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpnZXRDYWxsRnVuY3Rpb24oKQoreworICAgIHJldHVybiBj
YWxsSlNBUElXcmFwcGVyT2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CisKK3RlbXBsYXRlIDw+CitS
YXdOYXRpdmVGdW5jdGlvbiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46Omdl
dENvbnN0cnVjdEZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gY29uc3RydWN0SlNBUElXcmFwcGVy
T2JqZWN0Q2FsbGJhY2tPYmplY3Q7Cit9CisKIHRlbXBsYXRlIDw+CiBJc29TdWJzcGFjZSogSlND
YWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpzdWJzcGFjZUZvckltcGwoVk0mIHZt
LCBTdWJzcGFjZUFjY2VzcyBtb2RlKQogewpAQCAtOTAsNiArMTA0LDE2IEBAIFN0cnVjdHVyZSog
SlNDYWxsYmFja09iamVjdDxKU0FQSVdyYXBwZXJPYmplY3Q+OjpjcmVhdGVTdHJ1Y3R1cmUoVk0m
IHZtLCBKU0dsb2JhCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8p
OwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTQVBJV3JhcHBlck9iamVjdENh
bGxiYWNrT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQoreworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9i
amVjdD46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKK30KKworSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTQVBJV3JhcHBlck9iamVjdENhbGxiYWNrT2JqZWN0
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIHJldHVybiBKU0NhbGxiYWNrT2JqZWN0PEpTQVBJV3JhcHBlck9iamVjdD46OmNvbnN0
cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOworfQorCiBKU0FQSVdyYXBwZXJPYmpl
Y3Q6OkpTQVBJV3JhcHBlck9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQ0NhbGxiYWNrRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9nbGliL0pTQ0NhbGxiYWNrRnVuY3Rpb24uY3BwCmluZGV4IGM2MDRkZWViNDM5NWRl
MWQ1ODFlYTZjMDk0NmI1YjQ5ZDg3MDFkMDQuLjIwZjE3MjJmNDZlMDY2NGI0NWFjNWJkY2JlOTRi
OTQzODc3ODcyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9K
U0NDYWxsYmFja0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL2ds
aWIvSlNDQ2FsbGJhY2tGdW5jdGlvbi5jcHAKQEAgLTUyLDEyICs1MiwxNSBAQCBzdGF0aWMgSlNP
YmplY3RSZWYgY2FsbEFzQ29uc3RydWN0b3IoSlNDb250ZXh0UmVmIGNhbGxlckNvbnRleHQsIEpT
T2JqZWN0UmVmIGNvbgogCiBjb25zdCBDbGFzc0luZm8gSlNDQ2FsbGJhY2tGdW5jdGlvbjo6c19p
bmZvID0geyAiQ2FsbGJhY2tGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNDQ2FsbGJhY2tGdW5jdGlvbikg
fTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTQ0NhbGxiYWNr
RnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSlNDQ2FsbGJhY2tGdW5j
dGlvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RKU0NDYWxs
YmFja0Z1bmN0aW9uKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU0NDYWxsYmFj
a0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBBUElDYWxsYmFja0Z1bmN0aW9uOjpjYWxsSW1wbDxKU0ND
YWxsYmFja0Z1bmN0aW9uPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTQ0NhbGxiYWNrRnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNDQ2FsbGJhY2tGdW5jdGlvbiwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gQVBJQ2FsbGJhY2tGdW5jdGlvbjo6Y29uc3RydWN0SW1wbDxKU0NDYWxsYmFja0Z1bmN0
aW9uPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGUuY3BwCmluZGV4IDdiMmNjZGM3M2VmNzVkYjVmYTBhNzBiYWE2MjRlYTA5OGZhZDYzMTMu
LmFkYmI1ZTU3YzM0NTFjM2QzYTg4ZjgxOGY3ZWMwNTdjZWI1OTg4MjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGUuY3BwCkBAIC0zMywyNCArMzMsMjQgQEAgbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiAKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25E
ZXRhaWxzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uR2V0
SW50ZXJuYWxQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxBbGxDb2xsZWN0aW9uKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0lu
amVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXNQcm9taXNlUmVqZWN0ZWRXaXRoTmF0
aXZlR2V0dGVyVHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvbldlYWtNYXBTaXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcEVudHJpZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0U2l6ZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtTZXRFbnRyaWVzKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVj
dGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhT
Y29wZUV4dGVuc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0
dHJpYnV0ZUV2YWx1YXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUF0
dHJpYnV0ZVNhdmVkUmVzdWx0QWxpYXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25TdWJ0eXBlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFpbHMpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGVGdW5jdGlvbkdldEludGVybmFsUHJvcGVydGllcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxD
b25zdHJ1Y3Rvck5hbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmpl
Y3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5
cGVGdW5jdGlvbklzUHJvbWlzZVJlamVjdGVkV2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0U2l6
ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkl0ZXJhdG9y
RW50cmllcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUXVlcnlJbnN0YW5jZXMpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvblF1
ZXJ5SG9sZGVycyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24pOwor
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFBy
b3RvdHlwZUF0dHJpYnV0ZUV2YWx1YXRlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlh
cyk7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZTo6c19p
bmZvID0geyAiSW5qZWN0ZWRTY3JpcHRIb3N0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZSkg
fTsKIApAQCAtNzksNyArNzksNyBAQCB2b2lkIEpTSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIEpTQ19O
QVRJVkVfR0VUVEVSX1dJVEhPVVRfVFJBTlNJVElPTigic2F2ZWRSZXN1bHRBbGlhcyIsIGpzSW5q
ZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbGlhcywgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3Rv
dHlwZUF0dHJpYnV0ZUV2YWx1YXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlQXR0cmlidXRlRXZhbHVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTkyLDcgKzkyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0ZUV2YWx1YXRlKEpTR2wKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmV2YWx1YXRlKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0
cmlidXRlU2F2ZWRSZXN1bHRBbGlhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUF0dHJpYnV0ZVNhdmVkUmVzdWx0QWxpYXMsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlQXR0cmlidXRlU2F2ZWRSZXN1bHRBbAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+c2F2ZWRSZXN1bHRBbGlhcyhnbG9iYWxP
YmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkludGVybmFs
Q29uc3RydWN0b3JOYW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTgsNyArMTE4LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uSW50ZXJuYWxDb25zdHIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3Rl
ZFRoaXMtPmludGVybmFsQ29uc3RydWN0b3JOYW1lKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzSFRNTEFsbENvbGxlY3Rpb24s
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc0hUTUxB
bGxDb2xsZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+aXNIVE1MQWxs
Q29sbGVjdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25Jc1By
b21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbklzUHJvbWlzZVJlamVjdGVk
V2l0aE5hdGl2ZUdldHRlclR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ0LDcg
KzE0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVGdW5jdGlvbklzUHJvbWlzZVJlamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShjYXN0ZWRUaGlzLT5pc1Byb21pc2VSZWplY3RlZFdpdGhOYXRpdmVHZXR0ZXJUeXBlRXJy
b3IoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uUHJveHlUYXJnZXRW
YWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uUHJveHlUYXJnZXRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU3LDcgKzE1
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvblByb3h5VGFyZ2V0VmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT5wcm94eVRhcmdldFZhbHVlKHZtLCBjYWxsRnJhbWUpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1
bmN0aW9uV2Vha01hcFNpemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
NzAsNyArMTcwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2Ny
aXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha01hcFNpemUoSlMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPndlYWtNYXBTaXplKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrTWFwRW50cmllcywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTgzLDcgKzE4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbldlYWtNYXBFbnRyaWVz
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT53ZWFrTWFwRW50cmllcyhn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25XZWFrU2V0U2l6ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vh
a1NldFNpemUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rp
b25XZWFrU2V0U2l6ZShKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+
d2Vha1NldFNpemUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vh
a1NldEVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNJbmplY3RlZFNjcmlwdEhvc3RQcm90
b3R5cGVGdW5jdGlvbldlYWtTZXRFbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDks
NyArMjA5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0
SG9zdFByb3RvdHlwZUZ1bmN0aW9uV2Vha1NldEVudHJpZXMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGNhc3RlZFRoaXMtPndlYWtTZXRFbnRyaWVzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhv
c3RQcm90b3R5cGVGdW5jdGlvbkl0ZXJhdG9yRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRyaWVzLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uSXRlcmF0b3JFbnRy
aWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPml0ZXJhdG9yRW50cmll
cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNl
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0
aW9uUXVlcnlJbnN0YW5jZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNSw3ICsyMzUsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90
eXBlRnVuY3Rpb25RdWVyeUluc3RhbmNlcwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fz
dGVkVGhpcy0+cXVlcnlJbnN0YW5jZXMoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlw
ZUZ1bmN0aW9uUXVlcnlIb2xkZXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3Jp
cHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI0OCw3ICsyNDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0
ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25RdWVyeUhvbGRlcnMoSgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+cXVlcnlIb2xkZXJzKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNj
cmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25FdmFs
dWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYxLDcgKzI2
MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQ
cm90b3R5cGVGdW5jdGlvbkV2YWx1YXRlV2l0aFNjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYXN0ZWRUaGlzLT5ldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRT
Y3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
SW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25TdWJ0eXBlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNzQsNyArMjc0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0luamVjdGVkU2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uU3VidHlwZShKU0dsb2IKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnN1YnR5cGUoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0luamVjdGVk
U2NyaXB0SG9zdFByb3RvdHlwZUZ1bmN0aW9uRnVuY3Rpb25EZXRhaWxzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkRldGFp
bHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4Nyw3ICsyODcsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzSW5qZWN0ZWRTY3JpcHRIb3N0UHJvdG90eXBlRnVuY3Rpb25GdW5j
dGlvbkRldGFpbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+ZnVuY3Rp
b25EZXRhaWxzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNJbmplY3RlZFNjcmlwdEhvc3RQcm90b3R5cGVGdW5jdGlvbkdldElu
dGVybmFsUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0luamVjdGVkU2NyaXB0SG9z
dFByb3RvdHlwZUZ1bmN0aW9uR2V0SW50ZXJuYWxQcm9wZXJ0aWVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNj
cmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5jcHAKaW5kZXggMjg4NzhkYzQxYWFm
OTVkMDljMTk2ZDcwMDg3NjcyN2RlNWMyOGU2NS4uYWI1YThhY2QwMzJmYjgyMTU5MzRjN2U0MGEw
MzMyZjg2YTBiOGIxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmNwcApAQCAt
MzQsMTkgKzM0LDE5IEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gRnVuY3Rpb25zLgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4
dGVuc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVuY3Rpb25T
Y29wZURlc2NyaXB0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlRnVu
Y3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNjb3BlRGVz
Y3JpcHRpb25zKTsKIAogLy8gQXR0cmlidXRlcy4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNj
cmlwdENhbGxGcmFtZUF0dHJpYnV0ZUxpbmUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFt
ZUF0dHJpYnV0ZUNvbHVtbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRl
RnVuY3Rpb25OYW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29w
ZUNoYWluKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVJc1RhaWxEZWxldGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVDYWxsZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU291cmNlSUQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVDb2x1bW4pOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2Ny
aXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVuY3Rpb25OYW1lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNjb3BlQ2hhaW4pOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0
cmlidXRlVGhpc09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0ph
dmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUeXBlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQpOwogCiBjb25zdCBD
bGFzc0luZm8gSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlOjpzX2luZm8gPSB7ICJKYXZh
U2NyaXB0Q2FsbEZyYW1lIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGUpIH07CiAKQEAgLTY5
LDcgKzY5LDcgQEAgdm9pZCBKU0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGU6OmZpbmlzaENy
ZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBKU0NfTkFUSVZFX0dFVFRF
Ul9XSVRIT1VUX1RSQU5TSVRJT04oImlzVGFpbERlbGV0ZWQiLCBqc0phdmFTY3JpcHRDYWxsRnJh
bWVJc1RhaWxEZWxldGVkLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6QWNjZXNzb3IpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
SmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoU2NvcGVFeHRl
bnNpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBl
RnVuY3Rpb25FdmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtODIsNyArODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlw
dENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9uRXZhbHVhdGVXaXRoUwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+ZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24oZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5cGVGdW5jdGlvblNjb3BlRGVzY3JpcHRpb25zKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZUZ1bmN0aW9u
U2NvcGVEZXNjcmlwdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk1LDcgKzk1LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVQcm90b3R5
cGVGdW5jdGlvblNjb3BlRGVzY3JpcHQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3Rl
ZFRoaXMtPnNjb3BlRGVzY3JpcHRpb25zKGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVDYWxsZXIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNhbGxlcihKU0dsb2Jh
bE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+Y2FsbGVyKGds
b2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNj
cmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlEKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZVNvdXJjZUlELCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3Jp
cHRDYWxsRnJhbWVBdHRyaWJ1dGVTb3VyY2VJRChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnNvdXJjZUlEKGdsb2JhbE9iamVjdCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0
ZUxpbmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRl
TGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTM0LDcgKzEzNCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlTGluZShKU0ds
b2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPmxpbmUo
Z2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZh
U2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlQ29sdW1uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2
YVNjcmlwdENhbGxGcmFtZUF0dHJpYnV0ZUNvbHVtbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTQ3LDcgKzE0Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0
Q2FsbEZyYW1lQXR0cmlidXRlQ29sdW1uKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjYXN0ZWRUaGlzLT5jb2x1bW4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlRnVu
Y3Rpb25OYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUF0dHJp
YnV0ZUZ1bmN0aW9uTmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTYwLDcgKzE2MCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmli
dXRlRnVuY3Rpb25OYW1lKEpTR2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYXN0
ZWRUaGlzLT5mdW5jdGlvbk5hbWUoZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlU2NvcGVDaGFpbihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNo
YWluLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzMsNyArMTczLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVTY29wZUNoYWlu
KEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnNjb3Bl
Q2hhaW4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNKYXZhU2NyaXB0Q2FsbEZyYW1lQXR0cmlidXRlVGhpc09iamVjdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xODYsNyArMTg2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRyaWJ1dGVUaGlzT2JqZWN0KEpTR2xvYmFsT2IKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnRoaXNPYmplY3QoZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNKYXZhU2NyaXB0Q2Fs
bEZyYW1lQXR0cmlidXRlVHlwZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc0phdmFTY3JpcHRDYWxs
RnJhbWVBdHRyaWJ1dGVUeXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVBdHRy
aWJ1dGVUeXBlKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY2Fz
dGVkVGhpcy0+dHlwZShnbG9iYWxPYmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc0phdmFTY3JpcHRDYWxsRnJhbWVJc1RhaWxEZWxldGVkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzSmF2YVNjcmlwdENhbGxGcmFtZUlzVGFpbERlbGV0ZWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggZmVjYWI5ZWMwYmRkNDBkOTdmMzk5ZmViMjNl
MTg4MWRkMzIyNTQwMS4uZDBhNDhmMzM4ZWY5ZGEzNDVhYjY4YzUyZGFhMWE2MGRmNzhkNjJjNSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTI0OSwxMTQgKzI0OSwxMTQgQEAgY2xhc3MgV29ya2Vy
cyB7CiB9OwogCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3JlYXRlR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUhlYXBCaWdJbnQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCk7CiAjaWYgVVNFKEJJR0lOVDMyKQot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVCaWdJbnQz
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVCaWdJbnQzMik7CiAjZW5kaWYKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVXNlQmlnSW50MzIoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSXNCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc0hlYXBCaWdJbnQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25QcmludFN0ZE91dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludFN0ZEVycihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25EZWJ1ZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmliZShKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25EZXNjcmliZUFycmF5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNsZWVwU2Vjb25kcyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25KU0NTdGFjayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ0FuZFN3ZWVwKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkZ1bGxHQyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSGVhcFNpemUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlTWVtb3J5Rm9vdHByaW50KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblJlc2V0TWVtb3J5UGVhayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25BZGRyZXNzT2Yo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uVmVyc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SdW4oSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uUnVuU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWQoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uTG9hZFN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkRmlsZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DaGVja1N5bnRheChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkbGluZShKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25QcmVjaXNlVGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbk5vREZHKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5vRlRMKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbk5vT1NSRXhpdEZ1enppbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2Nh
dGlvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBpbGVzKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNhbGxlcklzT01HQ29tcGlsZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDT3B0aW9ucyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SZW9wdGltaXphdGlvblJldHJ5Q291bnQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
VHJhbnNmZXJBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GYWlsTmV4dE5ld0NvZGVCbG9j
ayhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIE5PX1JFVFVSTl9XSVRIX1ZB
TFVFIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25RdWl0KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkZhbHNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVuZGVmaW5lZDEoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uVW5kZWZpbmVkMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc0ludDMyKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bklzUHVyZU5hTihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZmZlY3RmdWw0MihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25JZGVudGl0eShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25NYWtlTWFzcXVlcmFkZXIoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0N1c3RvbVByb3BlcnRp
ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxsVmFyaWFibGVzKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkRyYWluTWljcm90YXNrcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRUaW1lb3V0KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvblJlbGVhc2VXZWFrUmVmcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRp
b25SZWdpc3RyeUxpdmVDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3Ry
eURlYWRDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25JczMyQml0UGxhdGZvcm0oSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0
c1NhbXBsaW5nUHJvZmlsZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3Qo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JHQ0RlYnVnZ2luZyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25SZXNldFN1cGVyU2FtcGxlclN0YXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVu
c3VyZUFycmF5U3RvcmFnZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VCaWdJbnQzMik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzQmlnSW50MzIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0hlYXBCaWdJbnQpOworCitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkT3V0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWJ1Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblNsZWVwU2Vjb25kcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbkpTQ1N0YWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uR0NBbmRTd2VlcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkZ1bGxHQyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkVkZW5HQyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkhlYXBTaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlTWVtb3J5Rm9vdHByaW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uUmVzZXRNZW1vcnlQZWFrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQWRkcmVzc09mKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uVmVyc2lvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
blJ1bik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJ1blN0cmlu
Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWQpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Mb2FkU3RyaW5nKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVhZEZpbGUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DaGVja1N5bnRheCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJlYWRsaW5lKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJlY2lzZVRpbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25OZXZlcklubGluZUZ1bmN0aW9uKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTm9ERkcpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ob0ZUTCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbk5vT1NSRXhpdEZ1enppbmcpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25PcHRpbWl6ZU5leHRJbnZvY2F0aW9uKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcyk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxlcklzT01HQ29tcGls
ZWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25KU0NPcHRpb25z
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVvcHRpbWl6YXRp
b25SZXRyeUNvdW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
VHJhbnNmZXJBcnJheUJ1ZmZlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkZhaWxOZXh0TmV3Q29kZUJsb2NrKTsKK3N0YXRpYyBOT19SRVRVUk5fV0lUSF9WQUxV
RSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUXVpdCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZhbHNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVW5kZWZpbmVkMSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblVuZGVmaW5lZDIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25Jc0ludDMyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uSXNQdXJlTmFOKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRWZmZWN0ZnVsNDIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25JZGVudGl0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbk1ha2VNYXNxdWVyYWRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkNhbGxNYXNxdWVyYWRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkhhc0N1c3RvbVByb3BlcnRpZXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EcmFpbk1pY3JvdGFza3MpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRUaW1lb3V0KTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVsZWFzZVdlYWtSZWZzKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlMaXZl
Q291bnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6
YXRpb25SZWdpc3RyeURlYWRDb3VudCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbklzMzJCaXRQbGF0Zm9ybSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hv
dCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVh
cFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25SZXNldFN1cGVyU2FtcGxlclN0YXRlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKTsKICNpZiBFTkFCTEUoU0FN
UExJTkdfUFJPRklMRVIpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblN0YXJ0U2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TYW1wbGluZ1Byb2Zp
bGVyU3RhY2tUcmFjZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2FtcGxpbmdQcm9maWxlclN0
YWNrVHJhY2VzKTsKICNlbmRpZgogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbk1heEFyZ3VtZW50cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc3luY1Rlc3RTdGFydChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25Bc3luY1Rlc3RQYXNzZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWF4QXJndW1l
bnRzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQXN5bmNUZXN0
U3RhcnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3luY1Rl
c3RQYXNzZWQpOwogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9yeU1vZGUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uV2ViQXNzZW1ibHlNZW1vcnlNb2RlKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNBTVBM
SU5HX0ZMQUdTKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25T
ZXRTYW1wbGluZ0ZsYWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNsZWFyU2FtcGxpbmdGbGFncyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25TZXRTYW1wbGluZ0ZsYWdzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ2xlYXJTYW1wbGluZ0ZsYWdzKTsKICNlbmRpZgogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldFJhbmRvbVNlZWQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uU2V0UmFuZG9tU2VlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc1JvcGUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ2FsbGVyU291cmNlT3JpZ2luKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckNyZWF0
ZVJlYWxtKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckV2YWxTY3JpcHQoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRG9sbGFyQWdlbnRTdGFydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlY2VpdmVC
cm9hZGNhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRSZXBvcnQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uRG9sbGFyQWdlbnRTbGVlcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2Fk
Y2FzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJlcG9ydChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Eb2xsYXJBZ2VudExlYXZpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRNb25v
dG9uaWNOb3coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uV2FpdEZvclJlcG9ydChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25IZWFwQ2FwYWNpdHkoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNzKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkRpc2FibGVSaWNoU291cmNlSW5mbyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25NYWxsb2NJ
bkFMb29wKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblRvdGFsQ29tcGlsZVRpbWUoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25TZXRVbmhhbmRsZWRSZWplY3Rpb25DYWxsYmFjayhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc0Rv
dWJsZU51bWJlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRSYW5kb21TZWVkKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0UmFuZG9tU2VlZCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzUm9wZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxlclNvdXJjZU9yaWdpbik7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckNyZWF0ZVJlYWxtKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50U3RhcnQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFJlY2Vp
dmVCcm9hZGNhc3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25E
b2xsYXJBZ2VudFJlcG9ydCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkRvbGxhckFnZW50U2xlZXApOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25Eb2xsYXJBZ2VudEJyb2FkY2FzdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50R2V0UmVwb3J0KTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRMZWF2aW5nKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRNb25vdG9uaWNOb3cpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25XYWl0Rm9yUmVwb3J0KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGVhcENhcGFjaXR5KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNz
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGlzYWJsZVJpY2hT
b3VyY2VJbmZvKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTWFs
bG9jSW5BTG9vcCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblRv
dGFsQ29tcGlsZVRpbWUpOworCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblNldFVuaGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQXNEb3VibGVOdW1iZXIpOwogCiBzdHJ1Y3QgU2NyaXB0IHsK
ICAgICBlbnVtIGNsYXNzIFN0cmljdE1vZGUgewpAQCAtMTI2MiwxMCArMTI2MiwxNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcHJpbnRJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmludFN0
ZE91dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkg
eyByZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0KTsg
fQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50U3RkRXJyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSB7IHJldHVybiBw
cmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRlcnIpOyB9CitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZE91dCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICByZXR1cm4gcHJpbnRJ
bnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0KTsKK30KKworSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRFcnIsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIHByaW50SW50
ZXJuYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0ZGVycik7Cit9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZWJ1ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkRlYnVnLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjgxLDcgKzEyODgsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVidWcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmli
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBpZiAoY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAx
KQpAQCAtMTI4OSw3ICsxMjk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkRlc2NyaWJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCB0b1N0cmluZyhjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVz
Y3JpYmVBcnJheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlQXJyYXksIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTEzMDAsNyArMTMwNyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25EZXNjcmliZUFycmF5KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZp
YWxTdHJpbmcodm0sIHRvU3RyaW5nKCI8QnV0dGVyZmx5OiAiLCBSYXdQb2ludGVyKG9iamVjdC0+
YnV0dGVyZmx5KCkpLCAiOyBwdWJsaWMgbGVuZ3RoOiAiLCBvYmplY3QtPmdldEFycmF5TGVuZ3Ro
KCksICI7IHZlY3RvciBsZW5ndGg6ICIsIG9iamVjdC0+Z2V0VmVjdG9yTGVuZ3RoKCksICI+Iikp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNsZWVwU2Vjb25k
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNsZWVwU2Vjb25kcywgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTMzMSw3ICsxMzM4LDcgQEAgY2xhc3MgRnVuY3Rpb25KU0NTdGFja0Z1bmN0
b3IgewogICAgIFN0cmluZ0J1aWxkZXImIG1fdHJhY2U7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uSlNDU3RhY2soSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25KU0NTdGFjaywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgU3RyaW5n
QnVpbGRlciB0cmFjZTsKQEAgLTEzNDMsNyArMTM1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25KU0NTdGFjayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkdDQW5kU3dlZXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNMb2NrSG9s
ZGVyIGxvY2sodm0pOwpAQCAtMTM1MSw3ICsxMzU4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkdDQW5kU3dlZXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2EKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZtLmhlYXAuc2l6ZUFmdGVy
TGFzdEZ1bGxDb2xsZWN0aW9uKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkZ1bGxHQyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRnVsbEdDLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKQEAgLTEzNTksNyArMTM2Niw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GdWxsR0MoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcih2bS5oZWFwLnNpemVBZnRlckxhc3RGdWxsQ29sbGVjdGlvbigpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FZGVuR0MoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkVkZW5HQywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9j
ayh2bSk7CkBAIC0xMzY3LDcgKzEzNzQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRWRlbkdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodm0uaGVhcC5zaXplQWZ0ZXJMYXN0RWRl
bkNvbGxlY3Rpb24oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSGVhcFNpemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhlYXBTaXplLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKQEAgLTE0MjYsMTQgKzE0MzMsMTQg
QEAgY2xhc3MgSlNDTWVtb3J5Rm9vdHByaW50IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTQ01lbW9yeUZvb3RwcmludDo6c19pbmZvID0geyAiTWVt
b3J5Rm9vdHByaW50IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShKU0NNZW1vcnlGb290cHJpbnQpIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVNZW1vcnlGb290cHJpbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkNyZWF0ZU1lbW9yeUZvb3RwcmludCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU0xv
Y2tIb2xkZXIgbG9jayh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU0NNZW1vcnlG
b290cHJpbnQ6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZXNldE1lbW9yeVBlYWsoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVzZXRNZW1vcnlQ
ZWFrLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBNZW1vcnlGb290cHJp
bnQ6OnJlc2V0UGVhaygpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CkBAIC0xNDQyLDcgKzE0NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uUmVzZXRNZW1vcnlQZWFrKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogLy8gVGhp
cyBmdW5jdGlvbiBpcyBub3QgZ2VuZXJhbGx5IHZlcnkgaGVscGZ1bCBpbiA2NC1iaXQgY29kZSBh
cyB0aGUgdGFnIGFuZCBwYXlsb2FkCiAvLyBzaGFyZSBhIHJlZ2lzdGVyLiBCdXQgaW4gMzItYml0
IEpJVGVkIGNvZGUgdGhlIHRhZyBtYXkgbm90IGJlIGNoZWNrZWQgaWYgYW4KIC8vIG9wdGltaXph
dGlvbiByZW1vdmVzIHR5cGUgY2hlY2tpbmcgcmVxdWlyZW1lbnRzLCBzdWNoIGFzIGluID09PS4K
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25BZGRyZXNzT2YoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkFkZHJlc3NPZiwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApOwogICAgIGlm
ICghdmFsdWUuaXNDZWxsKCkpCkBAIC0xNDUzLDE0ICsxNDYwLDE0IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25BZGRyZXNzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqIGNhbGxGCiAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uVmVyc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25WZXJzaW9uLCAoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICAvLyBXZSBuZWVkIHRoaXMgZnVuY3Rpb24gZm9yIGNv
bXBhdGliaWxpdHkgd2l0aCB0aGUgTW96aWxsYSBKUyB0ZXN0cyBidXQgZm9yIG5vdwogICAgIC8v
IHdlIGRvbid0IGFjdHVhbGx5IGRvIGFueSB2ZXJzaW9uLXNwZWNpZmljIGhhbmRsaW5nCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
blJ1biwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ5NSw3ICsxNTAyLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJ1bihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0b3BX
YXRjaC5nZXRFbGFwc2VkTVMoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uUnVuU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUnVuU3RyaW5n
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTI0LDcgKzE1MzEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUnVuU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVhbG0pOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkxvYWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1NTMsNyArMTU2MCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Mb2FkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZFN0cmlu
ZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWRTdHJpbmcsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE1NjgsNyArMTU3NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25Mb2FkU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uUmVhZEZpbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25S
ZWFkRmlsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU5OSw3ICsxNjA2LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRGaWxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja1N5bnRheChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNoZWNrU3ludGF4LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNjIzLDcgKzE2MzAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ2hlY2tTeW50YXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogfQogCiAjaWYg
RU5BQkxFKFNBTVBMSU5HX0ZMQUdTKQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblNldFNhbXBsaW5nRmxhZ3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFNhbXBsaW5nRmxhZ3MsIChK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAg
ICB1bnNpZ25lZCBmbGFnID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoaSkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSk7CkBAIC0xNjMzLDcgKzE2NDAs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU2V0U2FtcGxpbmdGbGFn
cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdWxsKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2xl
YXJTYW1wbGluZ0ZsYWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxhZ3MsIChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgY2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICB1
bnNpZ25lZCBmbGFnID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoaSkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSk7CkBAIC0xNjQ0LDEyICsxNjUxLDEy
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DbGVhclNhbXBsaW5nRmxh
Z3MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhCiB9CiAjZW5kaWYKIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldFJhbmRvbVNlZWQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdl
dFJhbmRvbVNlZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkK
IHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdsb2JhbE9iamVjdC0+d2Vh
a1JhbmRvbSgpLnNlZWQoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uU2V0UmFuZG9tU2VlZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldFJhbmRv
bVNlZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE2NjAsNyArMTY2Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRSYW5kb21TZWVkKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9wZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uSXNSb3BlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgSlNWYWx1ZSBhcmd1bWVudCA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAg
ICAgaWYgKCFhcmd1bWVudC5pc1N0cmluZygpKQpAQCAtMTY2OSw3ICsxNjc2LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzUm9wZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSogY2FsbEZyYW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbigh
aW1wbCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbGVy
U291cmNlT3JpZ2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbGVyU291cmNlT3Jp
Z2luLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBTb3VyY2VPcmlnaW4g
c291cmNlT3JpZ2luID0gY2FsbEZyYW1lLT5jYWxsZXJTb3VyY2VPcmlnaW4odm0pOwpAQCAtMTY3
OCw3ICsxNjg1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNhbGxl
clNvdXJjZU9yaWdpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzb3VyY2VPcmlnaW4uc3RyaW5nKCkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlYWRsaW5lKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25SZWFkbGluZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
KQogewogICAgIFZlY3RvcjxjaGFyLCAyNTY+IGxpbmU7CiAgICAgaW50IGM7CkBAIC0xNjkyLDIy
ICsxNjk5LDIyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWFkbGlu
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1N0cmluZyhnbG9iYWxPYmplY3QtPnZtKCksIGxpbmUuZGF0YSgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QcmVjaXNlVGltZShKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Q
cmVjaXNlVGltZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25OZXZlcklubGluZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTmV2ZXJJ
bmxpbmVGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHNldE5ldmVySW5saW5l
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Ob0RGRyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vREZHLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2V0TmV2ZXJPcHRpbWl6ZShnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Tm9GVEwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbk5vRlRMLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKSB7CiAg
ICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IGdldEV4ZWN1dGFibGVGb3JG
dW5jdGlvbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsKQEAgLTE3MTcsMjIgKzE3MjQsMjIgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5vRlRMKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9P
U1JFeGl0RnV6emluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5vT1NSRXhpdEZ1enpp
bmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzZXRDYW5ub3RVc2VPU1JFeGl0RnV6emlu
ZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uT3B0aW1pemVOZXh0SW52b2NhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbk9wdGltaXplTmV4dEludm9jYXRpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShvcHRpbWl6ZU5leHRJbnZvY2F0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25OdW1iZXJPZkRGR0NvbXBp
bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTnVtYmVyT2ZERkdDb21waWxlcywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKG51bWJlck9mREZHQ29tcGlsZXMoZ2xvYmFsT2JqZWN0
LCBjYWxsRnJhbWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNhbGxlcklzT01HQ29tcGlsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DYWxsZXJJ
c09NR0NvbXBpbGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODY4LDE0ICsxODc1LDE0IEBA
IFdvcmtlcnMmIFdvcmtlcnM6OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuICpyZXN1bHQ7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJDcmVhdGVSZWFsbShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQ3JlYXRlUmVhbG0sIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgR2xvYmFsT2JqZWN0KiByZXN1bHQgPSBHbG9iYWxPYmplY3Q6OmNyZWF0ZSh2bSwg
R2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGpzTnVsbCgpKSwgVmVjdG9yPFN0cmlu
Zz4oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQtPmdldERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgIiQiKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyRXZhbFNjcmlwdChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkRvbGxhckV2YWxTY3JpcHQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4OTcs
NyArMTkwNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJF
dmFsU2NyaXB0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uRG9sbGFyQWdlbnRTdGFydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFn
ZW50U3RhcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NTUsNyArMTk2Miw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFN0YXJ0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFn
ZW50UmVjZWl2ZUJyb2FkY2FzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFn
ZW50UmVjZWl2ZUJyb2FkY2FzdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk4Myw3ICsxOTkw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50UmVj
ZWl2ZUJyb2FkY2FzdChKU0dsb2JhbE9iamVjdCoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgY2FsbGJhY2ssIGNhbGxEYXRh
LCBqc051bGwoKSwgYXJncykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkRvbGxhckFnZW50UmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9s
bGFyQWdlbnRSZXBvcnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OTYsNyArMjAwMyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudFJlcG9ydChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRv
bGxhckFnZW50U2xlZXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Eb2xsYXJBZ2VudFNs
ZWVwLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDA5LDcgKzIwMTYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRTbGVlcChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEJy
b2FkY2FzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRvbGxhckFnZW50QnJvYWRjYXN0
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDMzLDcgKzIwNDAsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRG9sbGFyQWdlbnRCcm9hZGNhc3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudEdldFJl
cG9ydChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRG9sbGFyQWdlbnRHZXRSZXBvcnQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAKQEAgLTIwNDQsMTcgKzIwNTEsMTcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50R2V0UmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCBzdHJpbmcpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRvbGxhckFnZW50TGVh
dmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25Eb2xsYXJBZ2VudExlYXZpbmcsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Eb2xsYXJBZ2VudE1vbm90b25p
Y05vdyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25Eb2xsYXJBZ2VudE1vbm90b25pY05vdywgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihNb25vdG9u
aWNUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYWl0Rm9yUmVwb3J0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25XYWl0Rm9yUmVwb3J0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCkBA
IC0yMDY5LDEzICsyMDc2LDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25XYWl0Rm9yUmVwb3J0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyh2bSwgc3RyaW5nKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IZWFwQ2FwYWNpdHkoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkhlYXBDYXBhY2l0eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzTnVtYmVyKHZtLmhlYXAuY2FwYWNpdHkoKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uRmxhc2hIZWFwQWNjZXNzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MDkzLDEzICsyMTAwLDEzIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25G
bGFzaEhlYXBBY2Nlc3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkRpc2FibGVSaWNoU291cmNlSW5mbyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EaXNhYmxlUmljaFNv
dXJjZUluZm8sIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHN1cHBvcnRz
UmljaFNvdXJjZUluZm8gPSBmYWxzZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTWFs
bG9jSW5BTG9vcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25NYWxsb2NJbkFMb29wLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKSkKIHsKICAgICBWZWN0b3I8dm9pZCo+IHB0cnM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDUwMDA7ICsraSkKQEAgLTIxMDksNyArMjExNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25NYWxsb2NJbkFMb29wKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVG90YWxDb21waWxlVGltZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25Ub3RhbENvbXBpbGVUaW1lLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNp
ZiBFTkFCTEUoSklUKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoSklUOjp0
b3RhbENvbXBpbGVUaW1lKCkubWlsbGlzZWNvbmRzKCkpKTsKQEAgLTIxMjcsNyArMjEzNCw3IEBA
IHR5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfZnVuZGFtZW50YWw8VmFsdWVUeXBlPjo6
dmFsdWU+Ojp0eXBlIGFkZE9wdGlvbihWCiAgICAgb3B0aW9uc09iamVjdC0+cHV0RGlyZWN0KHZt
LCBpZGVudGlmaWVyLCBKU1ZhbHVlKHZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25KU0NPcHRpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25KU0NPcHRpb25z
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTT2JqZWN0KiBvcHRpb25zT2JqZWN0ID0g
Y29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0KTsKQEAgLTIxMzgsNyArMjE0NSw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25KU0NPcHRpb25zKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShvcHRp
b25zT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJl
b3B0aW1pemF0aW9uUmV0cnlDb3VudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVvcHRpbWl6YXRpb25SZXRy
eUNvdW50LCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
aWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTIxNTAsNyArMjE1Nyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZW9wdGltaXphdGlvblJldHJ5Q291bnQoSlNH
bG9iYWxPYmplY3QqLCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihibG9j
ay0+cmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXIoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uVHJhbnNmZXJBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvblRyYW5zZmVyQXJyYXlCdWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIxNjgsMTQgKzIxNzUsMTQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blRyYW5zZmVyQXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uRmFpbE5leHROZXdDb2RlQmxvY2soSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkZhaWxOZXh0TmV3Q29kZUJsb2NrLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHZtLnNl
dEZhaWxOZXh0TmV3Q29kZUJsb2NrKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblF1
aXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvblF1aXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
dm0uY29kZUNhY2hlKCktPndyaXRlKHZtKTsKQEAgLTIxODgsMTEgKzIxOTUsMjIgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblF1aXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW0KICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uRmFsc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSB7IHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7IH0KK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkZhbHNlLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKK3sKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOworfQorCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25VbmRlZmluZWQxLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVW5kZWZpbmVkMShK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsgfQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVuZGVm
aW5lZDIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSB7IHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7IH0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Jc0ludDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25VbmRlZmluZWQyLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKK3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OworfQorCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0ludDMyLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAgICAgIGlmICgh
Y2FsbEZyYW1lLT5hcmd1bWVudChpKS5pc0ludDMyKCkpCkBAIC0yMjAxLDcgKzIyMTksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNJbnQzMihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSogY2FsbEZyYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29s
ZWFuKHRydWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklz
UHVyZU5hTihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXNQdXJlTmFOLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjYWxsRnJh
bWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KGkpOwpAQCAtMjIxNiwyNSArMjIzNCwyOCBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXNQdXJlTmFOKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKiBjYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklkZW50aXR5KEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIHsgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjYWxsRnJhbWUtPmFyZ3VtZW50KDApKTsgfQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uSWRlbnRpdHksIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K3sKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwor
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRWZmZWN0ZnVsNDIoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRWZmZWN0ZnVsNDIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoNDIpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
TWFrZU1hc3F1ZXJhZGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoSW50ZXJuYWxGdW5jdGlvbjo6Y3JlYXRlRnVuY3Rpb25UaGF0TWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZCh2bSwgZ2xvYmFsT2JqZWN0LCAwLCAiSXNIVE1MRERBIl9zLCBmdW5jdGlv
bkNhbGxNYXNxdWVyYWRlcikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uQ2FsbE1hc3F1ZXJhZGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxNYXNxdWVyYWRlciwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXNDdXN0b21Q
cm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGFzQ3VzdG9tUHJvcGVydGll
cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBpZiAo
dmFsdWUuaXNPYmplY3QoKSkKQEAgLTIyNDIsMjEgKzIyNjMsMjEgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhc0N1c3RvbVByb3BlcnRpZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFR5cGVzRm9yQWxs
VmFyaWFibGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wVHlwZXNGb3JBbGxWYXJpYWJsZXMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgdm0uZHVtcFR5cGVQcm9maWxlckRhdGEoKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHJhaW5NaWNyb3Rhc2tzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVu
Y3Rpb25EcmFpbk1pY3JvdGFza3MsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgdm0uZHJh
aW5NaWNyb3Rhc2tzKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFRpbWVvdXQo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRUaW1lb3V0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yMjc5LDE0ICsyMzAwLDE0IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25TZXRUaW1lb3V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJlbGVhc2VXZWFrUmVmcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uUmVsZWFzZVdlYWtSZWZzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIHZtLmZpbmFs
aXplU3luY2hyb25vdXNKU0V4ZWN1dGlvbigpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlMaXZlQ291bnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjI5OSw3ICsyMzIwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudChKU0dsb2IKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGZpbmFsaXphdGlvblJlZ2lzdHJ5LT5saXZl
Q291bnQobG9ja2VyKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIzMTIsNyArMjMzMyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlEZWFkQ291bnQoSlNHbG9iCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihmaW5hbGl6YXRpb25SZWdpc3RyeS0+ZGVh
ZENvdW50KGxvY2tlcikpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbklzMzJCaXRQbGF0Zm9ybShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JczMyQml0UGxhdGZvcm0sIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQogewogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1ZhbHVlKEpTQzo6SlNWYWx1ZTo6SlNGYWxzZSkpOwpAQCAtMjMyMSwxMyAr
MjM0MiwxMyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSXMzMkJpdFBs
YXRmb3JtKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogI2VuZGlmCiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkNyZWF0ZUdsb2JhbE9iamVjdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEdsb2JhbE9iamVjdDo6Y3JlYXRlKHZtLCBHbG9iYWxP
YmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwganNOdWxsKCkpLCBWZWN0b3I8U3RyaW5nPigpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVIZWFwQmln
SW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlSGVhcEJpZ0ludCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMjM0Niw3ICsyMzY3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUhlYXBCaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amUKIH0KIAogI2lmIFVTRShCSUdJTlQzMikKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVCaWdJbnQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0
ZUJpZ0ludDMyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMzc0LDcgKzIzOTUsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQmlnSW50MzIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdAogfQogI2VuZGlmCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25Vc2VCaWdJbnQzMihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VCaWdJbnQzMiwgKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAjaWYgVVNFKEJJR0lOVDMyKQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKHRydWUpKTsKQEAgLTIzODMsNyArMjQwNCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Vc2VCaWdJbnQzMihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopCiAjZW5kaWYKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbklzQmlnSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzQmlnSW50MzIsIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICNpZiBVU0UoQklHSU5UMzIpCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oY2FsbEZyYW1lLT5hcmd1bWVudCgw
KS5pc0JpZ0ludDMyKCkpKTsKQEAgLTIzOTMsMTIgKzI0MTQsMTIgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzQmlnSW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqIGNhbGwKICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uSXNIZWFwQmlnSW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0hlYXBCaWdJbnQsIChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzSGVhcEJpZ0ludCgpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DaGVja01vZHVsZVN5bnRh
eChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNoZWNrTW9kdWxlU3ludGF4LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yNDE5LDcgKzI0NDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
agogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RvcFdhdGNoLmdldEVsYXBz
ZWRNUygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25QbGF0
Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxp
bmdQcm9maWxlciwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAjaWYgRU5BQkxF
KFNBTVBMSU5HX1BST0ZJTEVSKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShK
U0M6OkpTVmFsdWU6OkpTVHJ1ZSkpOwpAQCAtMjQyOCw3ICsyNDQ5LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVy
KEpTR2xvYmFsT2IKICNlbmRpZgogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVh
cFNuYXBzaG90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KHZtKTsKQEAgLTI0NDMsNyArMjQ2NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkdlbmVyYXRlSGVhcFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdl
bmVyYXRlSGVhcFNuYXBzaG90Rm9yR0NEZWJ1Z2dpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwpAQCAtMjQ2MSwxMyArMjQ4MiwxMyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3RGb3JH
Q0RlYnVnZ2luZyhKU0dsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmco
dm0sIGpzb25TdHJpbmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvblJlc2V0U3VwZXJTYW1wbGVyU3RhdGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUmVzZXRTdXBlclNhbXBsZXJTdGF0ZSwg
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmVzZXRTdXBlclNhbXBsZXJT
dGF0ZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2Uo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25FbnN1cmVBcnJheVN0b3JhZ2UsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBj
YWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CkBAIC0yNDc4LDcgKzI0OTksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5zdXJlQXJyYXlTdG9yYWdlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogfQogCiAjaWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVS
KQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblN0YXJ0U2FtcGxpbmdQcm9m
aWxlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU3RhcnRTYW1wbGluZ1Byb2ZpbGVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIFNhbXBsaW5nUHJvZmlsZXImIHNhbXBsaW5nUHJvZmlsZXIgPSB2
bS5lbnN1cmVTYW1wbGluZ1Byb2ZpbGVyKFdURjo6U3RvcHdhdGNoOjpjcmVhdGUoKSk7CkBAIC0y
NDg3LDcgKzI1MDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uU3Rh
cnRTYW1wbGluZ1Byb2ZpbGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25TYW1wbGluZ1Byb2ZpbGVyU3RhY2tUcmFjZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvblNhbXBsaW5nUHJvZmlsZXJTdGFja1RyYWNlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTAyLDEyICsy
NTIzLDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TYW1wbGluZ1By
b2ZpbGVyU3RhY2tUcmFjZXMoSlNHbG9iYWxPYmplY3QqCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFNB
TVBMSU5HX1BST0ZJTEVSKQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
TWF4QXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvbk1heEFyZ3VtZW50cywgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihKU0M6Om1heEFy
Z3VtZW50cykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQXN5
bmNUZXN0U3RhcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Bc3luY1Rlc3RTdGFydCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUyMCw3ICsyNTQxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkFzeW5jVGVzdFN0YXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKICAgICByZXR1cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc3luY1Rlc3RQYXNzZWQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQXN5bmNU
ZXN0UGFzc2VkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBhc3luY1Rl
c3RQYXNzZXMrKzsKICAgICByZXR1cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7CkBAIC0yNTI4LDcg
KzI1NDksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQXN5bmNUZXN0
UGFzc2VkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgogCiAjaWYgRU5BQkxFKFdFQkFTU0VN
QkxZKQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldlYkFz
c2VtYmx5TWVtb3J5TW9kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbldlYkFzc2VtYmx5
TWVtb3J5TW9kZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjU0OCw3ICsyNTY5LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XZWJBc3NlbWJseU1lbW9y
eU1vZGUoSlNHbG9iYWxPYmplY3QKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJBU1NFTUJMWSkKIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFVuaGFuZGxlZFJlamVjdGlv
bkNhbGxiYWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0VW5oYW5kbGVkUmVqZWN0
aW9uQ2FsbGJhY2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEpTT2Jq
ZWN0KiBvYmplY3QgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmdldE9iamVjdCgpOwpAQCAtMjU2
MSw3ICsyNTgyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFVu
aGFuZGxlZFJlamVjdGlvbkNhbGxiYWNrKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uQXNEb3VibGVOdW1iZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25B
c0RvdWJsZU51bWJlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcApp
bmRleCBhNDg5YTI2Y2I3NmUyOTA1YTQxOTdlZTZiNGIwZDM1MGMyNzg3NTUyLi43ZDg1YTYwMDkw
ZGVmYjVhMGIwZTVlNTdiMGU5MDczMzQxNzE0MGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLmNwcApA
QCAtMzksOCArMzksOCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUo
QWdncmVnYXRlRXJyb3JDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBBZ2dyZWdhdGVF
cnJvckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51
bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQWdncmVnYXRlRXJyb3JDb25zdHJ1
Y3RvcikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEFnZ3Jl
Z2F0ZUVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0
b3IpOwogCiBBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yOjpBZ2dyZWdhdGVFcnJvckNvbnN0cnVj
dG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJv
ckNvbnN0cnVjdG9yKQpAQCAtNTUsNyArNTUsNyBAQCB2b2lkIEFnZ3JlZ2F0ZUVycm9yQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQWdncmVnYXRlRXJyb3JQcm90b3R5cGUqCiAg
ICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3Rv
dHlwZSwgcHJvdG90eXBlLCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBZ2dyZWdhdGVFcnJvckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVj
dG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBKU1ZhbHVlIGVycm9y
cyA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShBZ2dyZWdhdGVFcnJvcjo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIGVycm9yU3RydWN0dXJlLCBlcnJvcnMsIG1lc3NhZ2Us
IG51bGxwdHIsIFR5cGVOb3RoaW5nLCBmYWxzZSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBZ2dyZWdhdGVFcnJvckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFnZ3JlZ2F0ZUVycm9yQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0FycmF5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMjRiMTdjN2YyNzZlZWNkYjVlNjc1YTVhOGI2ZTI2Y2Y5
ODliYWQ2Ny4uMDg4NmY5M2Y2NWNmNWM2MTFjNTNiNGQ4YjUyZDY0NWMzZDUzMWViZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAK
QEAgLTQzLDggKzQzLDggQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29uc3RydWN0b3I6OnNfaW5m
byA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW4KIEBlbmQKICovCiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEFycmF5Q29u
c3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0
aEFycmF5Q29uc3RydWN0b3IpOwogCiBBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9y
KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZt
LCBzdHJ1Y3R1cmUsIGNhbGxBcnJheUNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RXaXRoQXJyYXlDb25z
dHJ1Y3RvcikKQEAgLTg2LDEzICs4NiwxMyBAQCBzdGF0aWMgaW5saW5lIEpTQXJyYXkqIGNvbnN0
cnVjdEFycmF5V2l0aFNpemVRdWlyayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAg
IHJldHVybiBjb25zdHJ1Y3RBcnJheShnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PEFycmF5QWxs
b2NhdGlvblByb2ZpbGUqPihudWxscHRyKSwgYXJncywgbmV3VGFyZ2V0KTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aEFycmF5Q29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
b25zdHJ1Y3RBcnJheVdpdGhTaXplUXVpcmsoZ2xvYmFsT2JqZWN0LCBhcmdzLCBjYWxsRnJhbWUt
Pm5ld1RhcmdldCgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxBcnJheUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxBcnJheUNvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoY29uc3RydWN0QXJyYXlXaXRoU2l6ZVF1aXJrKGdsb2JhbE9iamVjdCwgYXJncywg
SlNWYWx1ZSgpKSk7CkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBpc0FycmF5U2xvdyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQcm94eU9iamVjdCogYXJndW1lbnQpCiAKIC8vIEVTNiA3
LjIuMgogLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtaXNhcnJheQotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJc0Fy
cmF5U2xvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheUNvbnN0cnVjdG9yUHJpdmF0ZUZ1bmNJ
c0FycmF5U2xvdywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2Fz
dDxQcm94eU9iamVjdCo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgw
KSkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGlzQXJyYXlTbG93SW5s
aW5lKGdsb2JhbE9iamVjdCwganNDYXN0PFByb3h5T2JqZWN0Kj4oY2FsbEZyYW1lLT51bmNoZWNr
ZWRBcmd1bWVudCgwKSkpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9B
cnJheUNvbnN0cnVjdG9yLmgKaW5kZXggNTMwZTYzNDUyZDhiZTk5NjRhNDRhNGY5ZDExY2FmNmM4
MWRjNWFlZi4uZGE4MjVhOTVjOGUzYmQ1NWQ3NDBmZTk5YjNiMzI4ZmQ4NjI4ZDliNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaApAQCAt
NTcsNyArNTcsNyBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShBcnJheUNv
bnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0aW9uKTsKIAogSlNBcnJheSogY29uc3RydWN0QXJyYXlX
aXRoU2l6ZVF1aXJrKEpTR2xvYmFsT2JqZWN0KiwgQXJyYXlBbGxvY2F0aW9uUHJvZmlsZSosIEpT
VmFsdWUgbGVuZ3RoLCBKU1ZhbHVlIHByb3RvdHlwZSA9IEpTVmFsdWUoKSk7CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlDb25zdHJ1Y3RvclByaXZhdGVGdW5jSXNBcnJheVNs
b3coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oYXJyYXlDb25zdHJ1Y3RvclByaXZhdGVGdW5jSXNBcnJheVNsb3cpOwogYm9vbCBpc0FycmF5
U2xvdyhKU0dsb2JhbE9iamVjdCosIFByb3h5T2JqZWN0KiBhcmd1bWVudCk7CiAKIC8vIEVTNiA3
LjIuMgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUu
Y3BwCmluZGV4IDkxMGE5OWY5MjdlODBlYzNlOWIyNGQ4NzRmZGQ3NmYxNjRmOGI4MTQuLjAxNzJk
MmFhNWE1ZTg5MDk2OTUwNjk3NjEyMGY4ZjdkM2FiNTk5ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAKQEAgLTQwLDE5ICs0MCwxOSBA
QAogCiBuYW1lc3BhY2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSm9pbihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVBy
b3RvRnVuY0tleXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUG9w
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGFycmF5UHJvdG9GdW5jUHVzaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1JldmVyc2UoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNTaGlmdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3Bs
aWNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGFycmF5UHJvdG9GdW5jVW5TaGlmdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0luZGV4T2YoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNKb2luKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNLZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNFbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oYXJyYXlQcm90b0Z1bmNQb3ApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVBy
b3RvRnVuY1B1c2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1Jl
dmVyc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NoaWZ0KTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNTbGljZSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU3BsaWNlKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNVblNoaWZ0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oYXJyYXlQcm90b0Z1bmNJbmRleE9mKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
YXJyYXlQcm90b0Z1bmNMYXN0SW5kZXhPZik7CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBBcnJheVByb3RvdHlwZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAg
LTI1Niw3ICsyNTYsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBzdGQ6OnBhaXI8U3BlY2llc0Nv
bnN0cnVjdFJlc3VsdCwgSlNPYmplY3QqPiBzcGVjaWVzQ29uc3RydQogICAgIHJldHVybiBzdGQ6
Om1ha2VfcGFpcihTcGVjaWVzQ29uc3RydWN0UmVzdWx0OjpDcmVhdGVkT2JqZWN0LCBuZXdPYmpl
Y3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3Bl
Y2llc0NyZWF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NwZWNpZXNDcmVh
dGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU5MCw3ICs1OTAsNyBAQCBpbmxpbmUgYm9vbCBj
YW5Vc2VEZWZhdWx0QXJyYXlKb2luRm9yVG9TdHJpbmcoVk0mIHZtLCBKU09iamVjdCogdGhpc09i
amVjdCkKICAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LT5pc09yaWdpbmFsQXJyYXlTdHJ1Y3R1cmUo
c3RydWN0dXJlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
RnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jVG9TdHJpbmcs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY3Myw3ICs2NzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpv
aW5lci5qb2luKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBhcnJheVByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFy
cmF5UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc2Niw3
ICs3NjYsNyBAQCBzdGF0aWMgSlNWYWx1ZSBzbG93Sm9pbihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU09iamVjdCogdGhpc09iamVjdCwgSlNTdAogICAgIHJldHVybiByOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSm9pbihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihhcnJheVByb3RvRnVuY0pvaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTgz
NywyMiArODM3LDIyIEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjcmVhdGVBcnJheUl0ZXJhdG9y
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJh
eUl0ZXJhdG9yU3RydWN0dXJlKCksIHRoaXNPYmplY3QsIGpzTnVtYmVyKHN0YXRpY19jYXN0PHVu
c2lnbmVkPihraW5kKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJh
eVByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1ZhbHVl
cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gY3JlYXRlQXJyYXlJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNh
bGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJy
YXlQcm90b0Z1bmNFbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjcmVhdGVBcnJheUl0ZXJhdG9yT2JqZWN0
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY0tleXMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNLZXlzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjcmVhdGVBcnJheUl0
ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpLZXlz
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1BvcChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1BvcCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtODkxLDcgKzg5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNQb3AoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGFycmF5UHJvdG9GdW5jUHVzaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVu
Y1B1c2gsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkyNiw3ICs5MjYsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jUHVzaChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobmV3TGVu
Z3RoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNS
ZXZlcnNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jUmV2ZXJzZSwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTAyOSw3ICsxMDI5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhcnJheVByb3RvRnVuY1JldmVyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRoaXNPYmplY3QpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU2hpZnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oYXJyYXlQcm90b0Z1bmNTaGlmdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA1NSw3
ICsxMDU1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3RvRnVuY1No
aWZ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQ
cm90b0Z1bmNTbGljZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NsaWNlLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlw
ZS5zbGljZQogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTExMTcsNyArMTEx
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1bmNTbGljZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9G
dW5jU3BsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5UHJvdG9GdW5jU3BsaWNlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IC8vIDE1LjQuNC4xMgogCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jU3BsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVW5TaGlmdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihhcnJheVByb3RvRnVuY1VuU2hpZnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEzNTks
NyArMTM1OSw3IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBmYXN0SW5kZXhPZihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBWTSYgdm0sIEpTQXJyYXkqCiAgICAgfQogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jSW5kZXhPZihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihhcnJheVByb3RvRnVuY0luZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEz
OTksNyArMTM5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b0Z1
bmNJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcigtMSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGFycmF5UHJvdG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXJyYXlQ
cm90b0Z1bmNMYXN0SW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTU0Nyw3ICsxNTQ3
LDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIGNvcHlFbGVtZW50cyhUKiBidWZmZXIsIHVuc2lnbmVk
IG9mZnNldCwgVCogc291cmNlLCB1bnNpZ25lZAogICAgICAgICBjbGVhckVsZW1lbnQ8VD4oYnVm
ZmVyW2kgKyBvZmZzZXRdKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJy
YXlQcm90b1ByaXZhdGVGdW5jQ29uY2F0TWVtY3B5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFycmF5
UHJvdG9Qcml2YXRlRnVuY0NvbmNhdE1lbWNweSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1
bWVudENvdW50KCkgPT0gMik7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAt
MTYzNCw3ICsxNjM0LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheVByb3Rv
UHJpdmF0ZUZ1bmNDb25jYXRNZW1jcHkoSlNHbG9iYWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b1ByaXZhdGVGdW5jQXBwZW5kTWVtY3B5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGFy
cmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCkgPT0gMyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9BcnJheVByb3RvdHlwZS5oCmluZGV4IDUzZWY2OWE1NDgyZGVlZTJlOTU1MWY4YWE4MzM2Y2Jh
N2ZmZDM3MTcuLmQ2ZDA4MTQ2MjQ5YjdhYzM3ZmRmODRmMTIyOGFmZDhlMjg5ZTNmMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlQcm90b3R5cGUuaApAQCAtNDks
MTAgKzQ5LDEwIEBAIGNsYXNzIEFycmF5UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQXJyYXkg
ewogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEFycmF5UHJvdG90eXBl
LCBBcnJheVByb3RvdHlwZTo6QmFzZSk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNTcGVjaWVzQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5UHJvdG9GdW5jVG9TdHJpbmcoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXJyYXlQcm90b0Z1bmNWYWx1ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlQcm90b1ByaXZhdGVGdW5jQ29uY2F0TWVtY3B5
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGFycmF5UHJvdG9Qcml2YXRlRnVuY0FwcGVuZE1lbWNweShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1NwZWNp
ZXNDcmVhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvRnVuY1RvU3Ry
aW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlQcm90b0Z1bmNWYWx1ZXMpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvUHJpdmF0ZUZ1bmNDb25jYXRNZW1j
cHkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheVByb3RvUHJpdmF0ZUZ1bmNBcHBl
bmRNZW1jcHkpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Bc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4
IDMxYThmMjNmZDY5OWU3ZjU0ZDIzZWU4YTIxNzVjOWRiMjczN2Q1ZTMuLmY3ZmFjNThiYzQ5OGJl
MGNkMmNhNDRkNWUzZmEyYmQwNjExY2Y2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYs
MTMgKzM2LDE2IEBAIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShBc3lu
Y0Z1bmN0aW9uQ29uc3RydWN0b3IpOwogCiBjb25zdCBDbGFzc0luZm8gQXN5bmNGdW5jdGlvbkNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJBc3luY0Z1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBc3luY0Z1
bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXN5bmNG
dW5jdGlvbkNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNv
bnN0cnVjdEFzeW5jRnVuY3Rpb25Db25zdHJ1Y3Rvcik7CisKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjYWxsQXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxs
RnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5
bmMpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
QXN5bmNGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEFz
eW5jRnVuY3Rpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZyYW1lKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCBhcmdzLCBGdW5jdGlvbkNvbnN0cnVjdGlvbk1vZGU6OkFzeW5jLCBjYWxsRnJh
bWUtPm5ld1RhcmdldCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApp
bmRleCAwNGQ4Mzg5OTZiYTNhNDMwYWYxM2QyMmM1ZjE0YmNjZGYxODNhM2FmLi4wNzAyNDA5MDRm
MjljMTg3YWUzNjY2ZTcwOTVlZjFlYjkwMDRhYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Bc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FzeW5jR2VuZXJhdG9yRnVuY3Rpb25D
b25zdHJ1Y3Rvci5jcHAKQEAgLTM2LDEzICszNiwxNiBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJ
QUxMWV9ERVNUUlVDVElCTEUoQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAog
Y29uc3QgQ2xhc3NJbmZvIEFzeW5jR2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51
bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoQXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVj
dG9yKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsQXN5bmNH
ZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXN5
bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKKworSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNhbGxBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjb25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rp
b25Db25zdHJ1Y3Rpb25Nb2RlOjpBc3luY0dlbmVyYXRvcikpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBc3luY0dlbmVyYXRvckZ1bmN0aW9uQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9uTW9kZTo6QXN5bmNHZW5lcmF0b3IsIGNhbGxG
cmFtZS0+bmV3VGFyZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0F0b21pY3NPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXRvbWljc09iamVjdC5jcHAKaW5kZXggNGE3NTc1ZmI1OTgzMzVjNjhlMTEwMGYwMzcyODE2ODhj
ODQ2NWY4Yi4uZGY2M2NhNGNlOGQ0NWY0ZmQ4ZmEwNTZlYmQ0ZDNjY2QxYzRmODg0MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXRvbWljc09iamVjdC5jcHAKQEAgLTUw
LDggKzUwLDggQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEF0b21p
Y3NPYmplY3QpOwogICAgIG1hY3JvKHdha2UsIFdha2UsIDMpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIG1hY3JvKHhvciwgWG9yLCAzKQogCi0j
ZGVmaW5lIERFQ0xBUkVfRlVOQ19QUk9UTyhsb3dlck5hbWUsIHVwcGVyTmFtZSwgY291bnQpICAg
ICAgICAgICAgICAgICBcCi0gICAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNz
RnVuYyAjIyB1cHBlck5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKKyNkZWZpbmUg
REVDTEFSRV9GVU5DX1BST1RPKGxvd2VyTmFtZSwgdXBwZXJOYW1lLCBjb3VudCkgIFwKKyAgICBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jICMjIHVwcGVyTmFtZSk7CiBGT1Jf
RUFDSF9BVE9NSUNTX0ZVTkMoREVDTEFSRV9GVU5DX1BST1RPKQogI3VuZGVmIERFQ0xBUkVfRlVO
Q19QUk9UTwogCkBAIC0zMTIsNTIgKzMxMiw1MiBAQCBFbmNvZGVkSlNWYWx1ZSBpc0xvY2tGcmVl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgYXJnKQogCiB9IC8vIGFub255
bW91cyBuYW1lc3BhY2UKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVu
Y0FkZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0FkZCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gYXRv
bWljT3BlcmF0aW9uV2l0aEFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIEFkZEZ1bmMoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNBbmQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNBbmQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlv
bldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBBbmRGdW5jKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jQ29tcGFyZUV4Y2hhbmdlKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jQ29tcGFyZUV4Y2hhbmdlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBh
dG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgQ29tcGFyZUV4
Y2hhbmdlRnVuYygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNz
RnVuY0V4Y2hhbmdlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jRXhjaGFuZ2UsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIGF0b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCBFeGNoYW5nZUZ1bmMoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRv
bWljc0Z1bmNJc0xvY2tGcmVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jSXNMb2Nr
RnJlZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gaXNMb2NrRnJlZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJn
dW1lbnQoMCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5j
TG9hZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhdG9taWNzRnVuY0xvYWQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBMb2FkRnVuYygp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY09yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGF0b21pY3NGdW5jT3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0b21pY09wZXJhdGlv
bldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBPckZ1bmMoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1bmNTdG9yZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihhdG9taWNzRnVuY1N0b3JlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJn
cyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgU3RvcmVGdW5jKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGF0b21pY3NGdW5jU3ViKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGF0
b21pY3NGdW5jU3ViLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBhdG9taWNPcGVyYXRpb25XaXRoQXJncyhnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSwgU3ViRnVuYygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBhdG9taWNzRnVuY1dhaXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNX
YWl0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MjcsNyArNDI3LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVuY1dhaXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEYKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCByZXN1
bHRTdHJpbmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhdG9taWNzRnVu
Y1dha2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNXYWtlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC00NTksNyArNDU5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBh
dG9taWNzRnVuY1dha2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEYKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKFBhcmtpbmdMb3Q6OnVucGFya0NvdW50KHB0
ciwgY291bnQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYXRvbWljc0Z1
bmNYb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYXRvbWljc0Z1bmNYb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGF0
b21pY09wZXJhdGlvbldpdGhBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBYb3JGdW5jKCkp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmlnSW50Q29uc3Ry
dWN0b3IuY3BwCmluZGV4IGJlZGZjOTc0Yjk2NDVjZmFmNTg1YjFjYWQyOGU0ZTQxNTZmODBiMzQu
LmFkZTdkMTE4YWEyYWExYzhkOTg0M2IwZDEyZThkYmEwZjQxMmNmMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludENvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CaWdJbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTM0
LDggKzM0LDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJpZ0ludENvbnN0cnVjdG9yRnVuY0FzVWludE4oSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0lu
dENvbnN0cnVjdG9yRnVuY0FzSW50TihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYmlnSW50Q29uc3RydWN0b3JGdW5jQXNVaW50
Tik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1
bmNBc0ludE4pOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApAQCAtNTQsNyArNTQsNyBAQCBjb25z
dCBDbGFzc0luZm8gQmlnSW50Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJh
c2U6OnNfaW5mbywgJmJpZ0ludAogQGVuZAogKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbEJpZ0ludENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQmlnSW50Q29uc3Ry
dWN0b3IpOwogCiBCaWdJbnRDb25zdHJ1Y3Rvcjo6QmlnSW50Q29uc3RydWN0b3IoVk0mIHZtLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVy
ZSwgY2FsbEJpZ0ludENvbnN0cnVjdG9yLCBudWxscHRyKQpAQCAtMTAyLDcgKzEwMiw3IEBAIEpT
VmFsdWUgdG9CaWdJbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBhcmd1
bWVudCkKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEJpZ0ludENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGNhbGxCaWdJbnRDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTI5LDcg
KzEyOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxCaWdJbnRD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9CaWdJbnQoZ2xvYmFsT2JqZWN0LCBwcmltaXRpdmUp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50Q29uc3RydWN0b3JG
dW5jQXNVaW50TihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1Y3RvckZ1bmNBc1Vp
bnROLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDksNyArMTQ5LDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRDb25zdHJ1Y3RvckZ1bmNBc1VpbnROKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShKU0JpZ0ludDo6YXNVaW50TihnbG9iYWxPYmplY3QsIG51bWJlck9mQml0cywgYmlnSW50LmFz
SGVhcEJpZ0ludCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0lu
dENvbnN0cnVjdG9yRnVuY0FzSW50TihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihiaWdJbnRDb25zdHJ1
Y3RvckZ1bmNBc0ludE4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0JpZ0ludFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9CaWdJbnRQcm90b3R5cGUuY3BwCmluZGV4IDFkOGZjMDAyNGExOTc4
MWUzYmJmN2RkMzJiMmIxNGZjMDBiMTA5YzYuLjlkYzBmZTJiNjA0N2ZiMmU5ODU5MDVmMmRlNjMx
M2MyN2QyZDA4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jp
Z0ludFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQmln
SW50UHJvdG90eXBlLmNwcApAQCAtMzgsOSArMzgsOSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBiaWdJ
bnRQcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNUb1N0cmluZyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNUb0xvY2FsZVN0cmlu
Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1bmNWYWx1
ZU9mKTsKIAogfQogCkBAIC0xMDMsNyArMTAzLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNC
aWdJbnQqIHRvVGhpc0JpZ0ludFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEoK
ICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBi
aWdJbnRQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihiaWdJbnRQcm90b0Z1
bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTI3LDcgKzEyNyw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYmlnSW50UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjCiB9CiAKIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBp
bnRyb2R1Y2UgdGhlIHJpZ2h0IHNlcGFyYXRvcnMgZm9yIHRob3VzYW5kcyBhbmQgc2ltaWxhciB0
aGluZ3MuCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1RvTG9j
YWxlU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGJpZ0ludFByb3RvRnVuY1RvTG9jYWxlU3Ry
aW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDEsNyArMTQxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBiaWdJbnRQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29k
ZShudW1iZXJGb3JtYXQtPmZvcm1hdChnbG9iYWxPYmplY3QsIHZhbHVlKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJpZ0ludFByb3RvRnVuY1ZhbHVlT2YoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oYmlnSW50UHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5jcHAKaW5kZXggMjY0ODA5ZTRmM2FhMDY1NDk1MWI4M2VhNTUzOTA3ZjBlNjQ0NTBmYy4uMDBm
ODViMzE3ZmQxMDU2NWQ0ZTg2NjQxZjk3M2I0NWU2NGMzMTMyZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC0zMCwx
NCArMzAsMTcgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEJvb2xl
YW5Db25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBCb29sZWFuQ29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JF
QVRFX01FVEhPRF9UQUJMRShCb29sZWFuQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxCb29sZWFuQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aEJvb2xlYW5Db25zdHJ1Y3Rvcik7CisK
IC8vIEVDTUEgMTUuNi4xCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
Qm9vbGVhbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxCb29sZWFuQ29uc3Ry
dWN0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS50b0Jvb2xlYW4oZ2xvYmFsT2JqZWN0KSkpOwogfQogCiAvLyBFQ01BIDE1LjYu
Mgotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aEJvb2xl
YW5Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RXaXRoQm9vbGVhbkNv
bnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwCmluZGV4IDAyNTI2NTc0ZjNiMGMxOWRl
MjcyNTllM2EwZDI2ZDNiZWViY2UzZjEuLmJiNGE0NTljNjViMjUwNDAxODZmMjNiODliZTBlM2Qy
ZWI3NWJhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Qcm90b3R5cGUuY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5jVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGJvb2xlYW5Qcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib29sZWFuUHJvdG9G
dW5jVG9TdHJpbmcpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYm9vbGVhblBy
b3RvRnVuY1ZhbHVlT2YpOwogCiB9CiAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBCb29sZWFuUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KikKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5j
VG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC04NCw3ICs4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYm9vbGVhblByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh2bS5zbWFsbFN0cmluZ3MudHJ1ZVN0cmlu
ZygpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib29sZWFuUHJvdG9GdW5j
VmFsdWVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihib29sZWFuUHJvdG9GdW5jVmFsdWVPZiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29uc29sZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25z
b2xlT2JqZWN0LmNwcAppbmRleCBjNTNlNGUyNzY4ZmRmYjIxYjA4NTMyZjQ3ZTcwMGYyN2RhMzUw
Y2ViLi5jYmU5YjNkODhjNmI4ZDY1YTBlYTg2NWQzMzNmZTI0NDcwNWY3MDFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcApAQCAtNDcsMzIg
KzQ3LDMyIEBAIHN0YXRpYyBTdHJpbmcgdmFsdWVPckRlZmF1bHRMYWJlbFN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqCiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJ
VklBTExZX0RFU1RSVUNUSUJMRShDb25zb2xlT2JqZWN0KTsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RlYnVnKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNMb2coSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNJbmZvKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jV2FybihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyWE1MKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
VGFibGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUcmFjZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY0Fzc2VydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50KEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jQ291bnRSZXNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2Zp
bGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWUo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lTG9nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jVGltZUVuZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY0dyb3VwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xs
YXBzZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1JlY29yZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1JlY29yZEVuZChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY1NjcmVlbnNob3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNE
ZWJ1Zyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5j
RXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y0xvZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5j
SW5mbyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5j
V2Fybik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5j
Q2xlYXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y0Rpcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5j
RGlyWE1MKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1
bmNUYWJsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9G
dW5jVHJhY2UpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3Rv
RnVuY0Fzc2VydCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jQ291bnQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVBy
b3RvRnVuY0NvdW50UmVzZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29u
c29sZVByb3RvRnVuY1Byb2ZpbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Y29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVMb2cpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVFbmQpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXApOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFw
c2VkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNH
cm91cEVuZCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9G
dW5jUmVjb3JkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNSZWNvcmRFbmQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc29s
ZVByb3RvRnVuY1NjcmVlbnNob3QpOwogCiBjb25zdCBDbGFzc0luZm8gQ29uc29sZU9iamVjdDo6
c19pbmZvID0geyAiY29uc29sZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoQ29uc29sZU9iamVjdCkgfTsKIApAQCAtMTM3LDMyICsxMzcsMzIg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNvbnNvbGVMb2dXaXRoTGV2ZWwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW0KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jRGVidWcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y0RlYnVnLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBjb25zb2xlTG9nV2l0aExldmVsKGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLCBNZXNzYWdlTGV2ZWw6OkRlYnVnKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Vycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnNvbGVQcm90b0Z1bmNFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxvZ1dpdGhMZXZlbChn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgTWVzc2FnZUxldmVsOjpFcnJvcik7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNMb2coSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0xvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY29uc29sZUxv
Z1dpdGhMZXZlbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgTWVzc2FnZUxldmVsOjpMb2cpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
SW5mbyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jSW5mbywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gY29uc29sZUxvZ1dpdGhMZXZlbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgTWVzc2FnZUxl
dmVsOjpJbmZvKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c29sZVByb3RvRnVuY1dhcm4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1dh
cm4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIGNvbnNvbGVMb2dXaXRoTGV2ZWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIE1lc3NhZ2VMZXZlbDo6V2FybmluZyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90
b0Z1bmNDbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVu
dCgpOwogICAgIGlmICghY2xpZW50KQpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Rp
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jRGlyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVD
bGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICgh
Y2xpZW50KQpAQCAtMTgyLDcgKzE4Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNEaXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpclhNTChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jRGlyWE1MLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIENvbnNvbGVDbGllbnQqIGNs
aWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQpA
QCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNEaXJYTUwoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RhYmxlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnNvbGVQcm90b0Z1bmNUYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9i
YWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTIwMiw3ICsy
MDIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jVGFibGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNUcmFjZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJv
dG9GdW5jVHJhY2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5j
b25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0yMTIsNyArMjEyLDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RyYWNlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xl
UHJvdG9GdW5jQXNzZXJ0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNBc3Nl
cnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmND
b3VudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jQ291bnQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2JqZWN0LT52bSgpKTsKICAgICBh
dXRvKiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKQEAgLTI0NCw3ICsy
NDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jQ291bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudFJlc2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNv
bGVQcm90b0Z1bmNDb3VudFJlc2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0byogY2xpZW50ID0gZ2xvYmFsT2JqZWN0
LT5jb25zb2xlQ2xpZW50KCk7CkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50UmVzZXQoSlNHbG9iYWxPYmpl
Y3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmls
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTMwMCw3ICszMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZChKU0dsb2JhbE9iamVjdCogZwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jVGltZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgIGF1dG8qIGNs
aWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwpAQCAtMzM1LDcgKzMzNSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1l
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c29sZVByb3RvRnVuY1RpbWVMb2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVu
Y1RpbWVMb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZ2xvYmFsT2Jq
ZWN0LT52bSgpKTsKICAgICBhdXRvKiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGll
bnQoKTsKQEAgLTM0OSw3ICszNDksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUxvZyhKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKGdsb2JhbE9iamVjdC0+dm0oKSk7CiAgICAgYXV0byogY2xpZW50ID0g
Z2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CkBAIC0zNjMsNyArMzYzLDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoSlNH
bG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJv
dG9GdW5jVGltZVN0YW1wKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNUaW1l
U3RhbXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xl
Q2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCkBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFtcChKU0ds
b2JhbE9iamVjdCogZ2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jR3JvdXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc29sZVByb3RvRnVuY0dyb3VwLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGdsb2JhbE9iamVjdC0+Y29uc29sZUNsaWVudCgpOwog
ICAgIGlmICghY2xpZW50KQpAQCAtMzgzLDcgKzM4Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29s
bGFwc2VkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNl
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGll
bnQoKTsKICAgICBpZiAoIWNsaWVudCkKQEAgLTM5Myw3ICszOTMsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xsYXBzZWQoSlNH
bG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNH
cm91cEVuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7
CiAgICAgaWYgKCFjbGllbnQpCkBAIC00MDMsNyArNDAzLDcgQEAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kKEpTR2xvYmFsT2JqZWN0
KiBnbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3Jk
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNSZWNvcmQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29s
ZUNsaWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYg
KCFjbGllbnQpCkBAIC00MTMsNyArNDEzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1JlY29yZChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUmVjb3JkRW5kKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnNvbGVQcm90b0Z1bmNSZWNvcmRFbmQsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQ29uc29sZUNs
aWVudCogY2xpZW50ID0gZ2xvYmFsT2JqZWN0LT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFj
bGllbnQpCkBAIC00MjMsNyArNDIzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY1JlY29yZEVuZChKU0dsb2JhbE9iamVjdCogZ2wKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zb2xlUHJvdG9GdW5jU2NyZWVuc2hvdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBDb25zb2xlQ2xp
ZW50KiBjbGllbnQgPSBnbG9iYWxPYmplY3QtPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNs
aWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0
b3IuY3BwCmluZGV4IDVmZDBlYTdkNzc1NDBhOGExM2ZmNDQ4M2VlY2Q0YjI0MDM1NTFkODMuLjY4
N2ZlNzk3ZWRhMDcxOWQ2NTAwOGYxYjlhYmFlMjZjNTgzMDdlMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcApAQCAtMzAsOSArMzAs
OSBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBk
YXRlUGFyc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVVUQyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlTm93KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQYXJzZSk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGRhdGVVVEMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlTm93
KTsKIAogfQogCkBAIC01Miw4ICs1Miw4IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAKIFNU
QVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShEYXRlQ29uc3RydWN0b3IpOwog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbERhdGUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3Rvcik7CiAK
IERhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxEYXRlLCBj
b25zdHJ1Y3RXaXRoRGF0ZUNvbnN0cnVjdG9yKQpAQCAtMTM1LDE0ICsxMzUsMTQgQEAgSlNPYmpl
Y3QqIGNvbnN0cnVjdERhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBu
ZXdUYXJnZXQsIGNvbnN0IEEKICAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUodm0sIGRh
dGVTdHJ1Y3R1cmUsIHZhbHVlKTsKIH0KICAgICAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdFdpdGhEYXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0V2l0aERhdGVDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0IGFyZ3MoY2FsbEZy
YW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdERhdGUoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPm5ld1RhcmdldCgpLCBhcmdzKSk7CiB9CiAKIC8vIEVDTUEgMTUuOS4y
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRGF0ZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxEYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIEdyZWdvcmlhbkRhdGVUaW1l
IHRzOwpAQCAtMTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxEYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIGZvcm1hdERhdGVUaW1l
KHRzLCBEYXRlVGltZUZvcm1hdERhdGVBbmRUaW1lLCBmYWxzZSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUGFyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVBh
cnNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNjQsMTIgKzE2NCwxMiBAQCBKU1ZhbHVlIGRh
dGVOb3dJbXBsKCkKICAgICByZXR1cm4ganNOdW1iZXIoanNDdXJyZW50VGltZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlTm93KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlTm93LCAoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KGpzQ3VycmVudFRpbWUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVVVEMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVVUQywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBkb3VibGUgbXMgPSBtaWxs
aXNlY29uZHNGcm9tQ29tcG9uZW50cyhnbG9iYWxPYmplY3QsIEFyZ0xpc3QoY2FsbEZyYW1lKSwg
V1RGOjpVVENUaW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHRpbWVD
bGlwKG1zKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0
ZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90
eXBlLmNwcAppbmRleCA5NTU2M2QwOTg0NjJjYzU4N2FlNTQ4YTBhYWE1YzNjZTgyMzZiZTliLi4x
MTIyYTlmMmJlZWM0ZDQxNjY0MDdlODJiYTFhNzVlZDAyMzEwYjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtMzgsNDcgKzM4LDQ3
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNHZXREYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXkoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y0dldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRIb3VycyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0
TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNH
ZXRNb250aChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0U2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGlt
ZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dFVUQ0RheShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dFVUQ0hvdXJzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldFVUQ01pbnV0ZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01vbnRoKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRVVENTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRZZWFyKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1
bmNTZXREYXRlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhcihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0
SG91cnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0
TWludXRlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TW9udGgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFNlY29u
ZHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZGF0ZVByb3RvRnVuY1NldFRpbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0ZVByb3RvRnVuY1NldFVUQ0Z1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENIb3VycyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENN
aW51dGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNb250aChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0VVRD
U2Vjb25kcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0WWVhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9EYXRlU3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9T
dHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvVGltZVN0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9VVENT
dHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSVNPU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0pTT04o
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZGF0ZVByb3RvRnVuY0dldERhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jR2V0RGF5KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dl
dEZ1bGxZZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldEhv
dXJzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vj
b25kcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRNaW51dGVz
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1vbnRoKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFNlY29uZHMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDRGF0ZSk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENEYXkpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDRnVsbFllYXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDSG91cnMpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDTWlsbGlzZWNvbmRzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ01pbnV0ZXMpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDTW9udGgpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VVRDU2Vjb25kcyk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRZZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZGF0ZVByb3RvRnVuY1NldERhdGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRl
UHJvdG9GdW5jU2V0RnVsbFllYXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJv
dG9GdW5jU2V0SG91cnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5j
U2V0TWlsbGlTZWNvbmRzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVu
Y1NldE1pbnV0ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0
TW9udGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0U2Vjb25k
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRUaW1lKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ0RhdGUpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDRnVsbFllYXIpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnMpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTWlsbGlzZWNvbmRzKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXMpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTW9udGgpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDU2Vjb25kcyk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRZZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvRGF0ZVN0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGVQcm90b0Z1bmNUb1ByaW1pdGl2ZVN5bWJvbCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNUb1RpbWVTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihkYXRlUHJvdG9GdW5jVG9VVENTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihk
YXRlUHJvdG9GdW5jVG9JU09TdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRl
UHJvdG9GdW5jVG9KU09OKTsKIAogfQogCkBAIC0yODcsMTkgKzI4NywxOSBAQCB2b2lkIERhdGVQ
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKIAogLy8gRnVuY3Rpb25zCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0
ZVByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNUb1N0
cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBjb25zdCBib29sIGFzVVRDVmFyaWFudCA9IGZhbHNlOwogICAgIHJldHVybiBm
b3JtYXRlRGF0ZUluc3RhbmNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBEYXRlVGltZUZvcm1h
dERhdGVBbmRUaW1lLCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNUb1VUQ1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRl
UHJvdG9GdW5jVG9VVENTdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgY29uc3QgYm9vbCBhc1VUQ1ZhcmlhbnQgPSB0cnVl
OwogICAgIHJldHVybiBmb3JtYXRlRGF0ZUluc3RhbmNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCBEYXRlVGltZUZvcm1hdERhdGVBbmRUaW1lLCBhc1VUQ1ZhcmlhbnQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNUb0lTT1N0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9JU09TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTMzNiwxOSArMzM2LDE5IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY1RvSVNPU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0sIFN0cmluZyhidWZmZXIsIGNo
YXJhY3RlcnNXcml0dGVuKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGVQcm90b0Z1bmNUb0RhdGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVu
Y1RvRGF0ZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBjb25zdCBib29sIGFzVVRDVmFyaWFudCA9IGZhbHNlOwogICAg
IHJldHVybiBmb3JtYXRlRGF0ZUluc3RhbmNlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBEYXRl
VGltZUZvcm1hdERhdGUsIGFzVVRDVmFyaWFudCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvVGltZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihk
YXRlUHJvdG9GdW5jVG9UaW1lU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGNvbnN0IGJvb2wgYXNVVENWYXJpYW50ID0g
ZmFsc2U7CiAgICAgcmV0dXJuIGZvcm1hdGVEYXRlSW5zdGFuY2UoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUsIERhdGVUaW1lRm9ybWF0VGltZSwgYXNVVENWYXJpYW50KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2woSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1RvUHJpbWl0aXZlU3ltYm9sLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0zNzEsNyArMzcxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jVG9QcmltaXRpdmVTeW1ib2woSlNHbG9iYWxPYmplY3QqIGdsb2IKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0aGlzT2JqZWN0LT5v
cmRpbmFyeVRvUHJpbWl0aXZlKGdsb2JhbE9iamVjdCwgdHlwZSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihkYXRlUHJvdG9GdW5jR2V0VGltZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzgzLDcg
KzM4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFRp
bWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHRoaXNEYXRlT2JqLT5pbnRlcm5hbE51bWJlcigpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEZ1bGxZZWFyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMzk4LDcgKzM5OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldEZ1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+eWVhcigpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZ
ZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENGdWxsWWVhciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNDEzLDcgKzQxMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0Z1bGxZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGlt
ZS0+eWVhcigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3Rv
RnVuY0dldE1vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRNb250aCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDI4LDcgKzQyOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1vbnRoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRl
VGltZS0+bW9udGgoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNHZXRVVENNb250aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0
VVRDTW9udGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNb250aChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3Jl
Z29yaWFuRGF0ZVRpbWUtPm1vbnRoKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jR2V0RGF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDU4LDcgKzQ1OCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldERhdGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGdy
ZWdvcmlhbkRhdGVUaW1lLT5tb250aERheSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0RhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY0dldFVUQ0RhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ3Myw3ICs0NzMs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXRl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPm1vbnRoRGF5KCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0RGF5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGRhdGVQcm90b0Z1bmNHZXREYXksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQ4OCw3ICs0
ODgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXREYXko
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPndlZWtEYXkoKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENEYXkoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ0RheSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NTAzLDcgKzUwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y0dldFVUQ0RheShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+d2Vla0RheSgpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldEhvdXJzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRIb3VycywgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtNTE4LDcgKzUxOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldEhvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91cigpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNHZXRVVENIb3VycywgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNTMzLDcgKzUzMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0ZVByb3RvRnVuY0dldFVUQ0hvdXJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihncmVnb3JpYW5EYXRlVGltZS0+aG91
cigpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dl
dE1pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldE1pbnV0ZXMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU0OCw3ICs1NDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRp
bWUtPm1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVBy
b3RvRnVuY0dldFVUQ01pbnV0ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dl
dFVUQ01pbnV0ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU2Myw3ICs1NjMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRVVENNaW51dGVzKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIo
Z3JlZ29yaWFuRGF0ZVRpbWUtPm1pbnV0ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY0dldFNlY29uZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU3OCw3ICs1Nzgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNHZXRTZWNvbmRz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFVUQ1NlY29uZHMsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTU5Myw3ICs1OTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRVVENTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoZ3JlZ29yaWFuRGF0ZVRpbWUtPnNlY29uZCgpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldE1pbGxpU2Vj
b25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC02MTIsNyArNjEyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0TWlsbGlTZWNvbmRzKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KG1zKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNHZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVu
Y0dldFVUQ01pbGxpc2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjMxLDcgKzYzMSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFVUQ01pbGxp
c2Vjb25kcyhKU0dsb2JhbE9iamVjdCogZ2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihzdGF0aWNfY2FzdDxpbnQzMl90PihtcykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZGF0ZVByb3RvRnVuY0dldFRpbWV6b25lT2Zmc2V0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC02NDYsNyArNjQ2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRl
UHJvdG9GdW5jR2V0VGltZXpvbmVPZmZzZXQoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC1ncmVnb3JpYW5EYXRlVGltZS0+dXRjT2Zmc2V0
SW5NaW51dGUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90
b0Z1bmNTZXRUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRUaW1lLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC03NDcsNzcgKzc0Nyw3NyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgc2V0TmV3VmFsdWVGcm9tRGF0ZUFyZ3MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0KSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldE1pbGxpU2Vj
b25kcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0TWlsbGlTZWNvbmRzLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgMSwgV1RGOjpMb2NhbFRpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNTZXRVVENNaWxsaXNlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0
ZVByb3RvRnVuY1NldFVUQ01pbGxpc2Vjb25kcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3VmFsdWVGcm9t
VGltZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDEsIFdURjo6VVRDVGltZSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFNlY29uZHMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFNlY29uZHMsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNl
dE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCAyLCBXVEY6Okxv
Y2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVu
Y1NldFVUQ1NlY29uZHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFVUQ1Nl
Y29uZHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLCAyLCBXVEY6OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRNaW51dGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNTZXRNaW51dGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21UaW1lQXJncyhn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMywgV1RGOjpMb2NhbFRpbWUpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENNaW51dGVzKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENNaW51dGVzLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXRO
ZXdWYWx1ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMywgV1RGOjpVVENU
aW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0
SG91cnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldEhvdXJzLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBzZXROZXdWYWx1ZUZyb21UaW1lQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgNCwg
V1RGOjpMb2NhbFRpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQ
cm90b0Z1bmNTZXRVVENIb3VycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0
VVRDSG91cnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbVRpbWVBcmdzKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCA0LCBXVEY6OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXREYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGVQ
cm90b0Z1bmNTZXREYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZyb21EYXRlQXJncyhnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgMSwgV1RGOjpMb2NhbFRpbWUpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNTZXRVVENEYXRlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENEYXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXROZXdWYWx1ZUZy
b21EYXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMSwgV1RGOjpVVENUaW1lKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jU2V0TW9udGgoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldE1vbnRoLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBzZXRO
ZXdWYWx1ZUZyb21EYXRlQXJncyhnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgMiwgV1RGOjpMb2Nh
bFRpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGVQcm90b0Z1bmNT
ZXRVVENNb250aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jU2V0VVRDTW9udGgs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCAyLCBXVEY6OlVUQ1RpbWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNTZXRGdWxsWWVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9G
dW5jU2V0RnVsbFllYXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHNldE5ld1ZhbHVlRnJvbURhdGVBcmdzKGdsb2Jh
bE9iamVjdCwgY2FsbEZyYW1lLCAzLCBXVEY6OkxvY2FsVGltZSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFVUQ0Z1bGxZZWFyKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGRhdGVQcm90b0Z1bmNTZXRVVENGdWxsWWVhciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc2V0TmV3
VmFsdWVGcm9tRGF0ZUFyZ3MoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIDMsIFdURjo6VVRDVGlt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1NldFll
YXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0ZVByb3RvRnVuY1NldFllYXIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTg2Miw3ICs4NjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGVQcm90b0Z1bmNTZXRZZWFyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRlUHJvdG9GdW5jR2V0WWVhcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihkYXRlUHJvdG9GdW5jR2V0WWVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODc5LDcg
Kzg3OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY0dldFll
YXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKGdyZWdvcmlhbkRhdGVUaW1lLT55ZWFyKCkgLSAxOTAwKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0ZVByb3RvRnVuY1RvSlNPTihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihkYXRlUHJvdG9GdW5jVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmgKaW5kZXggZWVhYWQz
N2NiNGE1YjZjNTYxN2I5NzYxNzI5YTAwNjI1OTczOWU3ZS4uNTc4Y2QyODUyMzhjZDZlMjJhNDc0
NzQ0MDZkYWI1OGU0ODA3NDY0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuaApAQCAtNTcsNiArNTcsNiBAQCBjbGFzcyBEYXRlUHJvdG90eXBlIGZp
bmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBkYXRlUHJvdG9GdW5jR2V0VGltZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRlUHJvdG9GdW5jR2V0VGltZSk7CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNv
bnN0cnVjdG9yLmNwcAppbmRleCBiYzBhNjIyNjI2MWNlNGRkYTdjOTc3MDVhYjAwNGQwZDYxOWUz
Y2VlLi4wZjJmNWEzMTg0MDJmYmI3YzdkODgwMmI2ZDc4NDJlZmU0MDZjODQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcApAQCAt
MzAsOCArMzAsOCBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRXJy
b3JDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBFcnJvckNvbnN0cnVjdG9yOjpzX2lu
Zm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoRXJyb3JDb25zdHJ1Y3RvcikgfTsKIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dEVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxFcnJvckNvbnN0cnVjdG9yKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IpOwogCiBF
cnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxFcnJvckNv
bnN0cnVjdG9yLCBjb25zdHJ1Y3RFcnJvckNvbnN0cnVjdG9yKQpAQCAtNDgsNyArNDgsNyBAQCB2
b2lkIEVycm9yQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgRXJyb3JQcm90b3R5
cGUqIGVycm9yUHJvdG90eXBlKQogCiAvLyBFQ01BIDE1LjkuMwogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEVycm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0RXJyb3JDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjMs
NyArNjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEVycm9yQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGVycm9yU3RydWN0dXJlLCBtZXNzYWdlLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2Up
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEVycm9yQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEVycm9yQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1
ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9y
U3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT5lcnJvclN0cnVjdHVyZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCmluZGV4IGUxYWI1NWJh
NGNmNGRhMGI0YzdhNGI1NjA0YWFkNTA4MWI4NDkxYTUuLmI4YzYyZDM3NTk5NTU0ZWQ1Nzc1ZDNm
Njk5NGJiOWExNjlhYzIxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvclByb3RvdHlwZS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBT
VEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoRXJyb3JQcm90b3R5cGVCYXNl
KTsKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShFcnJvclByb3RvdHlw
ZSk7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJvdG9GdW5j
VG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGVycm9yUHJvdG9GdW5jVG9TdHJpbmcpOwogCiB9CiAKQEAgLTY3LDcg
KzY3LDcgQEAgRXJyb3JQcm90b3R5cGU6OkVycm9yUHJvdG90eXBlKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25z
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAvLyBFQ01BLTI2MiA1LjEsIDE1LjExLjQu
NAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBlcnJvclByb3RvRnVuY1RvU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGVycm9yUHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ZpbmFsaXph
dGlvblJlZ2lzdHJ5Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDdjNDM0MjkwYzRk
MDQ4NTA2NWQyYjIwOWRkNzhlNjdkNGJjMThlNS4uYmFiZTRkZTE5Y2EzM2Y5ZGE1ODI4MjlhOTkx
MGM3ZDVmYjBhM2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ1
LDIyICs0NSwyMiBAQCB2b2lkIEZpbmFsaXphdGlvblJlZ2lzdHJ5Q29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKFZNJiB2bSwgRmluYWxpemF0aW9uUmVnaXN0cgogICAgIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwg
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRmluYWxpemF0aW9uUmVnaXN0cnkoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdEZpbmFsaXphdGlvblJlZ2lzdHJ5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsRmluYWxpemF0aW9uUmVnaXN0
cnkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RmluYWxpemF0
aW9uUmVnaXN0cnkpOwogCiBGaW5hbGl6YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yOjpGaW5hbGl6
YXRpb25SZWdpc3RyeUNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeSwgY29uc3Ry
dWN0RmluYWxpemF0aW9uUmVnaXN0cnkpCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxGaW5hbGl6YXRpb25SZWdpc3RyeShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxGaW5h
bGl6YXRpb25SZWdpc3RyeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0
aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUsICJGaW5hbGl6YXRpb25SZWdpc3RyeSIpKTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RmluYWxpemF0aW9uUmVnaXN0cnksIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Zp
bmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ZpbmFsaXphdGlvblJlZ2lzdHJ5UHJvdG90eXBlLmNwcAppbmRleCA2MTFmOWY4ZjY5
MzAxN2RkZjM5ZjhmYjQ3NDU4NDkzZGM5OTBiODgwLi5mOGIxZjdlZjQ0OWEwNTYzMGRlMjU1NmUz
NWNkMzA0YjZhY2E1NmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GaW5hbGl6YXRpb25SZWdpc3RyeVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGUuY3BwCkBAIC0zNCw4
ICszNCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gRmluYWxpemF0aW9u
UmVnaXN0cnlQcm90b3R5cGU6OnNfaW5mbyA9IHsgIkZpbmFsaXphdGlvblJlZ2lzdHJ5IiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGaW5hbGl6
YXRpb25SZWdpc3RyeVByb3RvdHlwZSkgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlSZWdpc3RlcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
cHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJlZ2lzdGVyKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNG
aW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5VW5yZWdpc3Rlcik7CiAKIHZvaWQg
RmluYWxpemF0aW9uUmVnaXN0cnlQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKQEAgLTY1LDcgKzY1LDcgQEAgQUxXQVlTX0lO
TElORSBzdGF0aWMgSlNGaW5hbGl6YXRpb25SZWdpc3RyeSogZ2V0RmluYWxpemF0aW9uUmVnaXN0
cnkoVk0mIHZtLCBKU0cKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5UmVnaXN0ZXIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg5LDcgKzg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBwcm90b0Z1bmNGaW5hbGl6YXRpb25SZWdpc3RyeVJlZ2lzdGVyKEpTR2xvYmFsT2Jq
ZWMKICAgICByZXR1cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jRmluYWxpemF0aW9uUmVnaXN0cnlVbnJlZ2lzdGVyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY0ZpbmFsaXphdGlvblJlZ2lzdHJ5VW5yZWdpc3Rl
ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBjYjNhOGUzZmRiNjI3Y2UzZWJl
M2E1YzA4NTMwMTNlOWZkNWE2M2M5Li4wMzk4NWM1OTU2NzM0NDUyMGNlZWRhYjQ2ZWFiYjQ2MjJk
MzQ0N2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlv
bkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzcsMTQgKzM3LDE3IEBAIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xh
c3NJbmZvIEZ1bmN0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6
OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShGdW5jdGlvbkNv
bnN0cnVjdG9yKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvbkNvbnN0cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhGdW5jdGlvbkNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3Qg
YXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0RnVu
Y3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9uQ29uc3RydWN0aW9u
TW9kZTo6RnVuY3Rpb24sIGNhbGxGcmFtZS0+bmV3VGFyZ2V0KCkpKTsKIH0KIAogLy8gRUNNQSAx
NS4zLjEgVGhlIEZ1bmN0aW9uIENvbnN0cnVjdG9yIENhbGxlZCBhcyBhIEZ1bmN0aW9uCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRnVuY3Rpb25Db25zdHJ1Y3RvciwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBcmdMaXN0
IGFyZ3MoY2FsbEZyYW1lKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbnN0cnVjdEZ1
bmN0aW9uKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBhcmdzKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggYTZmMGQ1
YTM4YWI0ZTA4NTZjNjZjMDI1ZDExNGEyMGNmNGI2MmQ5Ny4uMzMyOGRmNmNjMzk3YTA1YzMwMWE1
OWI2YjljY2U4MjI0MDlmYzNmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtMzIsMTAgKzMyLDExIEBAIFNUQVRJQ19B
U1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShGdW5jdGlvblByb3RvdHlwZSk7CiAKIGNv
bnN0IENsYXNzSW5mbyBGdW5jdGlvblByb3RvdHlwZTo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEZ1bmN0
aW9uUHJvdG90eXBlKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByb3RvRnVuY1RvU3RyaW5n
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxGdW5jdGlvblByb3RvdHlw
ZSk7CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcHJvcGVydGllcy1vZi10aGUt
ZnVuY3Rpb24tcHJvdG90eXBlLW9iamVjdAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbEZ1bmN0aW9uUHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsRnVuY3Rpb25Qcm90b3R5cGUsIChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CkBAIC03MSw3ICs3Miw3IEBAIHZvaWQgRnVuY3Rpb25Qcm90b3R5cGU6
OmluaXRSZXN0cmljdGVkUHJvcGVydGllcyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
CiAgICAgcHV0RGlyZWN0Tm9uSW5kZXhBY2Nlc3NvcldpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5hcmd1bWVudHMsIGVycm9yR2V0dGVyU2V0dGVyLCBQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6QWNjZXNzb3IpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJhdG9y
RnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9H
ZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAppbmRleCBkYTRhM2FkOWE0YTZjYzU2OWRj
NDFjNGU4ZGI2ZDAzNTVkNzBlZjI0Li43ZmEzYjIxMTYyMzY4N2MxYTk5YjM1NTE4ZDJiNGQwNDI3
ZDQ3NzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmF0
b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9HZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzYsMTMgKzM2LDE2IEBA
IFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShHZW5lcmF0b3JGdW5jdGlv
bkNvbnN0cnVjdG9yKTsKIAogY29uc3QgQ2xhc3NJbmZvIEdlbmVyYXRvckZ1bmN0aW9uQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIkdlbmVyYXRvckZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHZW5lcmF0b3JGdW5jdGlvbkNvbnN0
cnVjdG9yKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsR2Vu
ZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNh
bGxHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNvbnN0cnVjdEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IpOworCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEdlbmVyYXRvckZ1bmN0aW9uQ29uc3RydWN0b3IsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgQXJnTGlzdCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShj
b25zdHJ1Y3RGdW5jdGlvbihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgYXJncywgRnVuY3Rpb25D
b25zdHJ1Y3Rpb25Nb2RlOjpHZW5lcmF0b3IpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0R2VuZXJhdG9yRnVuY3Rpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RHZW5lcmF0b3JGdW5jdGlvbkNvbnN0cnVjdG9yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
Y29uc3RydWN0RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFyZ3MsIEZ1bmN0aW9u
Q29uc3RydWN0aW9uTW9kZTo6R2VuZXJhdG9yLCBjYWxsRnJhbWUtPm5ld1RhcmdldCgpKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0LmNwcAppbmRleCBhODVmMzNiYjZkMjk0MmY4YjE2NzMx
MWI3OTIzMDU4MmNhMDE0OTdiLi5kMDJjMmM2OGVkN2IwM2VjZmQ4NTMyZjQ2NmYzYzMzMDE0ZDYy
ZWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0TG9nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVj
dExvZyk7CiAKIH0KIApAQCAtODAsNyArODAsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbk9iamVjdDo6ZGlzYWJsZShWTSYgdm0pCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3RM
b2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uT2JqZWN0TG9n
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDQ0ZDUyMzM4YWFm
ZGI1ZDA0Y2FkNTczNDk1ZDE4ZWY4NzNkOTVjNi4uYmFiYmE1MWM0NjA3ZGFkMmNhZDY3NmZjOTc3
OTU1YzFhNTNhNTFhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bENvbGxhdG9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxDb2xsYXRvckNvbnN0cnVjdG9yLmNwcApAQCAtMzcsNyArMzcsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKElu
dGxDb2xsYXRvckNvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YpOwogCiB9CiAK
QEAgLTQ1LDggKzQ1LDggQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc08KIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsQ29sbGF0
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxDb2xsYXRvcihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEludGxDb2xsYXRv
cik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsQ29sbGF0
b3IpOwogCiBjb25zdCBDbGFzc0luZm8gSW50bENvbGxhdG9yQ29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgJmNvbGxhdG9yQ29uc3Ry
dWN0b3JUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShJbnRsQ29sbGF0b3JDb25z
dHJ1Y3RvcikgfTsKIApAQCAtODAsNyArODAsNyBAQCB2b2lkIEludGxDb2xsYXRvckNvbnN0cnVj
dG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxDb2xsYXRvclByb3RvdHlwZSogY29sbAog
ICAgIGNvbGxhdG9yUHJvdG90eXBlLT5wdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIHRoaXMsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bENvbGxhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdEludGxDb2xsYXRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAzLDcgKzEw
Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxD
b2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjb2xsYXRvcik7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxJbnRsQ29sbGF0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxDb2xsYXRvciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICAvLyAxMC4xLjIgSW50bC5Db2xsYXRvciAoW2xvY2FsZXMgWywgb3B0aW9uc11dKSAoRUNNQS00
MDIgMi4wKQogICAgIC8vIDEuIElmIE5ld1RhcmdldCBpcyB1bmRlZmluZWQsIGxldCBuZXdUYXJn
ZXQgYmUgdGhlIGFjdGl2ZSBmdW5jdGlvbiBvYmplY3QsIGVsc2UgbGV0IG5ld1RhcmdldCBiZSBO
ZXdUYXJnZXQuCkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEludGxDb2xsYXRvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNvbGxhdG9yKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVz
T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bENvbGxhdG9yQ29uc3RydWN0b3JGdW5jU3VwcG9y
dGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAppbmRleCA2YTc5
ODNkOGViMTA0ZmU2NTBkZjdlYmQ3Mjk2NzQwOWNmODBjNDNjLi4wNGNjZGMwNmVlMzM0MmY1ODg2
ZWEzOTlhZDY0YTFjODNjNGM0ZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsQ29sbGF0b3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclByb3RvdHlwZS5jcHAKQEAgLTMzLDggKzMzLDkgQEAK
IAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxDb2xsYXRvclByb3RvdHlwZUdldHRlckNvbXBhcmUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xsYXRv
clByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxDb2xsYXRvclByb3RvdHlw
ZUdldHRlckNvbXBhcmUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bENv
bGxhdG9yUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihJbnRsQ29sbGF0b3JGdW5jQ29tcGFyZSk7CiAKIH0KIApAQCAtNzUsNyAr
NzYsNyBAQCB2b2lkIEludGxDb2xsYXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogICAgIEpTQ19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsQ29sbGF0b3JGdW5jQ29tcGFyZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihJbnRsQ29sbGF0b3JGdW5jQ29tcGFyZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTA0LDcgKzEwNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxDb2xsYXRvckZ1bmNDb21wYXJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY29sbGF0b3ItPmNvbXBh
cmVTdHJpbmdzKGdsb2JhbE9iamVjdCwgeFZpZXdXaXRoU3RyaW5nLnZpZXcsIHlWaWV3V2l0aFN0
cmluZy52aWV3KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxDb2xs
YXRvclByb3RvdHlwZUdldHRlckNvbXBhcmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bENvbGxh
dG9yUHJvdG90eXBlR2V0dGVyQ29tcGFyZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTMzLDcg
KzEzNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bENvbGxhdG9yUHJvdG90
eXBlR2V0dGVyQ29tcGFyZShKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGJvdW5kQ29tcGFyZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50
bENvbGxhdG9yUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihJbnRsQ29sbGF0b3JQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjM4ODIxMWEyN2RjNGIy
YmE5NmNhZTNkOThmMTA2MDQzN2ViZDkyNy4uZDk1YmYxYjNiYTVkODkxZDUzMWYzN2NjODQ2Y2Rl
N2RkMGRmNjRiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3Vw
cG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNT
dXBwb3J0ZWRMb2NhbGVzT2YpOwogCiB9CiAKQEAgLTY0LDggKzY0LDggQEAgU3RydWN0dXJlKiBJ
bnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QKICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhJbnRlcm5hbEZ1bmN0aW9uVHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsSW50bERhdGVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRpbWVGb3Jt
YXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0KTsKIAogSW50bERhdGVUaW1l
Rm9ybWF0Q29uc3RydWN0b3I6OkludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiB2bSwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1
cmUsIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQsIGNvbnN0cnVjdEludGxEYXRlVGltZUZvcm1hdCkK
QEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm8KICAgICBwdXREaXJlY3RX
aXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBkYXRlVGlt
ZUZvcm1hdFByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsRGF0ZVRp
bWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bERhdGVUaW1lRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGF0ZVRpbWVGb3JtYXQpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bERhdGVUaW1lRm9y
bWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8g
MTIuMS4yIEludGwuRGF0ZVRpbWVGb3JtYXQgKFtsb2NhbGVzIFssIG9wdGlvbnNdXSkgKEVDTUEt
NDAyIDIuMCkKICAgICAvLyAxLiBJZiBOZXdUYXJnZXQgaXMgdW5kZWZpbmVkLCBsZXQgbmV3VGFy
Z2V0IGJlIHRoZSBhY3RpdmUgZnVuY3Rpb24gb2JqZWN0LCBlbHNlIGxldCBuZXdUYXJnZXQgYmUg
TmV3VGFyZ2V0LgpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxJbnRsRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAg
ICAgfSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxEYXRlVGltZUZv
cm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUuY3BwCmluZGV4IDNkNzA5Nzdk
OWExOGUzYjc0ZDNlMDEyZmY0YWQyNGZhMjcwYjFjM2IuLjMzM2JmZGQ1NWRhMmJkZTVjY2ZlZDhl
MDQ4YTgzMzkwN2I4NTE1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmNwcApAQCAtMzYsMTAg
KzM2LDExIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRSYW5nZShKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxEYXRlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxE
YXRlVGltZUZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2Up
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERhdGVUaW1lRm9ybWF0UHJv
dG90eXBlRnVuY0Zvcm1hdFRvUGFydHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRGdW5jRm9ybWF0
RGF0ZVRpbWUpOwogCiB9CiAKQEAgLTgyLDcgKzgzLDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKICAgICBKU0NfVE9fU1RSSU5HX1RB
R19XSVRIT1VUX1RSQU5TSVRJT04oKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0RnVuY0Zvcm1hdERhdGVUaW1lKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKEludGxEYXRlVGltZUZvcm1hdEZ1bmNGb3JtYXREYXRlVGltZSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTA0LDcgKzEwNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxEYXRlVGltZUZvcm1hdEZ1bmNGb3JtYXREYXRlVGltZShKU0dsb2JhCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoZm9ybWF0LT5mb3Jt
YXQoZ2xvYmFsT2JqZWN0LCB2YWx1ZSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMzQsNyArMTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJvdW5kRm9ybWF0KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0
VG9QYXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVG
dW5jRm9ybWF0VG9QYXJ0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTYxLDcgKzE2Miw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBl
RnVuY0Zvcm1hdFRvUGFydHMoSlNHbG9iCiB9CiAKIC8vIGh0dHA6Ly90YzM5LmVzL3Byb3Bvc2Fs
LWludGwtRGF0ZVRpbWVGb3JtYXQtZm9ybWF0UmFuZ2UvI3NlYy1pbnRsLmRhdGV0aW1lZm9ybWF0
LnByb3RvdHlwZS5mb3JtYXRSYW5nZQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
RGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFJhbmdlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xODcsNyArMTg4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0UmFuZ2UoSlNHbG9iYWwKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShkYXRlVGltZUZvcm1h
dC0+Zm9ybWF0UmFuZ2UoZ2xvYmFsT2JqZWN0LCBzdGFydERhdGUsIGVuZERhdGUpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBl
RnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsRGF0ZVRpbWVGb3Jt
YXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29u
c3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERpc3BsYXlO
YW1lc0NvbnN0cnVjdG9yLmNwcAppbmRleCA1ZTM1ZmU2N2ZjNjkzYTcyYTZiODgyNmYyZGFkYjAw
YTlmYzZlOTJlLi4xYjk0N2JhY2RlN2MyNDk0ZDhkMDgzMjYzZGExNTU5MDk0YzFjNWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlzcGxheU5hbWVzQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEaXNw
bGF5TmFtZXNDb25zdHJ1Y3Rvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRsRGlzcGxheU5h
bWVzQ29uc3RydWN0b3IpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3JTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxE
aXNwbGF5TmFtZXNDb25zdHJ1Y3RvclN1cHBvcnRlZExvY2FsZXNPZik7CiAKIH0KIApAQCAtNjIs
OCArNjIsOCBAQCBTdHJ1Y3R1cmUqIEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5j
dGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsRGlzcGxheU5hbWVzKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxEaXNwbGF5TmFtZXMpOwog
CiBJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3I6OkludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3Rv
cihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJl
LCBjYWxsSW50bERpc3BsYXlOYW1lcywgY29uc3RydWN0SW50bERpc3BsYXlOYW1lcykKQEAgLTc4
LDcgKzc4LDcgQEAgdm9pZCBJbnRsRGlzcGxheU5hbWVzQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSW50bERpc3BsYXlOYW1lc1Byb3RvdHkKIH0KIAogLy8gaHR0cHM6Ly90YzM5
LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkRpc3BsYXlOYW1lcwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bERpc3BsYXlOYW1lcyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihjb25zdHJ1Y3RJbnRsRGlzcGxheU5hbWVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05
OCw3ICs5OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dEludGxEaXNwbGF5TmFtZXMoSlNHbG9iYWxPYmplY3QqIGdsCiB9CiAKIC8vIGh0dHBzOi8vdGMz
OS5lcy9lY21hNDAyLyNzZWMtSW50bC5EaXNwbGF5TmFtZXMKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGlzcGxheU5hbWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxE
aXNwbGF5TmFtZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsRGlzcGxheU5hbWVzKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fu
bm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJEaXNw
bGF5TmFtZXMiKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERpc3Bs
YXlOYW1lc0NvbnN0cnVjdG9yU3VwcG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KEludGxEaXNwbGF5TmFtZXNDb25zdHJ1Y3RvclN1cHBvcnRlZExvY2FsZXNPZiwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bERpc3BsYXlOYW1lc1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlLmNwcAppbmRleCBkYThlYzgwZjQyNTM1ZmZkNjBj
OTM5OTc5NDdhMjAyZGEzZmIzMTczLi45NWU2ZGQ5NzZlNDc1ZThjMmZkM2UzZTNiYzI5ZDliOGI1
MmU0YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGlz
cGxheU5hbWVzUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1l
c3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERp
c3BsYXlOYW1lc1Byb3RvdHlwZUZ1bmNPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bERpc3BsYXlOYW1lc1Byb3Rv
dHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxEaXNwbGF5TmFtZXNQcm90b3R5cGVG
dW5jT2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bERpc3BsYXlOYW1l
c1Byb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOwogCiB9CiAKQEAgLTc0LDcgKzc0LDcgQEAg
dm9pZCBJbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiB9
CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLWRpc3BsYXluYW1lcy8jc2VjLUlu
dGwuRGlzcGxheU5hbWVzLnByb3RvdHlwZS5vZgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY09mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKElu
dGxEaXNwbGF5TmFtZXNQcm90b3R5cGVGdW5jT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg3
LDcgKzg3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsRGlzcGxheU5hbWVz
UHJvdG90eXBlRnVuY09mKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogLy8gaHR0cHM6Ly90YzM5
LmVzL3Byb3Bvc2FsLWludGwtZGlzcGxheW5hbWVzLyNzZWMtSW50bC5EaXNwbGF5TmFtZXMucHJv
dG90eXBlLnJlc29sdmVkT3B0aW9ucwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
RGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsRGlzcGxheU5hbWVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bExvY2FsZUNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxMb2NhbGVDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMTlmNjEyMTE0ZGZhZmY5ZDRmMWJkYjJh
ZDY1M2M5ODAwZTU0YWVlNy4uMThjNGNiYTczOWE3OTRhZjUzMzQxOGNkNDc4YWI1NjVjNjlkZTk4
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bExvY2FsZUNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9j
YWxlQ29uc3RydWN0b3IuY3BwCkBAIC00OCw4ICs0OCw4IEBAIFN0cnVjdHVyZSogSW50bExvY2Fs
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxM
b2NhbGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxMb2NhbGUoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsTG9jYWxl
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxMb2NhbGUp
OwogCiBJbnRsTG9jYWxlQ29uc3RydWN0b3I6OkludGxMb2NhbGVDb25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsSW50
bExvY2FsZSwgY29uc3RydWN0SW50bExvY2FsZSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBJbnRs
TG9jYWxlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bExvY2FsZVByb3Rv
dHlwZSogbG9jYWxlUHIKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRs
LkxvY2FsZQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50
bExvY2FsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsTG9jYWxlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnN0cnVjdEludGxMb2NhbGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiB9
CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTG9jYWxlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bEludGxMb2NhbGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bExvY2FsZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTG9jYWxlUHJvdG90eXBlLmNwcAppbmRleCA4MGUwNzA1MDNkZWM5MjFiNjQy
YTc3ZTQyYTc5NTA3MjE4ODI2ZmJkLi4xZTFlZWI4NjMzNWZiNjA5NjViYTljMTAzZDc4NjQ5NzI1
N2EwYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTG9j
YWxlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
TG9jYWxlUHJvdG90eXBlLmNwcApAQCAtMzEsMTkgKzMxLDE5IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90
eXBlRnVuY01heGltaXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY01pbmltaXpl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRs
TG9jYWxlUHJvdG90eXBlR2V0dGVyQmFzZU5hbWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5
cGVHZXR0ZXJDYWxlbmRhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhc2VG
aXJzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2Fs
ZVByb3RvdHlwZUdldHRlck51bWVyaWMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0
ZXJOdW1iZXJpbmdTeXN0ZW0oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5n
dWFnZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SW50bExvY2FsZVByb3RvdHlwZUdldHRlclJlZ2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlw
ZUZ1bmNNYXhpbWl6ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9j
YWxlUHJvdG90eXBlRnVuY01pbmltaXplKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKEludGxMb2NhbGVQcm90b3R5cGVGdW5jVG9TdHJpbmcpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckJhc2VOYW1lKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYWxl
bmRhcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90
eXBlR2V0dGVyQ2FzZUZpcnN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKElu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDb2xsYXRpb24pOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJp
Yyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTnVtYmVyaW5nU3lzdGVtKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJMYW5ndWFnZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyU2NyaXB0KTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24p
OwogCiB9CiAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBJbnRsTG9jYWxlUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMt
SW50bC5Mb2NhbGUucHJvdG90eXBlLm1heGltaXplCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWF4aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
SW50bExvY2FsZVByb3RvdHlwZUZ1bmNNYXhpbWl6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTEyLDcgKzExMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVBy
b3RvdHlwZUZ1bmNNYXhpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIC8vIGh0dHBzOi8v
dGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLm1pbmltaXplCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVGdW5jTWluaW1pemUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5pbWl6ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTI4LDcgKzEyOCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNNaW5pbWl6ZShKU0dsb2JhbE9iamVjdCog
Z2xvCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJv
dG90eXBlLnRvU3RyaW5nCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQ
cm90b3R5cGVGdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3Rv
dHlwZUZ1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQyLDcgKzE0Miw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUZ1bmNUb1N0
cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAy
LyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLmJhc2VOYW1lCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQmFzZU5hbWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIElu
dGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJCYXNlTmFtZShKU0dsb2JhbE9iamVjdCogZwogfQogCiAv
LyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5jYWxl
bmRhcgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0
dGVyQ2FsZW5kYXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRl
ckNhbGVuZGFyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyQ2FsZW5kYXIo
SlNHbG9iYWxPYmplY3QqIGcKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1J
bnRsLkxvY2FsZS5wcm90b3R5cGUuY2FzZUZpcnN0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJDYXNlRmlyc3QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTg0LDcgKzE4NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExv
Y2FsZVByb3RvdHlwZUdldHRlckNhc2VGaXJzdChKU0dsb2JhbE9iamVjdCoKIH0KIAogLy8gaHR0
cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUuY29sbGF0aW9u
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJD
b2xsYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNv
bGxhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk4LDcgKzE5OCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlckNvbGxhdGlvbihK
U0dsb2JhbE9iamVjdCoKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRs
LkxvY2FsZS5wcm90b3R5cGUuaG91ckN5Y2xlCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJIb3VyQ3ljbGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
SW50bExvY2FsZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjEyLDcgKzIxMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2Fs
ZVByb3RvdHlwZUdldHRlckhvdXJDeWNsZShKU0dsb2JhbE9iamVjdCoKIH0KIAogLy8gaHR0cHM6
Ly90YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLkxvY2FsZS5wcm90b3R5cGUubnVtZXJpYwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJp
YyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtZXJpYywg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI1LDcgKzIyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgSW50bExvY2FsZVByb3RvdHlwZUdldHRlck51bWVyaWMoSlNHbG9iYWxPYmpl
Y3QqIGdsCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUu
cHJvdG90eXBlLm51bWJlcmluZ1N5c3RlbQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJ
bnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTnVtYmVyaW5nU3lzdGVtKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0sIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTIzOSw3ICsyMzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJOdW1iZXJpbmdTeXN0ZW0oSlNHbG9iYWxPYgogfQog
CiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuTG9jYWxlLnByb3RvdHlwZS5s
YW5ndWFnZQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBl
R2V0dGVyTGFuZ3VhZ2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bExvY2FsZVByb3RvdHlwZUdl
dHRlckxhbmd1YWdlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTMsNyArMjUzLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyTGFuZ3Vh
Z2UoSlNHbG9iYWxPYmplY3QqIGcKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWE0MDIvI3Nl
Yy1JbnRsLkxvY2FsZS5wcm90b3R5cGUuc2NyaXB0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJTY3JpcHQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
SW50bExvY2FsZVByb3RvdHlwZUdldHRlclNjcmlwdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MjY3LDcgKzI2Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bExvY2FsZVBy
b3RvdHlwZUdldHRlclNjcmlwdChKU0dsb2JhbE9iamVjdCogZ2xvCiB9CiAKIC8vIGh0dHBzOi8v
dGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5Mb2NhbGUucHJvdG90eXBlLnJlZ2lvbgotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTG9jYWxlUHJvdG90eXBlR2V0dGVyUmVnaW9uKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKEludGxMb2NhbGVQcm90b3R5cGVHZXR0ZXJSZWdpb24sIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuY3BwCmluZGV4IGJjOGE1NTczODZh
YmYyNWFlOWQxMGY1NGE1NzkwNjI2M2I1NGMwMjIuLjg5NWJiNDdhYTViNTkwYzMxMGM1MTU3YTRl
MDdjNGE1ZmU4ZGIxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJV
Q1RJQkxFKEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0
ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0
ZWRMb2NhbGVzT2YpOwogCiB9CiAKQEAgLTY0LDggKzY0LDggQEAgU3RydWN0dXJlKiBJbnRsTnVt
YmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2Jq
ZWN0KgogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90
b3R5cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGlu
Zm8oKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRs
TnVtYmVyRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsSW50bE51bWJlckZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zdHJ1Y3RJbnRsTnVtYmVyRm9ybWF0KTsKIAogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9y
OjpJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbEludGxOdW1iZXJG
b3JtYXQsIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQpCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQg
SW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxO
dW1iZXJGb3JtYXRQcm90b3R5CiAgICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZt
LnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgbnVtYmVyRm9ybWF0UHJvdG90eXBlLCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0SW50bE51bWJlckZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAx
LDcgKzEwMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVj
dEludGxOdW1iZXJGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShudW1iZXJGb3JtYXQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjYWxsSW50bE51bWJlckZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSW50
bE51bWJlckZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICAvLyAxMS4xLjIgSW50bC5OdW1iZXJGb3JtYXQgKFtsb2NhbGVz
IFssIG9wdGlvbnNdXSkgKEVDTUEtNDAyIDIuMCkKICAgICAvLyAxLiBJZiBOZXdUYXJnZXQgaXMg
dW5kZWZpbmVkLCBsZXQgbmV3VGFyZ2V0IGJlIHRoZSBhY3RpdmUgZnVuY3Rpb24gb2JqZWN0LCBl
bHNlIGxldCBuZXdUYXJnZXQgYmUgTmV3VGFyZ2V0LgpAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsTnVtYmVyRm9ybWF0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgfSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2Yo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBv
cnRlZExvY2FsZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE51bWJlckZvcm1hdFByb3RvdHlwZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcApp
bmRleCBkOTk5Yzc0MzUyZWM5ZDBkMzk3NTEyNTk4OWNlM2I5YWI3OWUwOWU4Li4yZWU5ODI5MzRi
NDMwNGY4OTk4OWZhOWUyM2FlMDZjMDljZDBlNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlLmNwcApA
QCAtMzQsOSArMzQsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGVHZXR0ZXJGb3JtYXQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3JtYXRUb1Bh
cnRzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxOdW1iZXJGb3JtYXRQ
cm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKEludGxOdW1iZXJGb3JtYXRGdW5jRm9ybWF0KTsKIAogfQogCkBAIC03OSw3ICs4MCw3
IEBAIHZvaWQgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
KQogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLW51bWJlci1mb3JtYXQtZnVu
Y3Rpb25zCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9y
bWF0RnVuY0Zvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVyRm9ybWF0RnVuY0Zv
cm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTA3LDcgKzEwOCw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxOdW1iZXJGb3JtYXRGdW5jRm9ybWF0KEpTR2xv
YmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShudW1iZXJGb3JtYXQtPmZv
cm1hdChnbG9iYWxPYmplY3QsIHZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUdldHRlckZvcm1hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xMzYsNyArMTM3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlR2V0dGVyRm9ybWF0KEpTR2xvYmFsT2JqZWMKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGJvdW5kRm9ybWF0KTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFy
dHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bE51bWJlckZvcm1hdFByb3RvdHlwZUZ1bmNGb3Jt
YXRUb1BhcnRzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTUsNyArMTU2LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1h
dFRvUGFydHMoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6
OmVuY29kZShudW1iZXJGb3JtYXQtPmZvcm1hdFRvUGFydHMoZ2xvYmFsT2JqZWN0LCB2YWx1ZSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsTnVtYmVyRm9ybWF0UHJv
dG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsTnVtYmVy
Rm9ybWF0UHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCBmYTUz
M2MzMTQwZTg3YzI4NTg3MGNiMzQ1ZDBjNWM2ODE2NWE2ZTk0Li45OTdkOTE3YjJlNTNmNWFkOWUx
YTY5NTQwYjgyMjI3OTNmYTVhYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsT2JqZWN0LmNwcApAQCAtNzAsNyArNzAsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxPYmplY3QpOwogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNh
bExvY2FsZXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGludGxPYmplY3RGdW5jR2V0Q2Fub25pY2FsTG9jYWxlcyk7CiAKIHN0
YXRpYyBKU1ZhbHVlIGNyZWF0ZUNvbGxhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCog
b2JqZWN0KQogewpAQCAtMTQwMCw3ICsxNDAwLDcgQEAgYm9vbCBpc1dlbGxGb3JtZWRDdXJyZW5j
eUNvZGUoU3RyaW5nVmlldyBjdXJyZW5jeSkKICAgICByZXR1cm4gY3VycmVuY3kubGVuZ3RoKCkg
PT0gMyAmJiBjdXJyZW5jeS5pc0FsbFNwZWNpYWxDaGFyYWN0ZXJzPGlzQVNDSUlBbHBoYT4oKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBpbnRsT2JqZWN0RnVuY0dldENhbm9u
aWNhbExvY2FsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaW50bE9iamVjdEZ1bmNHZXRDYW5vbmlj
YWxMb2NhbGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIC8vIEludGwuZ2V0Q2Fub25pY2FsTG9jYWxlcyhsb2NhbGVzKQogICAg
IC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTQwMi8jc2VjLWludGwuZ2V0Y2Fub25pY2Fs
bG9jYWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFBs
dXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3IuY3BwCmluZGV4IDk5ZDA4ODJjZmJhZGYwYmU1YjQ5
YTI1ODk1OGJjZmRkNzIzYjc1MjAuLmFmMzlhOTY2M2FmMDc5YzVkMjc4YzI3ZjQ0NjhjNTY1ZDFl
MzY0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQbHVy
YWxSdWxlc0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9JbnRsUGx1cmFsUnVsZXNDb25zdHJ1Y3Rvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShJbnRs
UGx1cmFsUnVsZXNDb25zdHJ1Y3Rvcik7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNPZihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mKTsK
IAogfQogCkBAIC02NCw4ICs2NCw4IEBAIFN0cnVjdHVyZSogSW50bFBsdXJhbFJ1bGVzQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0
dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUlu
Zm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxQbHVyYWxSdWxlcyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0SW50bFBsdXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSW50bFBsdXJhbFJ1
bGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEludGxQbHVy
YWxSdWxlcyk7CiAKIEludGxQbHVyYWxSdWxlc0NvbnN0cnVjdG9yOjpJbnRsUGx1cmFsUnVsZXND
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxG
dW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsSW50bFBsdXJhbFJ1bGVzLCBjb25zdHJ1Y3RJbnRs
UGx1cmFsUnVsZXMpCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSW50bFBsdXJhbFJ1bGVzQ29uc3Ry
dWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlCiAg
ICAgcGx1cmFsUnVsZXNQcm90b3R5cGUtPnB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2
bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgdGhpcywgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0SW50bFBsdXJhbFJ1bGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0x
MDAsNyArMTAwLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3Ry
dWN0SW50bFBsdXJhbFJ1bGVzKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHBsdXJhbFJ1bGVzKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY2FsbEludGxQbHVyYWxSdWxlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsUGx1cmFsUnVs
ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNhbGxJbnRsUGx1cmFsUnVsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxs
ZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJQbHVyYWxSdWxlcyIp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUGx1cmFsUnVsZXNDb25z
dHJ1Y3RvckZ1bmNTdXBwb3J0ZWRMb2NhbGVzT2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFBs
dXJhbFJ1bGVzQ29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09mLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1
cmFsUnVsZXNQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bFBsdXJhbFJ1bGVzUHJvdG90eXBlLmNwcAppbmRleCBiY2ZhOTQ5Y2VjOTcxNmViODM1OTIxMmQw
YzJkODVlMjdlNzhiZWJjLi41MzI5NjEwN2Y0MTQ0NDhmMzZlNzQxMjZmMGMwMDgwNWU2ZjllZjBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUGx1cmFsUnVs
ZXNQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxQ
bHVyYWxSdWxlc1Byb3RvdHlwZS5jcHAKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxl
c1Byb3RvdHlwZUZ1bmNTZWxlY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1
bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzUHJv
dG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyk7CiAKIH0KIApAQCAtNzQsNyArNzQsNyBAQCB2b2lk
IEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogICAgIEpT
Q19UT19TVFJJTkdfVEFHX1dJVEhPVVRfVFJBTlNJVElPTigpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1NlbGVjdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtOTIsNyArOTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNTZWxlY3QoSlNHbG9iYWxPYmplY3QqCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUocGx1cmFsUnVsZXMt
PnNlbGVjdChnbG9iYWxPYmplY3QsIHZhbHVlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEludGxQbHVyYWxSdWxlc1Byb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oSW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0
aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggYWM0NTU0MWQ3YWNlOGMyZmZlNzVkZjM5ZWM5ZTMzZjJlNjllN2U4Ni4uZDEy
MmRjZGEyOTBmZmYxNzczNmRkMDViOTI5YzM0NjNhZDY2YzhmYSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1l
Rm9ybWF0Q29uc3RydWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoSW50bFJlbGF0aXZlVGlt
ZUZvcm1hdENvbnN0cnVjdG9yKTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExvY2FsZXNP
ZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yRnVuY1N1cHBvcnRlZExv
Y2FsZXNPZik7CiAKIH0KIApAQCAtNjMsOCArNjMsOCBAQCBTdHJ1Y3R1cmUqIEludGxSZWxhdGl2
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxP
YgogICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKEludGVybmFsRnVuY3Rpb25UeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxJbnRsUmVs
YXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUmVsYXRpdmVUaW1lRm9ybWF0
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KTsKIAogSW50bFJl
bGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3Ry
dWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSwgY2FsbEludGxSZWxhdGl2ZVRpbWVGb3JtYXQsIGNvbnN0cnVjdEludGxSZWxhdGl2ZVRp
bWVGb3JtYXQpCkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdENv
bnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEludGxSZWxhdGl2ZVRpbWVGCiB9CiAK
IC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxSZWxhdGl2
ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50bFJlbGF0aXZlVGlt
ZUZvcm1hdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RJbnRsUmVsYXRpdmVUaW1lRm9ybWF0
KEpTR2xvYmFsT2JqZQogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwu
UmVsYXRpdmVUaW1lRm9ybWF0Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
YWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRsUmVsYXRpdmVUaW1l
Rm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsSW50bFJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVj
dCogZwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuUmVsYXRpdmVU
aW1lRm9ybWF0LnN1cHBvcnRlZExvY2FsZXNPZgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3JGdW5jU3VwcG9ydGVkTG9jYWxlc09m
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvckZ1
bmNTdXBwb3J0ZWRMb2NhbGVzT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZv
cm1hdFByb3RvdHlwZS5jcHAKaW5kZXggMDNiZDVkZmNlYzU4ZTFmYjMzNTY2YzI4YWUzMjY0NmE4
NTVlY2U1Zi4uMjA3OGFkMmNmMzlmYmRmOTlhY2I4MDE2NGUyMjNhNzgzMTdkM2Q2OSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1h
dFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJl
bGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZS5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxh
dGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBJbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFydHMoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxhdGl2
ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRvUGFy
dHMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZv
cm1hdFByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMpOwogCiB9CiAKQEAgLTc2LDcgKzc2LDcg
QEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hNDAyLyNzZWMtSW50bC5SZWxhdGl2
ZVRpbWVGb3JtYXQucHJvdG90eXBlLmZvcm1hdAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtOTUsNyArOTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0KEpTR2xvYmFsTwog
fQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLUludGwuUmVsYXRpdmVUaW1lRm9y
bWF0LnByb3RvdHlwZS5mb3JtYXRUb1BhcnRzCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9ybWF0VG9QYXJ0cyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlRnVuY0Zvcm1hdFRv
UGFydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGVGdW5jRm9y
bWF0VG9QYXJ0cyhKUwogfQogCiAvLyBodHRwczovL3RjMzkuZXMvZWNtYTQwMi8jc2VjLWludGwu
cmVsYXRpdmV0aW1lZm9ybWF0LnByb3RvdHlwZS5yZXNvbHZlZG9wdGlvbnMKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgSW50bFJlbGF0aXZlVGltZUZvcm1hdFByb3RvdHlwZUZ1bmNSZXNv
bHZlZE9wdGlvbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSW50bFJlbGF0aXZlVGltZUZvcm1hdFBy
b3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50SXRlcmF0b3JQcm90
b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVy
YXRvclByb3RvdHlwZS5jcHAKaW5kZXggNjUwMDljOTJmNTM1OTljYzdkODFkMGFjZDdkNTMwNmE3
ZmQ2MWNjZC4uODIxNzhlY2RhZjE2YWVlNGFiZTJlMDg1Mzg3NTczNDAxOWM1ZGEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRJdGVyYXRvclBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21l
bnRJdGVyYXRvclByb3RvdHlwZS5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50SXRl
cmF0b3JQcm90b3R5cGVGdW5jTmV4dChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRJdGVyYXRvclByb3RvdHlw
ZUZ1bmNOZXh0KTsKIAogfQogCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgSW50bFNlZ21lbnRJdGVy
YXRvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQogfQogCiAvLyBodHRwczovL3Rj
MzkuZXMvcHJvcG9zYWwtaW50bC1zZWdtZW50ZXIvI3NlYy0lc2VnbWVudGl0ZXJhdG9ycHJvdG90
eXBlJS5uZXh0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50SXRlcmF0
b3JQcm90b3R5cGVGdW5jTmV4dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihJbnRsU2VnbWVudEl0ZXJh
dG9yUHJvdG90eXBlRnVuY05leHQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDFlMWI5ZWU5MjY3M2YxMmZiNGY2NzVjMWU4YTY0ZGVmZDBlZmI5ZmMuLmViMWJi
YjQ4ZjFhY2RjM2EyMWI3Y2U5YTg1ZTFjNTk3MjM5ZTBlYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yLmNw
cApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19U
UklWSUFMTFlfREVTVFJVQ1RJQkxFKEludGxTZWdtZW50ZXJDb25zdHJ1Y3Rvcik7CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50ZXJDb25zdHJ1Y3RvclN1
cHBvcnRlZExvY2FsZXNPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yU3VwcG9ydGVk
TG9jYWxlc09mKTsKIAogfQogCkBAIC02Miw4ICs2Miw4IEBAIFN0cnVjdHVyZSogSW50bFNlZ21l
bnRlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvCiAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgVHlwZUluZm8oSW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEludGxT
ZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxTZWdtZW50ZXIoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnRs
U2VnbWVudGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdElu
dGxTZWdtZW50ZXIpOwogCiBJbnRsU2VnbWVudGVyQ29uc3RydWN0b3I6OkludGxTZWdtZW50ZXJD
b25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlLCBjYWxsSW50bFNlZ21lbnRlciwgY29uc3RydWN0SW50bFNlZ21lbnRlcikKQEAg
LTc4LDcgKzc4LDcgQEAgdm9pZCBJbnRsU2VnbWVudGVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgSW50bFNlZ21lbnRlclByb3RvdHlwZSogc2UKIH0KIAogLy8gaHR0cHM6Ly90
YzM5LmVzL2VjbWE0MDIvI3NlYy1JbnRsLlNlZ21lbnRlcgotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SW50bFNlZ21lbnRlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihjb25zdHJ1Y3RJbnRsU2VnbWVudGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05OCw3ICs5
OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEludGxT
ZWdtZW50ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9l
Y21hNDAyLyNzZWMtSW50bC5TZWdtZW50ZXIKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxJbnRsU2VnbWVudGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEludGxTZWdtZW50ZXIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNhbGxJbnRsU2VnbWVudGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1
bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJTZWdtZW50ZXIiKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRlckNvbnN0cnVjdG9yU3Vw
cG9ydGVkTG9jYWxlc09mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxTZWdtZW50ZXJDb25zdHJ1
Y3RvclN1cHBvcnRlZExvY2FsZXNPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFNlZ21lbnRlclByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBlLmNw
cAppbmRleCA5YmJjMzQyYjgwMjliYmFjYTUzMWM2OWY0ZDY4OWU0OTM4ZWVjYmEyLi4xY2Y0ZDBk
Mjg3OWUyZTFhYjk1M2E0Yzk1MmE1MTZhZGQ3ZWYzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsU2VnbWVudGVyUHJvdG90eXBlLmNwcApAQCAt
MzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNTZWdtZW50KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1Jlc29sdmVkT3B0aW9ucyhKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFNl
Z21lbnRlclByb3RvdHlwZUZ1bmNTZWdtZW50KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKEludGxTZWdtZW50ZXJQcm90b3R5cGVGdW5jUmVzb2x2ZWRPcHRpb25zKTsKIAogfQog
CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgSW50bFNlZ21lbnRlclByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtKQogfQogCiAvLyBodHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1zZWdt
ZW50ZXIvI3NlYy1pbnRsLnNlZ21lbnRlci5wcm90b3R5cGUuc2VnbWVudAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBJbnRsU2VnbWVudGVyUHJvdG90eXBlRnVuY1NlZ21lbnQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNTZWdtZW50LCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC04Nyw3ICs4Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNTZWdtZW50KEpTR2xvYmFsT2JqZWN0KiBnCiB9
CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2VjLUludGwu
U2VnbWVudGVyLnByb3RvdHlwZS5yZXNvbHZlZE9wdGlvbnMKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRlclByb3RvdHlwZUZ1bmNSZXNvbHZlZE9wdGlvbnMs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxTZWdtZW50c1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JbnRsU2VnbWVudHNQcm90b3R5cGUuY3BwCmluZGV4IDUzOTY1MGM0ODBjMTNjZTIy
YWRkNzg4Y2EwOTU3YTU1NWQ0ZGJjYWUuLjRjOTNlZDVmMDJkMmRiMzUxZGJkMTgzMTI5NmRiMTZm
YTk2ZjRiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxT
ZWdtZW50c1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bFNlZ21lbnRzUHJvdG90eXBlLmNwcApAQCAtMzEsOCArMzEsOCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21lbnRz
UHJvdG90eXBlRnVuY0NvbnRhaW5pbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxTZWdtZW50c1Byb3RvdHlwZUZ1
bmNJdGVyYXRvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRzUHJvdG90eXBlRnVuY0NvbnRhaW5pbmcpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oSW50bFNlZ21lbnRzUHJvdG90eXBlRnVu
Y0l0ZXJhdG9yKTsKIAogfQogCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgSW50bFNlZ21lbnRzUHJv
dG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5lcy9wcm9wb3NhbC1pbnRsLXNlZ21lbnRlci8jc2Vj
LSVzZWdtZW50c3Byb3RvdHlwZSUuY29udGFpbmluZwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBJbnRsU2VnbWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmluZyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihJbnRsU2VnbWVudHNQcm90b3R5cGVGdW5jQ29udGFpbmluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtODYsNyArODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEludGxT
ZWdtZW50c1Byb3RvdHlwZUZ1bmNDb250YWluaW5nKEpTR2xvYmFsT2JqZWN0KgogfQogCiAvLyBo
dHRwczovL3RjMzkuZXMvcHJvcG9zYWwtaW50bC1zZWdtZW50ZXIvI3NlYy0lc2VnbWVudHNwcm90
b3R5cGUlLUBAaXRlcmF0b3IKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSW50bFNlZ21l
bnRzUHJvdG90eXBlRnVuY0l0ZXJhdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEludGxTZWdtZW50
c1Byb3RvdHlwZUZ1bmNJdGVyYXRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggOWMwYTY4YTAxZTQyYzFiZjE4ZDUyODI0MjA3M2I5MDJkNWMxYTY0MC4uOTA4
ZDMxYzZlYjhhMjI1NmM3YTdlNzc5YWQ1OGUzYzUyNDkxMDNhYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyQ29uc3RydWN0b3Iu
Y3BwCkBAIC0zMywxMCArMzMsMTAgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVmZmVyRnVuY0lzVmlldyhKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbEFycmF5QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RBcnJheUJ1ZmZlcihKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc3RydWN0U2hhcmVkQXJyYXlCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyRnVuY0lzVmlldyk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsQXJyYXlCdWZmZXIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0QXJyYXlCdWZmZXIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0U2hhcmVkQXJyYXlCdWZmZXIp
OwogCiB0ZW1wbGF0ZTw+CiBjb25zdCBDbGFzc0luZm8gSlNBcnJheUJ1ZmZlckNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7CkBAIC0xMTcsMTkgKzExNywxOSBAQCBjb25zdCBDbGFzc0luZm8qIEpTR2Vu
ZXJpY0FycmF5QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+OjppbmZvKCkKICAgICByZXR1
cm4gJkpTR2VuZXJpY0FycmF5QnVmZmVyQ29uc3RydWN0b3I8c2hhcmluZ01vZGU+OjpzX2luZm87
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxBcnJheUJ1ZmZl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNhbGxBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVy
cm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJBcnJheUJ1ZmZlciIpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0QXJyYXlCdWZmZXIoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0QXJyYXlCdWZmZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTR2VuZXJpY0Fy
cmF5QnVmZmVyQ29uc3RydWN0b3I8QXJyYXlCdWZmZXJTaGFyaW5nTW9kZTo6RGVmYXVsdD46OmNv
bnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTaGFyZWRBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNH
ZW5lcmljQXJyYXlCdWZmZXJDb25zdHJ1Y3RvcjxBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpTaGFy
ZWQ+Ojpjb25zdHJ1Y3RJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KQEAgLTEzNyw3
ICsxMzcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RT
aGFyZWRBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZwogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
CiAvLyBFQ01BIDI0LjEuMy4xCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFycmF5QnVm
ZmVyRnVuY0lzVmlldyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlckZ1bmNJc1ZpZXcs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oanNEeW5hbWljQ2FzdDxKU0Fy
cmF5QnVmZmVyVmlldyo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgw
KSkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXlCdWZmZXJQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNB
cnJheUJ1ZmZlclByb3RvdHlwZS5jcHAKaW5kZXggODU5NDQ0MmNkZWIyY2RhM2QyNzkwM2ZhYzJm
M2Y2N2ZhYzc1ZDYwOS4uM2QzNjE4N2NiOGNiNzYxODU0NTQxNjA2Nzc1OWU0YzI2OTNkZGI2MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclBy
b3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1
ZmZlclByb3RvdHlwZS5jcHAKQEAgLTMxLDcgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvRnVu
Y1NsaWNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYXJyYXlCdWZmZXJQcm90b0Z1bmNT
bGljZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihhcnJheUJ1ZmZlclByb3Rv
R2V0dGVyRnVuY0J5dGVMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c2hhcmVkQXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKTsKKworSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9GdW5jU2xpY2UsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTYyLDcgKzY2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlCdWZmZXJQcm90b0Z1bmNTbGljZShKU0dsb2JhbE9iamVjdCogZ2wKIH0KIAogLy8g
aHR0cDovL3RjMzkuZ2l0aHViLmlvL2VjbWFzY3JpcHRfc2hhcmVkbWVtL3NobWVtLmh0bWwjc2Vj
LWdldC1hcnJheWJ1ZmZlci5wcm90b3R5cGUuYnl0ZWxlbmd0aAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgYXJyYXlCdWZmZXJQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3RoKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGFycmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODAsNyArODQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBhcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgoSlNH
bG9iYQogfQogCiAvLyBodHRwOi8vdGMzOS5naXRodWIuaW8vZWNtYXNjcmlwdF9zaGFyZWRtZW0v
c2htZW0uaHRtbCNTdHJ1Y3R1cmVkRGF0YS5TaGFyZWRBcnJheUJ1ZmZlci5wcm90b3R5cGUuZ2V0
X2J5dGVMZW5ndGgKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNoYXJlZEFy
cmF5QnVmZmVyUHJvdG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihz
aGFyZWRBcnJheUJ1ZmZlclByb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rp
b24uY3BwCmluZGV4IGI2ZWRkZTZjYTFjNTRkNjQwZTdiNGExZTRhMGQ2ZGQxY2VjNmI0MzEuLjQ5
NWJjYTA1OTcwM2UyNGU4ZGUzMTY5ZDYzN2MzMDZmMGU1MDZjYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmNwcApAQCAtMzMsNyArMzMs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTQm91bmRGdW5jdGlvbjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTQm91bmRGdW5jdGlvbikgfTsKIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25DYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTQm91bmRGdW5jdGlvbiog
Ym91bmRGdW5jdGlvbiA9IGpzQ2FzdDxKU0JvdW5kRnVuY3Rpb24qPihjYWxsRnJhbWUtPmpzQ2Fs
bGVlKCkpOwogCkBAIC02MCw3ICs2MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Ym91bmRUaGlzTm9BcmdzRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShjYWxsKGdsb2JhbE9iamVjdCwgdGFyZ2V0RnVuY3Rpb24s
IGNhbGxEYXRhLCBib3VuZEZ1bmN0aW9uLT5ib3VuZFRoaXMoKSwgYXJncykpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGJvdW5kRnVuY3Rpb25DYWxsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04Nyw3ICs4
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoY2FsbChnbG9iYWxPYmplY3QsIHRhcmdldEZ1bmN0aW9uLCBj
YWxsRGF0YSwgYm91bmRGdW5jdGlvbi0+Ym91bmRUaGlzKCksIGFyZ3MpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgSlNCb3VuZEZ1bmN0aW9uKiBib3VuZEZ1bmN0aW9uID0ganNDYXN0PEpTQm91bmRGdW5jdGlv
bio+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ29uc3RydWN0KEpT
R2xvYmFsT2JqZWN0KiBnbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0KGds
b2JhbE9iamVjdCwgdGFyZ2V0RnVuY3Rpb24sIGNvbnN0cnVjdERhdGEsIGFyZ3MsIG5ld1Rhcmdl
dCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kRnVuY3Rpb25Db25z
dHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNvbnN0cnVjdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtMTQ0LDEyICsxNDQsMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBib3VuZEZ1bmN0aW9uQ29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1
Y3QoZ2xvYmFsT2JqZWN0LCB0YXJnZXRGdW5jdGlvbiwgY29uc3RydWN0RGF0YSwgYXJncywgbmV3
VGFyZ2V0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGlzQm91bmRGdW5j
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpc0JvdW5kRnVuY3Rpb24sIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1ZhbHVlKHN0YXRpY19jYXN0PGJvb2w+KGpzRHluYW1pY0Nhc3Q8SlNC
b3VuZEZ1bmN0aW9uKj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPnVuY2hlY2tlZEFy
Z3VtZW50KDApKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBoYXNJbnN0
YW5jZUJvdW5kRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaGFzSW5zdGFuY2VCb3VuZEZ1
bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIEpTQm91bmRGdW5jdGlvbiogYm91bmRPYmplY3QgPSBqc0Nhc3Q8SlNCb3Vu
ZEZ1bmN0aW9uKj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCmluZGV4IGRkNmIwZTRkMDMw
ZjNlZTg2MDIzNWJjZDZkNzM1OGFjYzZmOGJiM2UuLjc2NjlkZDMwZTdkOTU3YTQxOTk2NjJmY2Ez
NTJhZWYxY2Y1YjE2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qm91bmRGdW5jdGlvbi5oCkBAIC0yOSwxMiArMjksMTIgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25DYWxs
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGJvdW5kRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ29uc3RydWN0
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGJvdW5kRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNCb3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0luc3Rh
bmNlQm91bmRGdW5jdGlvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ2FsbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGJvdW5kVGhpc05vQXJnc0Z1bmN0aW9uQ29uc3RydWN0KTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNvbnN0cnVjdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGlzQm91bmRGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGhhc0lu
c3RhbmNlQm91bmRGdW5jdGlvbik7CiAKIGNsYXNzIEpTQm91bmRGdW5jdGlvbiBmaW5hbCA6IHB1
YmxpYyBKU0Z1bmN0aW9uIHsKIHB1YmxpYzoKQEAgLTkzLDkgKzkzLDkgQEAgY2xhc3MgSlNCb3Vu
ZEZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRnVuY3Rpb24gewogICAgIGRvdWJsZSBtX2xlbmd0
aDsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91bmRGdW5jdGlvbkNhbGwo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYm91bmRGdW5jdGlvbkNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBib3VuZFRoaXNOb0FyZ3NGdW5jdGlvbkNhbGwo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oYm91bmRGdW5jdGlvbkNhbGwpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihib3VuZEZ1bmN0aW9uQ29uc3RydWN0KTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25DYWxsKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oYm91bmRUaGlzTm9BcmdzRnVuY3Rpb25Db25zdHJ1Y3QpOwog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKaW5kZXggYWUz
NWJhNDAzOTU4YmRkZDAxNjllYzk5NjU4MDIzN2ZkODk2NDg3ZS4uNWE4NTFkZTc1YmYyMzhkMWI0
Y2MyYjhkMjE4OTE0NmM3ZmMwNmViZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDdXN0b21HZXR0ZXJTZXR0ZXJGdW5jdGlvbi5jcHAKQEAg
LTMzLDcgKzMzLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0N1c3Rv
bUdldHRlclNldHRlckZ1bmN0aW9uOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNDdXN0b21HZXR0ZXJT
ZXR0ZXJGdW5jdGlvbikgfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY3VzdG9tR2V0dGVyU2V0dGVyRnVuY3Rpb25DYWxsKTsKKworSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGN1c3RvbUdldHRlclNldHRlckZ1bmN0aW9uQ2FsbCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNEYXRhVmlld1By
b3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJv
dG90eXBlLmNwcAppbmRleCA0YmIyOGZkOTlmMmY5NjMwOWIxZDNhYjZhYTcyMTYzYWQ5ZTRlYTNi
Li4yMWUyNjcwYzJmMDgxM2UxYzEwNTQ5YTAzNWE2ZGIwNTc3NjUzYjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcApA
QCAtNTksMjUgKzU5LDI1IEBAIG5hbWVzcGFjZSBKU0MgewogQGVuZAogKi8KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEludDgoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQ
cm90b0Z1bmNHZXRJbnQxNihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldEludDMyKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3
UHJvdG9GdW5jR2V0VWludDgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MTYoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZp
ZXdQcm90b0Z1bmNHZXRVaW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRGbG9hdDMyKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRh
dGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQ2NChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDgoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQxNihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEludDMyKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDgoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MTYo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9h
dDMyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0RmxvYXQ2NChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVy
QnVmZmVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9H
ZXR0ZXJCeXRlT2Zmc2V0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50OCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MTYpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldEludDMyKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50OCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRVaW50MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0NjQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihkYXRhVmlld1Byb3RvRnVuY1NldEludDE2KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRh
dGFWaWV3UHJvdG9GdW5jU2V0VWludDgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihkYXRh
Vmlld1Byb3RvRnVuY1NldFVpbnQxNik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGFW
aWV3UHJvdG9GdW5jU2V0VWludDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZp
ZXdQcm90b0Z1bmNTZXRGbG9hdDMyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZp
ZXdQcm90b0Z1bmNTZXRGbG9hdDY0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZp
ZXdQcm90b0dldHRlckJ1ZmZlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3
UHJvdG9HZXR0ZXJCeXRlTGVuZ3RoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZGF0YVZp
ZXdQcm90b0dldHRlckJ5dGVPZmZzZXQpOwogCiB9CiAKQEAgLTIxNSw3ICsyMTUsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBzZXREYXRhKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQogCiBJR05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oIm1pc3NpbmctcHJv
dG90eXBlcyIpCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0dl
dHRlckJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjcsNyArMjI3LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnVmZmVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZSh2
aWV3LT5wb3NzaWJseVNoYXJlZEpTQnVmZmVyKGdsb2JhbE9iamVjdCkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvR2V0dGVyQnl0ZUxlbmd0aCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZGF0YVZpZXdQcm90b0dldHRlckJ5dGVMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2aWV3LT5sZW5ndGgoKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zm
c2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zmc2V0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTUsODIgKzI1NSw4MiBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9HZXR0ZXJCeXRlT2Zmc2V0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodmlldy0+Ynl0ZU9m
ZnNldCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90
b0Z1bmNHZXRJbnQ4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50
OCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gZ2V0RGF0YTxJbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
R2V0SW50MTYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNHZXRJbnQxNiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gZ2V0RGF0YTxJbnQxNkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dl
dEludDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0SW50MzIsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIGdldERhdGE8SW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRV
aW50OChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQ4LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBnZXREYXRhPFVpbnQ4QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jR2V0VWlu
dDE2KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0VWludDE2LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBnZXREYXRhPFVpbnQxNkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY0dldFVp
bnQzMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldFVpbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gZ2V0RGF0YTxVaW50MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNHZXRG
bG9hdDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jR2V0RmxvYXQzMiwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gZ2V0RGF0YTxGbG9hdDMyQWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5j
R2V0RmxvYXQ2NChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY0dldEZsb2F0
NjQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIGdldERhdGE8RmxvYXQ2NEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3Rv
RnVuY1NldEludDgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQ4
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBzZXREYXRhPEludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNT
ZXRJbnQxNihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkYXRhVmlld1Byb3RvRnVuY1NldEludDE2LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBzZXREYXRhPEludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0
SW50MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRJbnQzMiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gc2V0RGF0YTxJbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldFVp
bnQ4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDgsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIHNldERhdGE8VWludDhBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50
MTYoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRVaW50MTYsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIHNldERhdGE8VWludDE2QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGRhdGFWaWV3UHJvdG9GdW5jU2V0VWlu
dDMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0VWludDMyLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBzZXREYXRhPFVpbnQzMkFkYXB0b3I+KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkYXRhVmlld1Byb3RvRnVuY1NldEZs
b2F0MzIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZGF0YVZpZXdQcm90b0Z1bmNTZXRGbG9hdDMyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBzZXREYXRhPEZsb2F0MzJBZGFwdG9yPihnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZGF0YVZpZXdQcm90b0Z1bmNT
ZXRGbG9hdDY0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRhdGFWaWV3UHJvdG9GdW5jU2V0RmxvYXQ2
NCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gc2V0RGF0YTxGbG9hdDY0QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cAppbmRleCBhN2ViNTg1NTA0YWM4NDFmN2FiMTgxZDY0NzZhOGQ2YzhiODE4ZjFjLi4yYTAwODg1
NTk2MDZmODE0M2ViZmJkYWM0YzgzNWIxNzhmNTQ3OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcApAQCAtNDUsNyArNDUsNyBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0aW9u
QXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSG9zdEZ1bmN0aW9uQXNDb25z
dHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzE0LDcgKzMxNCw3IEBAIHN0YXRpYyBK
U1ZhbHVlIHJldHJpZXZlQXJndW1lbnRzKFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
RnVuY3Rpb24qIGZ1bmN0CiAgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0KCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGFyZ3VtZW50c0dldHRlcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgSlNGdW5jdGlvbiog
dGhpc09iaiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwpAQCAtMzc0LDcgKzM3NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVyRnVuY3Rp
b24oVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNGdW5jdGlvbioKICAgICByZXR1cm4g
ZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVy
R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
Y2FsbGVyR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgKaW5kZXggYzA0NjgyYzA4YjIwZmUw
Mzk3ZjdiY2FjNmY1NTNlZjdjM2ViMDNlMi4uMjU4OTU1ZjBlM2IyYjdiYmU0YTMzNWM4MzBiZGRl
OTI5NDZkNjYzMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24u
aApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBTaWduYXR1cmU7CiB9CiAKIAotSlNfRVhQT1JUX1BS
SVZBVEUgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSG9zdEZ1bmN0aW9uQXNDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNfRVhQT1JUX1BSSVZBVEUg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3Rvcik7
CiAKIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoVk0m
LCBKU09iamVjdCopOwogCkBAIC0yMTcsOSArMjE3LDYgQEAgY2xhc3MgSlNGdW5jdGlvbiA6IHB1
YmxpYyBKU0NhbGxlZSB7CiAKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRzRXh0cmFjdG9y
OwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50c0dldHRlcihKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBjYWxsZXJHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKLQogICAgIHVpbnRwdHJfdCBtX2V4ZWN1dGFibGVPclJhcmVEYXRhOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvci5oCmluZGV4IDRkYzRhZWE2ODE2M2E5
MzFhYjU4ZDYxMDY4NmFjZjA4OTEwNTkyMmMuLjQ3Y2Q2OGUwNjZhYTI3YTc2NGY5ODBjNDYzMDA4
ZTQ3NmNmYWUwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmgKQEAgLTI5
LDYgKzI5LDI4IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCitKU19FWFBPUlRfUFJJVkFURSBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnQ4QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsSW50MTZBcnJheSk7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxJbnQzMkFycmF5KTsKK0pTX0VYUE9S
VF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFVpbnQ4QXJyYXkpOworSlNf
RVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsVWludDhDbGFtcGVk
QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxs
VWludDE2QXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihjYWxsVWludDMyQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsRmxvYXQzMkFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbEZsb2F0NjRBcnJheSk7CitKU19FWFBPUlRfUFJJVkFURSBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxEYXRhVmlldyk7CisKK0pTX0VYUE9SVF9QUklWQVRF
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50OEFycmF5KTsKK0pTX0VYUE9S
VF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SW50MTZBcnJheSk7
CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdElu
dDMyQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
b25zdHJ1Y3RVaW50OEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0VWludDhDbGFtcGVkQXJyYXkpOworSlNfRVhQT1JUX1BSSVZBVEUg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVaW50MTZBcnJheSk7CitKU19FWFBP
UlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFVpbnQzMkFycmF5
KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
RmxvYXQzMkFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0RmxvYXQ2NEFycmF5KTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0RGF0YVZpZXcpOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBW
aWV3Q2xhc3M+CiBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yIGZpbmFs
IDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogcHVibGljOgpAQCAtNDQsNiArNjYsNjQgQEAg
Y2xhc3MgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJ
bnRlcm5hbEZ1bmN0aW9uIHsKIAogICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBSYXdOYXRpdmVGdW5jdGlvbiBjYWxsQ29uc3RydWN0b3IoKQorICAgIHsKKyAg
ICAgICAgc3dpdGNoIChWaWV3Q2xhc3M6OlR5cGVkQXJyYXlTdG9yYWdlVHlwZSkgeworICAgICAg
ICBjYXNlIFR5cGVJbnQ4OgorICAgICAgICAgICAgcmV0dXJuIGNhbGxJbnQ4QXJyYXk7CisgICAg
ICAgIGNhc2UgVHlwZUludDE2OgorICAgICAgICAgICAgcmV0dXJuIGNhbGxJbnQxNkFycmF5Owor
ICAgICAgICBjYXNlIFR5cGVJbnQzMjoKKyAgICAgICAgICAgIHJldHVybiBjYWxsSW50MzJBcnJh
eTsKKyAgICAgICAgY2FzZSBUeXBlVWludDg6CisgICAgICAgICAgICByZXR1cm4gY2FsbFVpbnQ4
QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQ4Q2xhbXBlZDoKKyAgICAgICAgICAgIHJldHVy
biBjYWxsVWludDhDbGFtcGVkQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQxNjoKKyAgICAg
ICAgICAgIHJldHVybiBjYWxsVWludDE2QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQzMjoK
KyAgICAgICAgICAgIHJldHVybiBjYWxsVWludDMyQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZUZs
b2F0MzI6CisgICAgICAgICAgICByZXR1cm4gY2FsbEZsb2F0MzJBcnJheTsKKyAgICAgICAgY2Fz
ZSBUeXBlRmxvYXQ2NDoKKyAgICAgICAgICAgIHJldHVybiBjYWxsRmxvYXQ2NEFycmF5OworICAg
ICAgICBjYXNlIFR5cGVEYXRhVmlldzoKKyAgICAgICAgICAgIHJldHVybiBjYWxsRGF0YVZpZXc7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBDUkFTSF9VTkRFUl9DT05TVEVYUFJfQ09O
VEVYVCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBzdGF0aWMgY29uc3RleHByIFJhd05hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdENvbnN0cnVj
dG9yKCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoVmlld0NsYXNzOjpUeXBlZEFycmF5U3RvcmFn
ZVR5cGUpIHsKKyAgICAgICAgY2FzZSBUeXBlSW50ODoKKyAgICAgICAgICAgIHJldHVybiBjb25z
dHJ1Y3RJbnQ4QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZUludDE2OgorICAgICAgICAgICAgcmV0
dXJuIGNvbnN0cnVjdEludDE2QXJyYXk7CisgICAgICAgIGNhc2UgVHlwZUludDMyOgorICAgICAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdEludDMyQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZVVpbnQ4
OgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdFVpbnQ4QXJyYXk7CisgICAgICAgIGNhc2Ug
VHlwZVVpbnQ4Q2xhbXBlZDoKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RVaW50OENsYW1w
ZWRBcnJheTsKKyAgICAgICAgY2FzZSBUeXBlVWludDE2OgorICAgICAgICAgICAgcmV0dXJuIGNv
bnN0cnVjdFVpbnQxNkFycmF5OworICAgICAgICBjYXNlIFR5cGVVaW50MzI6CisgICAgICAgICAg
ICByZXR1cm4gY29uc3RydWN0VWludDMyQXJyYXk7CisgICAgICAgIGNhc2UgVHlwZUZsb2F0MzI6
CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0RmxvYXQzMkFycmF5OworICAgICAgICBjYXNl
IFR5cGVGbG9hdDY0OgorICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEZsb2F0NjRBcnJheTsK
KyAgICAgICAgY2FzZSBUeXBlRGF0YVZpZXc6CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0
RGF0YVZpZXc7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBDUkFTSF9VTkRFUl9DT05T
VEVYUFJfQ09OVEVYVCgpOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0K
KyAgICB9CisKIHByaXZhdGU6CiAgICAgSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rv
cihWTSYsIFN0cnVjdHVyZSopOwogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mLCBKU0dsb2Jh
bE9iamVjdCosIEpTT2JqZWN0KiBwcm90b3R5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgRnVuY3Rp
b25FeGVjdXRhYmxlKiBwcml2YXRlQWxsb2NhdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3JJbmxp
bmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5
Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oCmluZGV4IDFlOTUxNmFlYjZiYzU1N2YzOGE4ZDljOWIy
MzA0OWVhYmI3Y2RiYTUuLjJkZmE3ZWI0MDVlZmQyNTkxODIyNzdhMTQ4MzE2ZDNhYmE2NGVlYTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3Q29uc3RydWN0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcklubGluZXMuaApAQCAt
MzcsMTUgKzM3LDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxHZW5lcmlj
VHlwZWRBcnJheVZpZXcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLQotdGVtcGxhdGU8
dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1
Y3RHZW5lcmljVHlwZWRBcnJheVZpZXcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLQog
dGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdDb25z
dHJ1Y3RvcjxWaWV3Q2xhc3M+OjpKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxHZW5lcmljVHlwZWRBcnJheVZpZXc8Vmlld0NsYXNzPiwgY29uc3RydWN0R2VuZXJpY1R5cGVk
QXJyYXlWaWV3PFZpZXdDbGFzcz4pCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxDb25z
dHJ1Y3RvcigpLCBjb25zdHJ1Y3RDb25zdHJ1Y3RvcigpKQogewogfQogCkBAIC0yMDYsNyArMjAw
LDcgQEAgaW5saW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RHZW5lcmljVHlwZWRBcnJheVZpZXdXaXRo
QXJndW1lbnRzKEpTR2xvYmFsT2JqZWN0KiBnbG8KIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmll
d0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RHZW5lcmljVHlw
ZWRBcnJheVZpZXcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGNvbnN0cnVjdEdlbmVyaWNUeXBl
ZEFycmF5Vmlld0ltcGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
c2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI0Nyw3ICsyNDEsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5VmlldyhK
U0dsb2JhbE9iamVjdCogZ2xvYgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsR2VuZXJpY1R5cGVkQXJyYXlW
aWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitBTFdBWVNfSU5M
SU5FIEVuY29kZWRKU1ZhbHVlIGNhbGxHZW5lcmljVHlwZWRBcnJheVZpZXdJbXBsKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCmluZGV4IGM1
OGI1NDM2MzYyNzRhNzU5NjBhYmU2MzA0NWNiNjkwM2E2ODE0MDkuLjBiYWI0NjA1N2NlYTQxZTI4
MDliZGU4N2ExOTIwYzNjYmY4OGFmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b3R5cGVGdW5jdGlvbnMuaApAQCAtMTAwLDcgKzEwMCw3IEBAIGlubGluZSB1bnNpZ25lZCBh
cmd1bWVudENsYW1wZWRJbmRleEZyb21TdGFydE9yRW5kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0LCAo
Vk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCkBAIC0x
NDcsNyArMTQ3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRB
cnJheVZpZXdQcm90b0Z1bmNTZXQoVk0mIHZtLCBKU0dsb2JhbE8KIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jQ29weVdpdGhpbiwgKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAtMTc5LDcgKzE3OSw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jQ29weVdpdGhpbihWTSYgdm0sIEpTCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdD
bGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jSW5jbHVkZXMoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcywgKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApAQCAtMjI0LDcgKzIyNCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5jbHVkZXMo
Vk0mIHZtLCBKU0dsCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5kZXhP
ZihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0luZGV4T2YsIChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAKQEAgLTI2MSw3ICsyNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YoVk0mIHZtLCBKU0dsbwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0pvaW4oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luLCAoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCkBAIC0zMDAsNyArMzAw
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNKb2luKFZNJiB2bSwgSlNHbG9iYWwKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmll
d0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNMYXN0SW5kZXhPZihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mLCAoVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCkBAIC0zNTAsNyArMzUwLDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNM
YXN0SW5kZXhPZihWTSYgdm0sIEoKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dl
dHRlckZ1bmNCdWZmZXIoVk0mLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJh
eVZpZXdQcm90b0dldHRlckZ1bmNCdWZmZXIsIChWTSYsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAyMi4yLjMuMwogICAgIFZp
ZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihjYWxsRnJhbWUtPnRoaXNW
YWx1ZSgpKTsKQEAgLTM1OSw3ICszNTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZlcihWTSYsIEpTRwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aChWTSYsIEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoLCAoVk0mLCBKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAyMi4yLjMuMTcK
ICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Vmlld0NsYXNzKj4oY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSk7CkBAIC0zNjgsNyArMzY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNMZW5ndGgoVk0mLCBK
U0cKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlld0NsYXNzPgotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVuZ3Ro
KFZNJiwgSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlTGVu
Z3RoLCAoVk0mLCBKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICAvLyAyMi4yLjMuMgogICAgIFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xh
c3MqPihjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKQEAgLTM3Nyw3ICszNzcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVu
Y0J5dGVMZW5ndGgoVk0mLAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVy
RnVuY0J5dGVPZmZzZXQoVk0mLCBKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0
dGVyRnVuY0J5dGVPZmZzZXQsIChWTSYsIEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIC8vIDIyLjIuMy4zCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0g
anNDYXN0PFZpZXdDbGFzcyo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwpAQCAtMzg2LDcgKzM4
Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldChWTSYsCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZp
ZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2VuZXJpY1R5cGVkQXJyYXlW
aWV3UHJvdG9GdW5jUmV2ZXJzZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UsIChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKIC8vICAgIFZNJiB2bSA9IGdl
dFZNKGdsb2JhbE9iamVjdCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNDAzLDcgKzQwMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZShWTSYgdm0sIEpTR2xvCiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIFZpZXdDbGFzcz4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0LCAoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAv
LyAgICBWTSYgdm0gPSBnZXRWTShnbG9iYWxPYmplY3QpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTQxOSw3ICs0MTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChWTSYgdm0s
IEpTR2xvYgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNlKFZNJiB2
bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xp
Y2UsIChWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
QEAgLTUxMCw3ICs1MTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNU
eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNlKFZNJiB2bSwgSlNHbG9iYQogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBWaWV3Q2xhc3M+Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVy
aWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUoVk0mdm0sIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVh
dGUsIChWTSZ2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDdlNTI1ZDkxZGEyMTU4ZTQ0NDIxNTRhNTNiMDM1YWZlYjQ2NGJmN2EuLmJkNTRiYjE1OTU1
NDIwYzM5MjkyYzc2YWExYjcxZjkzYjVjNThhNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTI0Miw2ICsyNDIsMjAgQEAgRk9S
X0VBQ0hfU0lNUExFX0JVSUxUSU5fVFlQRShDSEVDS19GRUFUVVJFX0ZMQUdfVFlQRSkKIEZPUl9F
QUNIX0JVSUxUSU5fREVSSVZFRF9JVEVSQVRPUl9UWVBFKENIRUNLX0ZFQVRVUkVfRkxBR19UWVBF
KQogRk9SX0VBQ0hfTEFaWV9CVUlMVElOX1RZUEUoQ0hFQ0tfRkVBVFVSRV9GTEFHX1RZUEUpCiAK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1ha2VCb3VuZEZ1bmN0aW9uKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGhhc093bkxlbmd0aFByb3BlcnR5KTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNyZWF0ZVByaXZhdGVTeW1ib2wpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZW5hYmxlU3VwZXJTYW1wbGVyKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGRpc2FibGVTdXBlclNhbXBsZXIpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZW5xdWV1ZUpvYik7CisjaWYgQVNTRVJUX0VOQUJM
RUQKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGFzc2VydENhbGwpOworI2VuZGlm
CisjaWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJTEVSKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZW5hYmxlU2FtcGxpbmdQcm9maWxlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihkaXNhYmxlU2FtcGxpbmdQcm9maWxlcik7CisjZW5kaWYKKwogc3RhdGljIEpT
VmFsdWUgY3JlYXRlUHJveHlQcm9wZXJ0eShWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiB7CiAg
ICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbCA9IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KG9iamVj
dCk7CkBAIC0yNzIsNyArMjg2LDcgQEAgc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29uc29sZVByb3Bl
cnR5KFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gQ29uc29sZU9iamVjdDo6
Y3JlYXRlKHZtLCBnbG9iYWwsIENvbnNvbGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xv
YmFsLCBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWwpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VCb3VuZEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG1ha2VCb3VuZEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODYsNyArMzAw
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZUJvdW5kRnVuY3Rp
b24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEpTVmFsdWU6OmVuY29kZShKU0JvdW5kRnVuY3Rpb246OmNyZWF0ZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCB0YXJnZXQsIGJvdW5kVGhpcywgYm91bmRBcmdzLmlzQ2VsbCgpID8ganNDYXN0PEpTSW1t
dXRhYmxlQnV0dGVyZmx5Kj4oYm91bmRBcmdzKSA6IG51bGxwdHIsIGxlbmd0aCwgbmFtZVN0cmlu
ZykpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaGFzT3duTGVu
Z3RoUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oaGFzT3duTGVuZ3RoUHJvcGVydHksIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMwNiwxNCArMzIwLDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGhhc093bkxlbmd0aFByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPCiAKIC8vIEZJWE1FOiB1c2UgYSBieXRlY29kZSBvciBpbnRyaW5zaWMgZm9yIGNyZWF0
aW5nIGEgcHJpdmF0ZSBzeW1ib2wuCiAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEyNzgyCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjcmVh
dGVQcml2YXRlU3ltYm9sKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY3JlYXRlUHJpdmF0ZVN5bWJvbCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFN5bWJvbDo6Y3JlYXRl
KHZtLCBQcml2YXRlU3ltYm9sSW1wbDo6Y3JlYXRlTnVsbFN5bWJvbCgpLmdldCgpKSk7CiB9CiAK
ICNpZiBBU1NFUlRfRU5BQkxFRAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
YXNzZXJ0Q2FsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihhc3NlcnRDYWxsLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFJFTEVBU0Vf
QVNTRVJUKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkuaXNCb29sZWFuKCkpOwogICAgIGlmIChjYWxs
RnJhbWUtPmFyZ3VtZW50KDApLmFzQm9vbGVhbigpKQpAQCAtMzQxLDcgKzM1NSw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGFzc2VydENhbGwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsCiAjZW5kaWYgLy8gQVNTRVJUX0VOQUJMRUQKIAogI2lmIEVOQUJM
RShTQU1QTElOR19QUk9GSUxFUikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGVuYWJsZVNhbXBsaW5nUHJvZmlsZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihlbmFibGVTYW1wbGluZ1Byb2ZpbGVy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgU2Ft
cGxpbmdQcm9maWxlciogcHJvZmlsZXIgPSBnbG9iYWxPYmplY3QtPnZtKCkuc2FtcGxpbmdQcm9m
aWxlcigpOwogICAgIGlmICghcHJvZmlsZXIpCkBAIC0zNTAsNyArMzY0LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZW5hYmxlU2FtcGxpbmdQcm9maWxlcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBkaXNhYmxlU2FtcGxp
bmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGRpc2FibGVTYW1wbGluZ1Byb2ZpbGVyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgU2FtcGxpbmdQcm9maWxl
ciogcHJvZmlsZXIgPSBnbG9iYWxPYmplY3QtPnZtKCkuc2FtcGxpbmdQcm9maWxlcigpOwogICAg
IGlmICghcHJvZmlsZXIpCkBAIC0zNjUsMTMgKzM3OSwxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBkaXNhYmxlU2FtcGxpbmdQcm9maWxlcihKU0dsb2JhbE9iamVjdCog
Z2xvYgogfQogI2VuZGlmCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVu
YWJsZVN1cGVyU2FtcGxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZW5hYmxlU3VwZXJTYW1wbGVyLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKSkKIHsKICAgICBlbmFibGVTdXBlclNhbXBsZXIoKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBkaXNhYmxlU3VwZXJTYW1wbGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
KikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihkaXNhYmxlU3VwZXJTYW1wbGVyLCAoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICBkaXNhYmxlU3VwZXJTYW1wbGVyKCk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKQEAgLTQ1Miw3ICs0NjYs
NyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6c19nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSA9IHsKIEBlbmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGVucXVldWVKb2IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZW5xdWV1ZUpv
YiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApp
bmRleCBmOWRjNjQ0ODgyOTc5OTc0NTg2MTFhYzFmMDIyODA0ZWUwMGFlNGE1Li42NmM2MmZmZDky
NmZlZGQ1MzU1Y2FhOGEyZGViYzAxMzk1ZDIwNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC00
NTksNyArNDU5LDcgQEAgc3RhdGljIGRvdWJsZSBwYXJzZUZsb2F0KFN0cmluZ1ZpZXcgcykKICAg
ICByZXR1cm4ganNTdHJEZWNpbWFsTGl0ZXJhbChkYXRhLCBlbmQpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFdmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGds
b2JhbEZ1bmNFdmFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00OTcsNyArNDk3LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXZhbChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh2bS5pbnRlcnByZXRlci0+ZXhlY3V0ZShldmFsLCBnbG9iYWxPYmplY3QsIGds
b2JhbE9iamVjdC0+Z2xvYmFsVGhpcygpLCBnbG9iYWxPYmplY3QtPmdsb2JhbFNjb3BlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1BhcnNlSW50KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQYXJzZUludCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIHJhZGl4VmFsdWUgPSBjYWxs
RnJhbWUtPmFyZ3VtZW50KDEpOwpAQCAtNTI1LDcgKzUyNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZ2xvYmFsRnVuY1BhcnNlSW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhCiAgICAgfSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFs
RnVuY1BhcnNlRmxvYXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1BhcnNlRmxvYXQs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUzNyw3ICs1MzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNQYXJzZUZsb2F0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihwYXJzZUZsb2F0KHZp
ZXdXaXRoU3RyaW5nLnZpZXcpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Z2xvYmFsRnVuY0RlY29kZVVSSShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGVjb2Rl
VVJJLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHN0YXRpYyBCaXRtYXA8MjU2PiBkb05vdFVuZXNjYXBlV2hlbkRlY29kaW5nVVJJ
ID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAgICAgIiMkJissLzo7PT9AIgpAQCAtNTQ2LDEz
ICs1NDYsMTMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2Rl
VVJJKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGRlY29kZShnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCksIGRvTm90
VW5lc2NhcGVXaGVuRGVjb2RpbmdVUkksIHRydWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGVjb2RlVVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNEZWNvZGVVUklDb21wb25lbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgc3RhdGljIEJpdG1hcDwyNTY+
IGVtcHR5Qml0bWFwOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVjb2RlKGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSwgZW1wdHlCaXRtYXAsIHRydWUpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRW5jb2RlVVJJKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNFbmNvZGVVUkksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgc3RhdGljIEJpdG1hcDwyNTY+
IGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJID0gbWFrZUNoYXJhY3RlckJpdG1hcCgKICAgICAg
ICAgIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgpAQCAtNTY0LDcgKzU2NCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VuY29kZVVSSShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShlbmNvZGUoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBkb05vdEVzY2FwZVdoZW5FbmNvZGlu
Z1VSSSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFbmNv
ZGVVUklDb21wb25lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0VuY29kZVVSSUNv
bXBvbmVudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBzdGF0aWMgQml0bWFwPDI1Nj4gZG9Ob3RFc2NhcGVXaGVuRW5jb2RpbmdV
UklDb21wb25lbnQgPSBtYWtlQ2hhcmFjdGVyQml0bWFwKAogICAgICAgICAiQUJDREVGR0hJSktM
TU5PUFFSU1RVVldYWVoiCkBAIC01NzYsNyArNTc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jRW5jb2RlVVJJQ29tcG9uZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVuY29kZShnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZS0+YXJndW1lbnQoMCksIGRvTm90RXNjYXBlV2hlbkVuY29kaW5nVVJJQ29tcG9uZW50KSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRXNjYXBlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHN0YXRpYyBCaXRtYXA8MjU2
PiBkb05vdEVzY2FwZSA9IG1ha2VDaGFyYWN0ZXJCaXRtYXAoCiAgICAgICAgICJBQkNERUZHSElK
S0xNTk9QUVJTVFVWV1hZWiIKQEAgLTYyMSw3ICs2MjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbAogICAgIH0pKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxG
dW5jVW5lc2NhcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1VuZXNjYXBlLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodG9TdHJpbmdWaWV3KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLT5hcmd1bWVudCgwKSwgWyZdIChTdHJpbmdWaWV3IHZpZXcpIHsKICAgICAgICAgLy8gV2Ug
dXNlIGludCBmb3IgayBhbmQgbGVuZ3RoIGludGVudGlvbmFsbHkgc2luY2Ugd2Ugd291bGQgbGlr
ZSB0byBldmFsdWF0ZQpAQCAtNjc3LDMzICs2NzcsMzMgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2EKICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVu
Y1Rocm93VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSop
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVGhyb3dUeXBlRXJy
b3JBcmd1bWVudHNDYWxsZWVBbmRDYWxsZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jVGhyb3dUeXBl
RXJyb3JBcmd1bWVudHNDYWxsZWVBbmRDYWxsZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICInYXJndW1lbnRzJywgJ2NhbGxlZScs
IGFuZCAnY2FsbGVyJyBjYW5ub3QgYmUgYWNjZXNzZWQgaW4gdGhpcyBjb250ZXh0LiIpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNNYWtlVHlwZUVycm9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFN0cnVjdHVy
ZSogZXJyb3JTdHJ1Y3R1cmUgPSBnbG9iYWxPYmplY3QtPmVycm9yU3RydWN0dXJlKEVycm9yVHlw
ZTo6VHlwZUVycm9yKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEVycm9ySW5zdGFuY2U6
OmNyZWF0ZShnbG9iYWxPYmplY3QsIGVycm9yU3RydWN0dXJlLCBjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLCBudWxscHRyLCBUeXBlTm90aGluZywgZmFsc2UpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Z2xvYmFsRnVuY1Byb3RvR2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1l
LT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01BTW9kZTo6c3RyaWN0KCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlLmdldFByb3RvdHlwZShnbG9iYWxP
YmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJv
dG9TZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3RvU2V0dGVyLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC03MzAsNyArNzMwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jUHJvdG9TZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNTZXRQcm90b3R5cGVEaXJlY3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNzQ1LDcgKzc0NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZ2xvYmFsRnVuY1NldFByb3RvdHlwZURpcmVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxG
dW5jSG9zdFByb21pc2VSZWplY3Rpb25UcmFja2VyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2Jh
bEZ1bmNIb3N0UHJvbWlzZVJlamVjdGlvblRyYWNrZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTc4MCwxOCArNzgwLDE4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVu
Y0hvc3RQcm9taXNlUmVqZWN0aW9uVHJhY2tlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jQnVpbHRpbkxvZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jQnVpbHRpbkxvZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBkYXRhTG9nKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9XVEZT
dHJpbmcoZ2xvYmFsT2JqZWN0KSwgIlxuIik7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxG
dW5jQnVpbHRpbkRlc2NyaWJlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNCdWlsdGlu
RGVzY3JpYmUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZyhnbG9iYWxPYmpl
Y3QtPnZtKCksIHRvU3RyaW5nKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0ltcG9ydE1vZHVsZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihnbG9iYWxGdW5jSW1wb3J0TW9kdWxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKIApAQCAtODIzLDcgKzgyMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY0ltcG9ydE1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShwcm9taXNlKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC04MzksNyArODM5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jUHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihlbnVtZXJhYmxlKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY093bktleXMoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZ2xvYmFsRnVuY093bktleXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg0OCw3ICs4
NDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNPd25LZXlzKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9iamVj
dCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMsIERvbnRFbnVtUHJvcGVydGll
c01vZGU6OkluY2x1ZGUsIFdURjo6bnVsbG9wdCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jRGF0ZVRpbWVGb3JtYXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Z2xvYmFsRnVuY0RhdGVUaW1lRm9ybWF0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
aAppbmRleCBhMzY3YzJiYzI3ZjE2NWVhMTkyMDZhOGM0Yzc4YzgxMmJmYTA1NjE1Li45ODIzYzZi
YzA0MmE2ZjkzOWVmMmQxODEzMjAxYmM3MjhkMzYyODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTM3
LDI4ICszNywyOCBAQCBjbGFzcyBKU09iamVjdDsKIAogZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJh
bCBPYmplY3RQcm90b0NhbGxlZE9uTnVsbE9yVW5kZWZpbmVkRXJyb3I7CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0V2YWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1BhcnNlSW50KEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNQYXJzZUZsb2F0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNEZWNvZGVVUkkoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVu
Y0RlY29kZVVSSUNvbXBvbmVudChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRW5jb2RlVVJJKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNF
bmNvZGVVUklDb21wb25lbnQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0VzY2FwZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2Nh
cGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZ2xvYmFsRnVuY1Rocm93VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNUaHJvd1R5cGVFcnJv
ckFyZ3VtZW50c0NhbGxlZUFuZENhbGxlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jTWFrZVR5cGVFcnJvcihKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBn
bG9iYWxGdW5jUHJvdG9HZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3RvU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1
bmNTZXRQcm90b3R5cGVEaXJlY3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0hvc3RQcm9taXNlUmVqZWN0aW9uVHJh
Y2tlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBnbG9iYWxGdW5jQnVpbHRpbkxvZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jQnVpbHRpbkRlc2NyaWJl
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNJbXBvcnRNb2R1bGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJh
YmxlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNPd25LZXlzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1hdChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9i
YWxGdW5jRXZhbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQYXJzZUlu
dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQYXJzZUZsb2F0KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0RlY29kZVVSSSk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNEZWNvZGVVUklDb21wb25lbnQpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRW5jb2RlVVJJKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oZ2xvYmFsRnVuY0VuY29kZVVSSUNvbXBvbmVudCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNFc2NhcGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihn
bG9iYWxGdW5jVW5lc2NhcGUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5j
VGhyb3dUeXBlRXJyb3IpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jVGhy
b3dUeXBlRXJyb3JBcmd1bWVudHNDYWxsZWVBbmRDYWxsZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihnbG9iYWxGdW5jTWFrZVR5cGVFcnJvcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGdsb2JhbEZ1bmNQcm90b0dldHRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGds
b2JhbEZ1bmNQcm90b1NldHRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1
bmNTZXRQcm90b3R5cGVEaXJlY3QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxG
dW5jSG9zdFByb21pc2VSZWplY3Rpb25UcmFja2VyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0J1aWx0aW5Mb2cpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9i
YWxGdW5jQnVpbHRpbkRlc2NyaWJlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFs
RnVuY0ltcG9ydE1vZHVsZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNQ
cm9wZXJ0eUlzRW51bWVyYWJsZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1
bmNPd25LZXlzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY0RhdGVUaW1l
Rm9ybWF0KTsKIAogZG91YmxlIGpzVG9OdW1iZXIoU3RyaW5nVmlldyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9hZGVyLmNwcAppbmRleCA2Y2ZkNDAw
MTY4ZTI2ZWJlMjNiZDZhMjg0MGY4YWU1ZjEwYTAyN2VkLi5iMDlmZDQ0ZTZhZjcyMzFjNjdlZmFl
MWM5MWExNmQ3MTUzODAzMTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNb2R1bGVMb2FkZXIuY3BwCkBAIC00NCwxNCArNDQsMTQgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclBh
cnNlTW9kdWxlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJSZXF1ZXN0ZWRNb2R1bGVzKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtb2R1bGVMb2FkZXJFdmFsdWF0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyTW9kdWxlRGVjbGFy
YXRpb25JbnN0YW50aWF0aW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJSZXNvbHZlKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBtb2R1bGVMb2FkZXJSZXNvbHZlU3luYyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyRmV0Y2goSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1vZHVsZUxvYWRlckdldE1vZHVsZU5hbWVzcGFjZU9iamVjdChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxl
TG9hZGVyUGFyc2VNb2R1bGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9k
dWxlTG9hZGVyUmVxdWVzdGVkTW9kdWxlcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtb2R1bGVMb2FkZXJFdmFsdWF0ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtb2R1bGVMb2FkZXJNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24pOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyUmVzb2x2ZSk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJSZXNvbHZlU3luYyk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJGZXRjaCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3BhY2VP
YmplY3QpOwogCiB9CiAKQEAgLTM2Miw3ICszNjIsNyBAQCBKU01vZHVsZU5hbWVzcGFjZU9iamVj
dCogSlNNb2R1bGVMb2FkZXI6OmdldE1vZHVsZU5hbWVzcGFjZU9iamVjdChKU0dsb2JhbE9iamVj
dAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bW9kdWxlTG9hZGVyUGFyc2VNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVy
UGFyc2VNb2R1bGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCkBAIC00MDYs
NyArNDA2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJQYXJz
ZU1vZHVsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHByb21pc2UpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVs
ZUxvYWRlclJlcXVlc3RlZE1vZHVsZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVy
UmVxdWVzdGVkTW9kdWxlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDI0LDcgKzQyNCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVxdWVzdGVkTW9kdWxl
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1
bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlck1vZHVs
ZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2Fk
ZXJNb2R1bGVEZWNsYXJhdGlvbkluc3RhbnRpYXRpb24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTQ0Miw3ICs0NDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRl
ck1vZHVsZURlY2xhcmF0aW9uSW5zdGFudGlhdGlvbihKU0dsb2JhbAogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gSG9vayBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUmVzb2x2
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihtb2R1bGVMb2FkZXJSZXNvbHZlLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAvLyBIb29rIHBvaW50LCBMb2FkZXIucmVzb2x2ZS4K
QEAgLTQ1NSw3ICs0NTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxv
YWRlclJlc29sdmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUobG9hZGVyLT5yZXNvbHZlKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5h
cmd1bWVudCgwKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgy
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlclJlc29s
dmVTeW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlclJlc29sdmVTeW5jLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC00NjgsNyArNDY4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtb2R1bGVMb2FkZXJSZXNvbHZlU3luYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGlkZW50aWZpZXJUb0pTVmFsdWUodm0sIHJl
c3VsdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlckZl
dGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1vZHVsZUxvYWRlckZldGNoLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICAvLyBIb29rIHBvaW50LCBMb2FkZXIuZmV0Y2gKQEAg
LTQ4Miw3ICs0ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRl
ckZldGNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUobG9hZGVyLT5mZXRjaChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1l
bnQoMCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMSksIGNhbGxGcmFtZS0+YXJndW1lbnQoMikpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJHZXRNb2R1bGVO
YW1lc3BhY2VPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obW9kdWxlTG9hZGVyR2V0TW9kdWxl
TmFtZXNwYWNlT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00OTcsNyArNDk3LDcgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtb2R1bGVMb2FkZXJHZXRNb2R1bGVOYW1lc3Bh
Y2VPYmplY3QoSlNHbG9iYWxPYmplY3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRpdGlv
bmFsIEhvb2sgRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1vZHVsZUxvYWRlckV2YWx1YXRlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG1vZHVsZUxvYWRlckV2YWx1YXRlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIC8vIFRvIGluc3RydW1lbnQgYW5kIHJl
dHJpZXZlIHRoZSBlcnJvcnMgcmFpc2VkIGZyb20gdGhlIG1vZHVsZSBleGVjdXRpb24sCiAgICAg
Ly8gd2UgaW5zZXJ0ZWQgdGhlIGhvb2sgcG9pbnQgaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAKaW5kZXggNzRkYzY0
YjZjMDNmMjI1ZTVhMmEyY2EwODU0YjdjN2E3YmFhMGZkOC4uNDVmZjM4MjBmYTdkMjM1NDE5YmIy
ZDg3OTgzYjI4ZmUzOGUxZGJkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpzX2luZm8g
PSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9N
RVRIT0RfVEFCTEUoSlNOYXRpdmVTdGRGdW5jdGlvbikgfTsKIAorc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocnVuU3RkRnVuY3Rpb24pOworCiBKU05hdGl2ZVN0ZEZ1bmN0aW9uOjpK
U05hdGl2ZVN0ZEZ1bmN0aW9uKFZNJiB2bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE5hdGl2
ZVN0ZEZ1bmN0aW9uJiYgZnVuY3Rpb24pCiAgICAgOiBCYXNlKHZtLCBleGVjdXRhYmxlLCBnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIG1fZnVuY3Rpb24oV1RGTW92ZShmdW5jdGlvbikp
CkBAIC01Miw3ICs1NCw3IEBAIHZvaWQgSlNOYXRpdmVTdGRGdW5jdGlvbjo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtLCBOYXRpdmVFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCB1CiAgICAgQVNTRVJUKGlu
aGVyaXRzKHZtLCBpbmZvKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgcnVuU3RkRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocnVuU3RkRnVuY3Rpb24s
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgSlNOYXRpdmVTdGRGdW5jdGlvbiogZnVuY3Rpb24gPSBqc0Nhc3Q8SlNOYXRpdmVTdGRG
dW5jdGlvbio+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAgICAgQVNTRVJUKGZ1bmN0aW9uKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggNTM5
MzdkZTdhYzJjOThiMTYyNjMwZjU4OGI3NzBhMDU3MmQ5NDI4Ni4uMzM5MjliMmQ0ZmY4ODNlZjBm
NDBkZTBhMDY1MDdmNDUwODI0ZmQzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPTk9iamVjdC5jcHAKQEAgLTQyLDggKzQyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKIFNU
QVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU09OT2JqZWN0KTsKIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU09OUHJvdG9GdW5jUGFyc2UoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3Rv
RnVuY1N0cmluZ2lmeShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihKU09OUHJvdG9GdW5jUGFyc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihKU09OUHJvdG9GdW5jU3RyaW5naWZ5KTsKIAogfQogCkBAIC03OTIsNyArNzkyLDcgQEAg
TkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkKIH0K
IAogLy8gRUNNQS0yNjIgdjUgMTUuMTIuMgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U09OUHJvdG9GdW5jUGFyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oSlNPTlByb3RvRnVuY1BhcnNl
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC04MzQsNyArODM0LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBKU09OUHJvdG9GdW5jUGFyc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2EKIH0KIAogLy8gRUNNQS0yNjIgdjUgMTUuMTIuMwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBKU09OUHJvdG9GdW5jU3RyaW5naWZ5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKEpT
T05Qcm90b0Z1bmNTdHJpbmdpZnksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAppbmRleCA4ZTUxZTAzODJhNGNlMmJjNzllNWVm
MDY1YWNkNDM3N2QzODA5Mjg1Li45NWI3ZTlhZDlmMmUyNTQ5OThmYzk1NDNlZjVmN2RmYTRjYjk2
MzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCkBAIC0y
MzcyLDcgKzIzNzIsNyBAQCBib29sIEpTT2JqZWN0OjpkZWZhdWx0SGFzSW5zdGFuY2UoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSwgSgogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByaXZh
dGVGdW5jSW5zdGFuY2VPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQcml2YXRlRnVuY0lu
c3RhbmNlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoMCk7CiAgICAgSlNWYWx1ZSBwcm90byA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQo
MSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCA1OTk3YzA3
NmM3MDFmN2I2YWI2ZTI2NWZhNTg2YjA4NzYzMzZhMGM4Li42NTdiZmNkMWE2YjIzNDBlYzRkMWI5
OGRhYjBkYTJmYTE3YzBjMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKQEAgLTEyMzQsNyArMTIzNCw3IEBAIGNsYXNzIEpTRmluYWxPYmplY3QgZmluYWwgOiBw
dWJsaWMgSlNPYmplY3QgewogICAgIH0KIH07CiAKLUpTX0VYUE9SVF9QUklWQVRFIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJpdmF0ZUZ1bmNJbnN0YW5jZU9mKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU19FWFBPUlRfUFJJVkFURSBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKG9iamVjdFByaXZhdGVGdW5jSW5zdGFuY2VPZik7CiAKIGlubGluZSBKU0ZpbmFs
T2JqZWN0KiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGVXaXRoQnV0dGVyZmx5KFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEJ1dHRlcmZseSogYnV0dGVyZmx5KQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdDb25zdHJ1
Y3Rvci5jcHAKaW5kZXggYWVlNmYxOWU0NGEyY2MyZGViOTg5NTA0NDY1ZDc1ZTIyMTY1OTAzZi4u
ZmEzMzM4MmVmYzgzYzA1ZjE5NWQ1NGJlNmY0NTA4NDNjMTBhZjUyMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3Q29u
c3RydWN0b3IuY3BwCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUeXBlZEFycmF5VmlldyhK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0VHlwZWRBcnJheVZpZXcpOwogCiBKU1R5cGVkQXJyYXlWaWV3Q29uc3Ry
dWN0b3I6OkpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjb25zdHJ1Y3RUeXBlZEFycmF5Vmll
dywgY29uc3RydWN0VHlwZWRBcnJheVZpZXcpCkBAIC01Nyw5ICs1Nyw3IEBAIFN0cnVjdHVyZSog
SlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoCiAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8o
SW50ZXJuYWxGdW5jdGlvblR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKIH0KIAotCi0K
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFR5cGVkQXJyYXlW
aWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0VHlwZWRBcnJheVZpZXcsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3Rv
dHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmNwcAppbmRleCAzMTY5MjExNDUzZjI3YmNkMGFhMGU3ZGQxMTFmNTJkYjM2MTEw
MjUwLi4yZTY1ODE1NGYzNGUxODBkNzI3ODg2MDI2MTYyNWExOWVmYzA2ZTZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmNwcApAQCAtMzQsNiArMzQsMjMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jVmFs
dWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlQcm90b1Zp
ZXdGdW5jRW50cmllcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFy
cmF5Vmlld1Byb3RvRnVuY0tleXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5jbHVkZXMpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNMYXN0
SW5kZXhPZik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1Byb3RvRnVuY0luZGV4T2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlw
ZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnVmZmVyKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jTGVuZ3RoKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0
ZXJGdW5jQnl0ZUxlbmd0aCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRl
ckZ1bmNUb1N0cmluZ1RhZyk7CisKICNkZWZpbmUgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJP
VE9UWVBFX0ZVTkNUSU9OKGZ1bmN0aW9uTmFtZSkgZG8geyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICBzd2l0Y2ggKHRoaXNWYWx1ZS5nZXRPYmplY3QoKS0+Y2xhc3NJbmZvKHZtKS0+
dHlwZWRBcnJheVN0b3JhZ2VUeXBlKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBjYXNl
IFR5cGVVaW50OENsYW1wZWQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTYyLDIwICs3OSwyMCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIH0g
d2hpbGUgKGZhbHNlKQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlW
aWV3UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVk
QXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc1R5cGVkQXJyYXlWaWV3LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKHZhbHVlLmlzQ2VsbCgpICYmIGlzVHlwZWRWaWV3KHZhbHVlLmFzQ2Vs
bCgpLT5jbGFzc0luZm8oZ2xvYmFsT2JqZWN0LT52bSgpKS0+dHlwZWRBcnJheVN0b3JhZ2VUeXBl
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJp
dmF0ZUZ1bmNJc05ldXRlcmVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJp
dmF0ZUZ1bmNJc05ldXRlcmVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgYXJndW1lbnQgPSBjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KDApOwogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBhcmd1
bWVudC5pc0NlbGwoKSAmJiBpc1R5cGVkVmlldyhhcmd1bWVudC5hc0NlbGwoKS0+Y2xhc3NJbmZv
KGdsb2JhbE9iamVjdC0+dm0oKSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZSkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KGFy
Z3VtZW50KS0+aXNOZXV0ZXJlZCgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0
eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC05
MSw3ICsxMDgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNMZW5ndGgoSlNHbG9iYWxPYmplY3QqIGdsbwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+bGVuZ3RoKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2luYWxD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5j
R2V0T3JpZ2luYWxDb25zdHJ1Y3RvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgVHlwZWRBcnJheVR5cGUgdHlwZSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQo
MCkuZ2V0T2JqZWN0KCktPmNsYXNzSW5mbyh2bSktPnR5cGVkQXJyYXlTdG9yYWdlVHlwZTsKQEAg
LTExNSwyMiArMTMyLDIyIEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjcmVhdGVUeXBlZEFycmF5
SXRlcmF0b3JPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU0FycmF5SXRlcmF0b3I6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5h
cnJheUl0ZXJhdG9yU3RydWN0dXJlKCksIHRoaXNPYmplY3QsIGpzTnVtYmVyKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihraW5kKSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
dHlwZWRBcnJheVZpZXdQcm90b0Z1bmNWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZVR5cGVkQXJy
YXlJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0aW9uS2luZDo6
VmFsdWVzKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRB
cnJheVByb3RvVmlld0Z1bmNFbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlQ
cm90b1ZpZXdGdW5jRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZWRBcnJheUl0ZXJhdG9y
T2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNLZXlzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5j
S2V5cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gY3JlYXRlVHlwZWRBcnJheUl0ZXJhdG9yT2JqZWN0KGdsb2JhbE9i
amVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpLZXlzKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTM5LDcgKzE1Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlw
ZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgQ0FM
TF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5
Vmlld1ByaXZhdGVGdW5jU29ydCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTAsNyAr
MTY3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNTZXQoSlNHbG9iYWxPYmplY3QqIGcKICAgICBDQUxMX0dFTkVSSUNfVFlQRURB
UlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2V0
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZp
ZXdQcm90b0Z1bmNDb3B5V2l0aGluKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jQ29weVdpdGhpbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTYxLDcgKzE3OCw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jQ29weVdpdGhpbihKU0dsb2JhbE9iCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlf
UFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0NvcHlXaXRo
aW4pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5
Vmlld1Byb3RvRnVuY0luY2x1ZGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jSW5jbHVkZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE3Miw3ICsxODksNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3Rv
RnVuY0luY2x1ZGVzKEpTR2xvYmFsT2JqZQogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BS
T1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmNsdWRlcyk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQ
cm90b0Z1bmNMYXN0SW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTgzLDcgKzIwMCw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxPCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlf
UFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRl
eE9mKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJh
eVZpZXdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJvdG9GdW5jSW5kZXhPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk0LDcgKzIxMSw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9G
dW5jSW5kZXhPZihKU0dsb2JhbE9iamVjCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJP
VE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0luZGV4T2YpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1By
b3RvRnVuY0pvaW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNK
b2luLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDUsNyArMjIyLDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKEpTR2xv
YmFsT2JqZWN0KgogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElP
TihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNKb2luKTsKIH0KIAotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZm
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZm
ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxNiw3ICsyMzMsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J1ZmZl
cihKU0dsb2JhbAogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElP
TihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCdWZmZXIpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVy
RnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1Byb3RvR2V0dGVy
RnVuY0xlbmd0aCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI3LDcgKzI0NCw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJG
dW5jTGVuZ3RoKEpTR2xvYmFsCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBF
X0ZVTkNUSU9OKGdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0xlbmd0aCk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJv
dG9HZXR0ZXJGdW5jQnl0ZUxlbmd0aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmll
d1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzOCw3
ICsyNTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5
Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVMZW5ndGgoSlNHbAogICAgIENBTExfR0VORVJJQ19UWVBF
REFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0dldHRl
ckZ1bmNCeXRlTGVuZ3RoKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgdHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNCeXRlT2Zmc2V0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMjQ5LDcgKzI2Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jQnl0ZU9mZnNldChKU0dsCiAg
ICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVyaWNUeXBl
ZEFycmF5Vmlld1Byb3RvR2V0dGVyRnVuY0J5dGVPZmZzZXQpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1JldmVyc2UoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yNjAsNyArMjc3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcm90b0Z1bmNSZXZlcnNlKEpTR2xvYmFsT2JqZWMK
ICAgICBDQUxMX0dFTkVSSUNfVFlQRURBUlJBWV9QUk9UT1RZUEVfRlVOQ1RJT04oZ2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjcxLDcgKzI4OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKEpTR2xvYmFs
T2JqCiAgICAgQ0FMTF9HRU5FUklDX1RZUEVEQVJSQVlfUFJPVE9UWVBFX0ZVTkNUSU9OKGdlbmVy
aWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUpOwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJvdG9GdW5jU2xpY2UsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTI4Miw3ICsyOTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNlKEpTR2xvYmFsT2JqZWN0
KgogICAgIENBTExfR0VORVJJQ19UWVBFREFSUkFZX1BST1RPVFlQRV9GVU5DVElPTihnZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTbGljZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHR5cGVkQXJyYXlWaWV3UHJvdG9HZXR0ZXJGdW5jVG9TdHJpbmdUYWco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcm90b0dldHRlckZ1bmNUb1N0cmlu
Z1RhZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCk7CiAg
ICAgaWYgKCF0aGlzVmFsdWUuaXNPYmplY3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuaAppbmRleCA5MjFh
NWQwOWZiM2IzN2U4ZmIxMTZjM2EzYTQxZmM3NWQ5ZDEwY2RlLi44ZTdkYWMxNDFiY2FiODQ2MjBh
OTQ4YzVmOTM3MTkwYTJlYmQwNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCkBAIC01MSwxMSArNTEs
MTEgQEAgY2xhc3MgSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05v
bkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmpl
Y3QqKTsKIH07CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQ
cml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lz
TmV1dGVyZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1NvcnQoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgdHlwZWRBcnJheVZp
ZXdQcml2YXRlRnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jR2V0T3JpZ2lu
YWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU3ViYXJyYXlDcmVhdGUo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJheVZpZXcpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJlZCk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTb3J0KTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0xlbmd0aCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNHZXRP
cmlnaW5hbENvbnN0cnVjdG9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJh
eVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRlKTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcApp
bmRleCBkMWI1ZmYxMmFhNWY3ZTViZGY3ZTAyYzM3ZDFiZWRjOGI2NzYxMTk4Li5mYmQ5MzYxZDdj
M2I3ZGIzOWYxYzljNGQ0NTVhMTczMTkzZWE4NzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcApAQCAtMjksMTYgKzI5LDI2IEBACiAjaW5j
bHVkZSAiR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKICNpbmNsdWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaCIKKyNpbmNs
dWRlICJKU0dlbmVyaWNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9ySW5saW5lcy5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIAorI2RlZmluZSBNQUtFX0NPTlNUUlVDVE9SUyhDbGFzcykgXAorICAgIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsIyNDbGFzcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkgeyBcCisgICAgICAgIHJldHVybiBjYWxs
R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW1wbDxKUyMjQ2xhc3M+KGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lKTsgXAorICAgIH0gXAorICAgIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3Qj
I0NsYXNzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKSB7IFwKKyAgICAgICAgcmV0dXJuIGNvbnN0cnVjdEdlbmVyaWNUeXBlZEFycmF5Vmlld0lt
cGw8SlMjI0NsYXNzPihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7IFwKKyAgICB9CisKICN1bmRl
ZiBNQUtFX1NfSU5GTwogI2RlZmluZSBNQUtFX1NfSU5GTyh0eXBlKSBcCiAgICAgdGVtcGxhdGU8
PiBjb25zdCBDbGFzc0luZm8gSlMjI3R5cGUjI0FycmF5OjpzX2luZm8gPSB7IFwKICAgICAgICAg
I3R5cGUgIkFycmF5IiwgJkpTIyN0eXBlIyNBcnJheTo6QmFzZTo6c19pbmZvLCBudWxscHRyLCBu
dWxscHRyLCBcCiAgICAgICAgIENSRUFURV9NRVRIT0RfVEFCTEUoSlMjI3R5cGUjI0FycmF5KSBc
CiAgICAgfTsgXAotICAgIGNvbnN0IENsYXNzSW5mbyogZ2V0IyN0eXBlIyNBcnJheUNsYXNzSW5m
bygpIHsgcmV0dXJuICZKUyMjdHlwZSMjQXJyYXk6OnNfaW5mbzsgfQorICAgIGNvbnN0IENsYXNz
SW5mbyogZ2V0IyN0eXBlIyNBcnJheUNsYXNzSW5mbygpIHsgcmV0dXJuICZKUyMjdHlwZSMjQXJy
YXk6OnNfaW5mbzsgfSBcCisgICAgTUFLRV9DT05TVFJVQ1RPUlModHlwZSMjQXJyYXkpCiAKIE1B
S0VfU19JTkZPKEludDgpOwogTUFLRV9TX0lORk8oSW50MTYpOwpAQCAtNTAsMTEgKzYwLDcgQEAg
TUFLRV9TX0lORk8oVWludDMyKTsKIE1BS0VfU19JTkZPKEZsb2F0MzIpOwogTUFLRV9TX0lORk8o
RmxvYXQ2NCk7CiAKLUpTVWludDhBcnJheSogY3JlYXRlVWludDhUeXBlZEFycmF5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWZQdHI8QXJyYXlC
dWZmZXI+JiYgYnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCi17
Ci0gICAgcmV0dXJuIEpTVWludDhBcnJheTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCBXVEZNb3ZlKGJ1ZmZlciksIGJ5dGVPZmZzZXQsIGxlbmd0aCk7Ci19Ci0KK01BS0VfQ09OU1RS
VUNUT1JTKERhdGFWaWV3KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmNwcAppbmRleCAxMDlkNThkOGY5
ODJiYTFkNjRhNWU0YmI5MGJlMDE0ZjM5Y2NjZmQ2Li4yYzM3MzI1ODBjYmVjZTEzNWIyY2U1MGM5
MzJkZWJhMTgwYmNmMmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWFwQ29uc3RydWN0b3IuY3BwCkBAIC00MiwyMiArNDIsMjIgQEAgdm9pZCBNYXBDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBNYXBQcm90b3R5cGUqIG1hcFByb3RvdHlwZSwgR2V0
dGVyU2UKICAgICBwdXREaXJlY3ROb25JbmRleEFjY2Vzc29yV2l0aG91dFRyYW5zaXRpb24odm0s
IHZtLnByb3BlcnR5TmFtZXMtPnNwZWNpZXNTeW1ib2wsIHNwZWNpZXNTeW1ib2wsIFByb3BlcnR5
QXR0cmlidXRlOjpBY2Nlc3NvciB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxNYXAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE1hcChKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE1hcCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RNYXApOwogCiBNYXBD
b25zdHJ1Y3Rvcjo6TWFwQ29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICA6IEJhc2Uodm0sIHN0cnVjdHVyZSwgY2FsbE1hcCwgY29uc3RydWN0TWFwKQogewogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWFwKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
Y2FsbE1hcCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0
cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsICJNYXAiKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdE1hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RNYXAsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zdHJ1Y3RNYXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUobWFwKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEhlYWQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRIZWFkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVF9VTlVTRUQoZ2xvYmFsT2Jq
ZWN0LCBqc0R5bmFtaWNDYXN0PEpTTWFwKj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKSk7CiAgICAgSlNNYXAqIG1hcCA9IGpzQ2FzdDxKU01hcCo+KGNhbGxGcmFt
ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRIZWFkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShoZWFkKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldE5leHQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXROZXh0LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VS
VChqc0R5bmFtaWNDYXN0PEpTTWFwOjpCdWNrZXRUeXBlKj4oZ2xvYmFsT2JqZWN0LT52bSgpLCBj
YWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAgYXV0byogYnVja2V0ID0ganNDYXN0PEpTTWFw
OjpCdWNrZXRUeXBlKj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7CkBAIC0xMzUs
NyArMTM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01h
cEJ1Y2tldE5leHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGdsb2JhbE9iamVjdC0+dm0oKS5zZW50aW5lbE1hcEJ1Y2tldCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEtleShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihtYXBQcml2YXRlRnVuY01hcEJ1Y2tldEtleSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlRf
VU5VU0VEKGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGds
b2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpOwogICAgIGF1dG8qIGJ1
Y2tldCA9IGpzQ2FzdDxKU01hcDo6QnVja2V0VHlwZSo+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJn
dW1lbnQoMCkpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWFwUHJpdmF0ZUZ1bmNNYXBCdWNrZXRLZXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShidWNrZXQtPmtleSgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldFZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKG1hcFByaXZhdGVGdW5jTWFwQnVja2V0VmFsdWUsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChnbG9iYWxPYmplY3QsIGpzRHluYW1pY0Nhc3Q8SlNNYXA6OkJ1Y2tldFR5cGUqPihnbG9i
YWxPYmplY3QtPnZtKCksIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKICAgICBhdXRvKiBidWNr
ZXQgPSBqc0Nhc3Q8SlNNYXA6OkJ1Y2tldFR5cGUqPihjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENv
bnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXBDb25zdHJ1Y3Rv
ci5oCmluZGV4IGRiOWQ0N2RiM2UxNzU0YTI4YTBhOGIyZWVlZDMxZWJiYWYyYmZhOTEuLjdhMzVh
ZTc4NDViOGUxNzZiNDNiY2YzYTYzYjQyODkzNDU4ZTRlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWFwQ29uc3RydWN0b3IuaApAQCAtNTcsOSArNTcsOSBAQCBjbGFz
cyBNYXBDb25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBJbnRlcm5hbEZ1bmN0aW9uIHsKIH07CiBT
VEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShNYXBDb25zdHJ1Y3RvciwgSW50ZXJu
YWxGdW5jdGlvbik7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJpdmF0ZUZ1
bmNNYXBCdWNrZXRIZWFkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByaXZhdGVGdW5jTWFwQnVja2V0TmV4dChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2
YXRlRnVuY01hcEJ1Y2tldEtleShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcml2YXRlRnVuY01hcEJ1Y2tldFZhbHVlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFBy
aXZhdGVGdW5jTWFwQnVja2V0SGVhZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFBy
aXZhdGVGdW5jTWFwQnVja2V0TmV4dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFBy
aXZhdGVGdW5jTWFwQnVja2V0S2V5KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJp
dmF0ZUZ1bmNNYXBCdWNrZXRWYWx1ZSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFwUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcFByb3RvdHlwZS5jcHAKaW5kZXggZTc0NDE5ZjM2
ZmMyNGNmNjcxOWJlNDliNTQzMzQ2OGE0Nzk3ZmQ4ZS4uNGZhZTZhOTM0ZDdiMzM2NzEyMTc3Njky
MzgxOTQyNjQ3YTZhZDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXBQcm90b3R5cGUuY3BwCkBAIC00MywxNiArNDMsMTYgQEAgY29uc3QgQ2xhc3NJbmZvIE1hcFBy
b3RvdHlwZTo6c19pbmZvID0geyAiTWFwIiwgJkJhc2U6OnNfaW5mbywgJm1hcFByb3RvdHlwZVRh
YmwKIEBlbmQKICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFBy
b3RvRnVuY0NsZWFyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNEZWxldGUoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFBy
b3RvRnVuY0dldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jSGFzKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1
bmNTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5j
S2V5cyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1
bmNTaXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNDbGVhcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihtYXBQcm90b0Z1bmNEZWxldGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obWFwUHJvdG9GdW5jR2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG1hcFByb3RvRnVuY0hhcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTiht
YXBQcm90b0Z1bmNTZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJv
dG9GdW5jVmFsdWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFByb3Rv
RnVuY0tleXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5j
RW50cmllcyk7CisKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVu
Y1NpemUpOwogICAgIAogdm9pZCBNYXBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKQEAgLTk3LDcgKzk3LDcgQEAgQUxXQVlT
X0lOTElORSBzdGF0aWMgSlNNYXAqIGdldE1hcChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHRoaXNWYWwKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTiht
YXBQcm90b0Z1bmNDbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU01hcCogbWFwID0gZ2V0TWFwKGdsb2JhbE9iamVjdCwg
Y2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFtYXApCkBAIC0xMDYsNyArMTA2LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNDbGVhcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3Rv
RnVuY0RlbGV0ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNEZWxldGUsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNNYXAqIG1hcCA9IGdldE1hcChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkp
OwogICAgIGlmICghbWFwKQpAQCAtMTE0LDcgKzExNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWFwUHJvdG9GdW5jRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4obWFwLT5yZW1vdmUoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0dldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXBQ
cm90b0Z1bmNHZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgSlNNYXAqIG1hcCA9IGdldE1hcChnbG9iYWxPYmplY3QsIGNhbGxG
cmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtMTIyLDcgKzEyMiw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShtYXAtPmdl
dChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNIYXMoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bWFwUHJvdG9GdW5jSGFzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAgLTEzMCw3ICsxMzAsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hcFByb3RvRnVuY0hhcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNC
b29sZWFuKG1hcC0+aGFzKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNTZXQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5jU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0g
Y2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKICAgICBKU01hcCogbWFwID0gZ2V0TWFwKGdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlKTsKQEAgLTE1MCwyMiArMTUwLDIyIEBAIGlubGluZSBKU1ZhbHVlIGNy
ZWF0ZU1hcEl0ZXJhdG9yT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSoKICAgICByZXR1cm4gSlNNYXBJdGVyYXRvcjo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3Qt
Pm1hcEl0ZXJhdG9yU3RydWN0dXJlKCksIG1hcCwga2luZCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jVmFsdWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
cFByb3RvRnVuY1ZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNyZWF0ZU1hcEl0
ZXJhdG9yT2JqZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpWYWx1
ZXMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXBQcm90b0Z1bmNLZXlz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hcFByb3RvRnVuY0tleXMsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShjcmVhdGVNYXBJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSwgSXRlcmF0aW9uS2luZDo6S2V5cykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hcFByb3RvRnVuY0VudHJpZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWFwUHJvdG9GdW5j
RW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNyZWF0ZU1hcEl0ZXJhdG9yT2Jq
ZWN0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFwUHJvdG9GdW5jU2l6ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihtYXBQcm90b0Z1bmNTaXplLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTTWFwKiBtYXAgPSBnZXRNYXAo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0aE9iamVjdC5jcHAKaW5kZXggZGZmNzg5
OTdmN2NjODRjYjFhNjRiZDhlMzViM2QwZDIxODIyOTQ5ZS4uNjg5MTkyMzA1MDZkMDVjMGNlY2Zj
NzBmNmUxZWZjNzMxYjhhMTNiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWF0aE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aE9iamVjdC5jcHAKQEAgLTMxLDM4ICszMSwzOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU1RB
VElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKE1hdGhPYmplY3QpOwogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBQ29zKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1
bmNBQ29zaChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQVNpbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQVNpbmgoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0
aFByb3RvRnVuY0FUYW4oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FUYW5oKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBVGFu
MihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXRoUHJvdG9GdW5jQ2JydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQ2VpbChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9G
dW5jQ2x6MzIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0NvcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQ29zaChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRo
UHJvdG9GdW5jRXhwKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNFeHBtMShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jRnJvdW5k
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNIeXBvdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTG9nKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1
bmNMb2cxcChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTG9nMTAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZzIoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0
aFByb3RvRnVuY01heChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTWluKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNQb3coSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
bWF0aFByb3RvRnVuY1JhbmRvbShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jUm91bmQoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVu
Y1NpZ24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jU2luaChKU0dsb2JhbE9i
amVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jU3FydChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jVGFuKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW5oKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNJTXVsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBQ29zKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04obWF0aFByb3RvRnVuY0FDb3NoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0FTaW4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
QVNpbmgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQVRhbik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBVGFuaCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBVGFuMik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNDYnJ0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0NlaWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
Q2x6MzIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ29zKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0Nvc2gpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jRXhwKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04obWF0aFByb3RvRnVuY0V4cG0xKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFBy
b3RvRnVuY0Zyb3VuZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNI
eXBvdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTG9nMXApOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTG9nMTApOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihtYXRoUHJvdG9GdW5jTG9nMik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQ
cm90b0Z1bmNNYXgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jTWlu
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1Bvdyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNSYW5kb20pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUm91bmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihtYXRoUHJvdG9GdW5jU2lnbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90
b0Z1bmNTaW4pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jU2luaCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNTcXJ0KTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1Rhbik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNUYW5oKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY0lNdWwpOwogCiBjb25zdCBDbGFzc0luZm8gTWF0aE9iamVjdDo6c19pbmZvID0g
eyAiTWF0aCIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoTWF0aE9iamVjdCkgfTsKIApAQCAtMTI1LDI3ICsxMjUsMjcgQEAgdm9pZCBNYXRoT2Jq
ZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBt
YXRoUHJvdG9GdW5jQWJzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBYnMsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihmYWJzKGNhbGxGcmFtZS0+YXJndW1l
bnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQUNvcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJv
dG9GdW5jQUNvcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1h
dGg6OmFjb3MoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBU2luKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBU2luLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6YXNpbihjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
LnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgbWF0aFByb3RvRnVuY0FUYW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVu
Y0FUYW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRoOjph
dGFuKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQVRhbjIoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0FUYW4yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xNTYsMTIgKzE1NiwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNBVGFuMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoYXRhbjIoYXJnMCwgYXJnMSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQ2VpbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ2VpbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKGNlaWwoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmpl
Y3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmND
bHozMihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jQ2x6MzIsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKQEAgLTE3MCwyMiArMTcwLDIyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY0NsejMyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKGNseih2YWx1ZSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQ29zKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKG1hdGhQcm90b0Z1bmNDb3MsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Rv
dWJsZU51bWJlcihNYXRoOjpjb3MoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9i
YWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNFeHAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0V4cCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmV4cChjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0Zsb29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
dGhQcm90b0Z1bmNGbG9vciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGZs
b29yKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jSHlwb3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0h5cG90LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yMTUsMTIgKzIxNSwxMiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNIeXBvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3FydChzdW0pICogbWF4KSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0xvZyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jTG9nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNE
b3VibGVOdW1iZXIoTWF0aDo6bG9nKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xv
YmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJv
dG9GdW5jTWF4KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNNYXgsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG1hdGhQcm90b0Z1bmNNYXgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0KSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY01pbihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihtYXRoUHJvdG9GdW5jTWluLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTQsNyArMjU0
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTWluKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKHJlc3VsdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1h
dGhQcm90b0Z1bmNQb3coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1BvdywgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICAvLyBFQ01BIDE1LjguMi4xLjEzCiAKQEAgLTI2OSwxNyArMjY5LDE3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1BvdyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKG9wZXJhdGlv
bk1hdGhQb3coYXJnLCBhcmcyKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG1hdGhQcm90b0Z1bmNSYW5kb20oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUmFuZG9tLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihnbG9iYWxPYmplY3QtPndlYWtSYW5kb21OdW1i
ZXIoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNS
b3VuZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jUm91bmQsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihqc1JvdW5kKGNhbGxGcmFtZS0+YXJndW1lbnQoMCku
dG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBtYXRoUHJvdG9GdW5jU2lnbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5j
U2lnbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBkb3VibGUgYXJnID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihn
bG9iYWxPYmplY3QpOwogICAgIGlmIChzdGQ6OmlzbmFuKGFyZykpCkBAIC0yODksMjIgKzI4OSwy
MiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTaWduKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoc3RkOjpzaWduYml0KGFyZykgPyAtMSA6IDEpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jU2luKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1h
dGhQcm90b0Z1bmNTaW4sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJl
cihNYXRoOjpzaW4oY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3Qp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNTcXJ0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNTcXJ0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoc3FydChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRv
TnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgbWF0aFByb3RvRnVuY1RhbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jVGFu
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6dGFuKGNh
bGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jSU11bChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihtYXRoUHJvdG9GdW5jSU11bCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzE1LDY3
ICszMTUsNjcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jSU11
bChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKGxlZnQgKiByaWdodCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNBQ29zaChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJv
dG9GdW5jQUNvc2gsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihN
YXRoOjphY29zaChjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0FTaW5o
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNBU2luaCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmFzaW5oKGNhbGxGcmFtZS0+YXJndW1l
bnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jQVRhbmgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFBy
b3RvRnVuY0FUYW5oLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIo
TWF0aDo6YXRhbmgoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxPYmplY3Qp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNDYnJ0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNDYnJ0LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6Y2JydChjYWxsRnJhbWUtPmFyZ3VtZW50
KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgbWF0aFByb3RvRnVuY0Nvc2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3Rv
RnVuY0Nvc2gsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJlcihNYXRo
Ojpjb3NoKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jRXhwbTEoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0V4cG0xLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6ZXhwbTEoY2FsbEZyYW1lLT5hcmd1bWVudCgw
KS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG1hdGhQcm90b0Z1bmNGcm91bmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0aFByb3Rv
RnVuY0Zyb3VuZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKHN0
YXRpY19jYXN0PGZsb2F0PihjYWxsRnJhbWUtPmFyZ3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9i
amVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVu
Y0xvZzFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cxcCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OmxvZzFwKGNhbGxGcmFtZS0+
YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jTG9nMTAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
bWF0aFByb3RvRnVuY0xvZzEwLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVO
dW1iZXIoTWF0aDo6bG9nMTAoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b051bWJlcihnbG9iYWxP
YmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1
bmNMb2cyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1hdGhQcm90b0Z1bmNMb2cyLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNEb3VibGVOdW1iZXIoTWF0aDo6bG9nMihjYWxsRnJhbWUtPmFy
Z3VtZW50KDApLnRvTnVtYmVyKGdsb2JhbE9iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY1NpbmgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obWF0
aFByb3RvRnVuY1NpbmgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0RvdWJsZU51bWJl
cihNYXRoOjpzaW5oKGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9OdW1iZXIoZ2xvYmFsT2JqZWN0
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jVGFu
aChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJvdG9GdW5jVGFuaCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzRG91YmxlTnVtYmVyKE1hdGg6OnRhbmgoY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKS50b051bWJlcihnbG9iYWxPYmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUcnVuYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihtYXRoUHJv
dG9GdW5jVHJ1bmMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihjYWxsRnJh
bWUtPmFyZ3VtZW50KDApLnRvSW50ZWdlclByZXNlcnZlTmFOKGdsb2JhbE9iamVjdCkpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRleCBjZDRlNjQ3
ZDFkOTUzMzllZmM5NzY2NTNmZDAyYWRhNGJjYTczMTczLi42NzJiYzEzNjBhYmM1OWJiNjQ3Zjc0
MjFiNzI2MDcxMTYxMzY2ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5oCkBAIC01NCw4ICs1NCw4IEBAIGNsYXNzIE1hdGhPYmplY3QgZmluYWwgOiBwdWJs
aWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xv
YmFsT2JqZWN0Kik7CiB9OwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90
b0Z1bmNBYnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0Zsb29yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1l
Kik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUcnVuYyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYXRo
UHJvdG9GdW5jQWJzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY0Zs
b29yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWF0aFByb3RvRnVuY1RydW5jKTsKIAog
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCmluZGV4IDE2NzU0NjliYzcxYmJkMjNh
Y2M0OTg5OGZmNjA3NDZjYmIyMmQwYmQuLjdjYzExYjVmNWUxMjk3MjIwMTZiODY3MWYxMzdjNmJi
MTcyMTM4NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2
ZUVycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUVycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0zMSw2ICszMSwxOSBAQCBTVEFUSUNfQVNT
RVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoTmF0aXZlRXJyb3JDb25zdHJ1Y3RvckJhc2Up
OwogCiBjb25zdCBDbGFzc0luZm8gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvckJhc2U6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01F
VEhPRF9UQUJMRShOYXRpdmVFcnJvckNvbnN0cnVjdG9yQmFzZSkgfTsKIAorc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEV2YWxFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RFdmFsRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY2FsbFJhbmdlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0UmFuZ2VFcnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihjYWxsUmVmZXJlbmNlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY29uc3RydWN0UmVmZXJlbmNlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY2FsbFN5bnRheEVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNvbnN0cnVjdFN5bnRheEVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGNhbGxUeXBlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0VHlwZUVycm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxVUklF
cnJvcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVUklFcnJv
cik7CisKIHRlbXBsYXRlPEVycm9yVHlwZSBlcnJvclR5cGU+CiBpbmxpbmUgRW5jb2RlZEpTVmFs
dWUgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxlcnJvclR5cGU+Ojpjb25zdHJ1Y3RJbXBsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewpAQCAtNTYs
NTYgKzY5LDU2IEBAIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
PGVycm9yVHlwZT46OmNhbGxJbXBsKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShFcnJvckluc3RhbmNlOjpjcmVhdGUoZ2xvYmFsT2JqZWN0LCBlcnJvclN0cnVjdHVy
ZSwgbWVzc2FnZSwgbnVsbHB0ciwgVHlwZU5vdGhpbmcsIGZhbHNlKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxFdmFsRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY2FsbEV2YWxFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxF
cnJvclR5cGU6OkV2YWxFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsK
IH0KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEV2YWxFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RFdmFsRXJyb3IsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5h
dGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpFdmFsRXJyb3I+Ojpjb25zdHJ1Y3RJbXBs
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFJhbmdlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJhbmdl
RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBlOjpSYW5n
ZUVycm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0UmFuZ2VFcnJvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RSYW5nZUVycm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNv
bnN0cnVjdG9yPEVycm9yVHlwZTo6UmFuZ2VFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsUmVmZXJlbmNlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJlZmVyZW5jZUVy
cm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6UmVmZXJl
bmNlRXJyb3I+OjpjYWxsSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9Ci1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RSZWZlcmVuY2VFcnJvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RSZWZlcmVuY2VFcnJvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0
aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlJlZmVyZW5jZUVycm9yPjo6Y29uc3RydWN0
SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW50YXhFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxs
U3ludGF4RXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I8RXJyb3JUeXBl
OjpTeW50YXhFcnJvcj46OmNhbGxJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFN5bnRheEVycm9yKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFN5bnRheEVycm9yLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBOYXRp
dmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6U3ludGF4RXJyb3I+Ojpjb25zdHJ1Y3RJbXBs
KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY2FsbFR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsVHlwZUVy
cm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBOYXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6VHlwZUVy
cm9yPjo6Y2FsbEltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwogfQotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0VHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdFR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1
Y3RvcjxFcnJvclR5cGU6OlR5cGVFcnJvcj46OmNvbnN0cnVjdEltcGwoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
VVJJRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFVSSUVycm9yLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBO
YXRpdmVFcnJvckNvbnN0cnVjdG9yPEVycm9yVHlwZTo6VVJJRXJyb3I+OjpjYWxsSW1wbChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zdHJ1Y3RVUklFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjb25zdHJ1Y3RVUklF
cnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcjxFcnJvclR5cGU6OlVSSUVy
cm9yPjo6Y29uc3RydWN0SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAppbmRleCBiMTY1ODQ1
OGU4ZDlmYzU4MTBkNWI5MDVlYTFhOTllNTYzMGU1ZTM3Li5lYzliMmQ1ODMwZjBjYzRjYjMyNTZj
Mjc1OTkwZGRkZmYxZTEwMWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L05hdGl2ZUZ1bmN0aW9uLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNs
YXNzIENhbGxGcmFtZTsKIAotdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoSlNDX0hPU1RfQ0FMTCAq
UmF3TmF0aXZlRnVuY3Rpb24pKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Cit0eXBlZGVm
IEVuY29kZWRKU1ZhbHVlIChKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgKlJhd05hdGl2ZUZ1bmN0
aW9uKShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwogCiBjbGFzcyBOYXRpdmVGdW5jdGlv
biB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dWxsR2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVs
bEdldHRlckZ1bmN0aW9uLmNwcAppbmRleCAyMzg5NTU1ODU4NjAyOGY4MjMwOGQ1NjM1YWEyNmRl
ZDcwNWYxZjU0Li5hYWUyMGE1YmM3NTliMDUyY2YxOTM5Nzg4YjZjMDBjMmFkYjIyY2ZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsR2V0dGVyRnVuY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bGxHZXR0ZXJGdW5jdGlv
bi5jcHAKQEAgLTMzLDcgKzMzLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogY29uc3QgQ2xhc3NJbmZv
IE51bGxHZXR0ZXJGdW5jdGlvbjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE51bGxHZXR0ZXJGdW5jdGlv
bikgfTsKIAogbmFtZXNwYWNlIE51bGxHZXR0ZXJGdW5jdGlvbkludGVybmFsIHsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKQorCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsUmV0dXJuVW5kZWZpbmVkKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxSZXR1
cm5VbmRlZmluZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVsbFNldHRlckZ1bmN0aW9uLmNwcAppbmRleCA0OTk0ODk3
MTMxZThlZjY3MWZjOGQyOTc0N2Q3YTY5MDgyMGI4MDlhLi4yNmYzYjZhOGY5ZGI2NzhjZDk0ZDA1
YWU4OGIxMWI4OWU2MWMwZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdWxsU2V0dGVyRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL051bGxTZXR0ZXJGdW5jdGlvbi5jcHAKQEAgLTc1LDcgKzc1LDEwIEBAIHN0YXRpYyBi
b29sIGNhbGxlcklzU3RyaWN0KFZNJiB2bSwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiAKIG5hbWVz
cGFjZSBOdWxsU2V0dGVyRnVuY3Rpb25JbnRlcm5hbCB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsUmV0dXJuVW5kZWZpbmVkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxUaHJvd0Vycm9yKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxS
ZXR1cm5VbmRlZmluZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAjaWYgIUFTU0VSVF9FTkFCTEVECiAgICAgVU5VU0VEX1BBUkFNKGds
b2JhbE9iamVjdCk7CkBAIC04NSw3ICs4OCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNhbGxSZXR1cm5VbmRlZmluZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFRocm93RXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxs
VGhyb3dFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDA0ZTc5YjNkNWMzYjEzMTlhYTU4Mjg3
MGY0NmIxZTViOTM0MTMyMi4uOGZmNDUzNDk1NWEwYTgxNzlkYjUyYzAyMzA4NDQ3ODhiZjM4ZDg2
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmNwcApAQCAtMjgsOCArMjgsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29uc3RydWN0b3JGdW5jSXNJbnRl
Z2VyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBudW1iZXJDb25zdHJ1Y3RvckZ1bmNJc1NhZmVJbnRlZ2VyKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihu
dW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVnZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04obnVtYmVyQ29uc3RydWN0b3JGdW5jSXNTYWZlSW50ZWdlcik7CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCkBAIC00OSw4ICs0OSw4IEBAIGNvbnN0IENsYXNzSW5mbyBOdW1iZXJDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBA
ZW5kCiAqLwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTnVtYmVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsTnVtYmVyQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
Y29uc3RydWN0TnVtYmVyQ29uc3RydWN0b3IpOwogCiBOdW1iZXJDb25zdHJ1Y3Rvcjo6TnVtYmVy
Q29uc3RydWN0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFs
RnVuY3Rpb24odm0sIHN0cnVjdHVyZSwgY2FsbE51bWJlckNvbnN0cnVjdG9yLCBjb25zdHJ1Y3RO
dW1iZXJDb25zdHJ1Y3RvcikKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBOdW1iZXJDb25zdHJ1Y3Rv
cjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBOdW1iZXJQcm90b3R5cGUqIG51bWJlclByb3RvdHlw
ZSkKIH0KIAogLy8gRUNNQSAxNS43LjEKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdE51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdE51bWJlckNvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTIsNyArMTEy
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0TnVtYmVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGcKIH0KIAogLy8gRUNNQSAxNS43LjIKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxOdW1iZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjYWxsTnVtYmVyQ29uc3RydWN0b3IsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTEyNywxMyArMTI3LDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxOdW1iZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiB9CiAKIC8v
IEVDTUEtMjYyIDIwLjEuMi4zCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBu
dW1iZXJDb25zdHJ1Y3RvckZ1bmNJc0ludGVnZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJDb25zdHJ1Y3RvckZ1
bmNJc0ludGVnZXIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihOdW1iZXJDb25zdHJ1Y3Rvcjo6
aXNJbnRlZ2VySW1wbChjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwogfQogCiAvLyBFQ01BLTI2
MiAyMC4xLjIuNQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyQ29u
c3RydWN0b3JGdW5jSXNTYWZlSW50ZWdlcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG51bWJlckNvbnN0cnVjdG9yRnVuY0lz
U2FmZUludGVnZXIsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBpZiAo
YXJndW1lbnQuaXNJbnQzMigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggNThhYzE4Y2YyMGQ1ZjlmMWYxZjQ1ZGNlMmE3OTZi
Nzc5ZmU2OWIxMC4uZWZjNjc3MzUxOTA5MmNhYjY3OTc5Y2M0Y2RiZmY4OWY1NTUzMzNkOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuY3Bw
CkBAIC00MCwxMCArNDAsMTAgQEAgdHlwZWRlZiBXVEY6OmRvdWJsZV9jb252ZXJzaW9uOjpTdHJp
bmdCdWlsZGVyIERvdWJsZUNvbnZlcnNpb25TdHJpbmdCdWlsZGVyOwogCiBuYW1lc3BhY2UgSlND
IHsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1RvRml4ZWQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUq
KTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1Rv
UHJlY2lzaW9uKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb0ZpeGVkKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG51bWJlclByb3RvRnVuY1RvRXhwb25lbnRpYWwp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9QcmVj
aXNpb24pOwogCiB9CiAKQEAgLTM4Miw3ICszODIsNyBAQCBTdHJpbmcgdG9TdHJpbmdXaXRoUmFk
aXgoZG91YmxlIGRvdWJsZVZhbHVlLCBpbnQzMl90IHJhZGl4KQogLy8gVGhpcyBtZXRob2QgdGFr
ZXMgYW4gb3B0aW9uYWwgYXJndW1lbnQgc3BlY2lmeWluZyBhIG51bWJlciBvZiAqZGVjaW1hbCBw
bGFjZXMqCiAvLyB0byByb3VuZCB0aGUgc2lnbmlmaWNhbmQgdG8gKG9yLCBwdXQgYW5vdGhlciB3
YXksIHRoaXMgbWV0aG9kIG9wdGlvbmFsbHkgcm91bmRzCiAvLyB0byBhcmd1bWVudC1wbHVzLW9u
ZSBzaWduaWZpY2FudCBmaWd1cmVzKS4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVt
YmVyUHJvdG9GdW5jVG9FeHBvbmVudGlhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90
b0Z1bmNUb0V4cG9uZW50aWFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC00MTksNyArNDE5LDcg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb0V4cG9uZW50
aWFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIC8vIFRoaXMgbWV0aG9kIHRha2VzIGFuIGFyZ3Vt
ZW50IHNwZWNpZnlpbmcgYSBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gcm91bmQgdGhlCiAv
LyBzaWduaWZpY2FuZCB0by4gSG93ZXZlciB3aGVuIGNvbnZlcnRpbmcgbGFyZ2UgdmFsdWVzICgx
ZSsyMSBhbmQgYWJvdmUpIHRoaXMKIC8vIG1ldGhvZCB3aWxsIGluc3RlYWQgZmFsbGJhY2sgdG8g
Y2FsbGluZyBUb1N0cmluZy4gCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclBy
b3RvRnVuY1RvRml4ZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9GaXhl
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNDUzLDcgKzQ1Myw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9GaXhlZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0CiAvLyBkZWNpbWFsLCB3aGlsc3QgMTAwMCBpcyBjb252ZXJ0ZWQgdG8gdGhlIGV4
cG9uZW50aWFsIHJlcHJlc2VudGF0aW9uIDEuMDBlKzMuCiAvLyBGb3IgbmVnYXRpdmUgZXhwb25l
bnRzIHZhbHVlcyA+PSAxZS02IGFyZSBmb3JtYXRlZCBhcyBkZWNpbWFsIGZyYWN0aW9ucywKIC8v
IHdpdGggc21hbGxlciB2YWx1ZXMgY29udmVydGVkIHRvIGV4cG9uZW50aWFsIHJlcHJlc2VudGF0
aW9uLgotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1ByZWNp
c2lvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb1ByZWNpc2lvbiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtNTQ5LDcgKzU0OSw3IEBAIEpTU3RyaW5nKiBudW1iZXJUb1N0
cmluZyhWTSYgdm0sIGRvdWJsZSBkb3VibGVWYWx1ZSwgaW50MzJfdCByYWRpeCkKICAgICByZXR1
cm4gbnVtYmVyVG9TdHJpbmdJbnRlcm5hbCh2bSwgZG91YmxlVmFsdWUsIHJhZGl4KTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNUb1N0cmluZywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtNTY0LDcgKzU2NCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVt
YmVyUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShudW1iZXJUb1N0cmluZ0ludGVybmFsKHZtLCBkb3VibGVWYWx1
ZSwgcmFkaXgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBudW1iZXJQcm90
b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNU
b0xvY2FsZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTc5LDcgKzU3OSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmco
SlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1Zh
bHVlOjplbmNvZGUobnVtYmVyRm9ybWF0LT5mb3JtYXQoZ2xvYmFsT2JqZWN0LCB4KSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG51bWJlclByb3RvRnVuY1ZhbHVlT2YoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVmFsdWVPZiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUu
aAppbmRleCAzZTA4M2VhMzhlNGI1MmQzZTUzZmJkNWMwYzFmNmE3N2JiMTFlMWZlLi41YzBlNGZl
ZDQyMzJkNjgzZDY4NTA2MTk2M2JiZGQwNjFkOTJlMzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaApAQCAtNDksOCArNDksOCBAQCBjbGFz
cyBOdW1iZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgTnVtYmVyT2JqZWN0IHsKIH07CiBTVEFU
SUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShOdW1iZXJQcm90b3R5cGUsIE51bWJlck9i
amVjdCk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbnVtYmVyUHJvdG9GdW5jVmFs
dWVPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBudW1iZXJQcm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihudW1iZXJQcm90b0Z1bmNWYWx1ZU9mKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obnVtYmVyUHJvdG9GdW5jVG9TdHJpbmcpOwogSlNT
dHJpbmcqIGludDMyVG9TdHJpbmcoVk0mLCBpbnQzMl90IHZhbHVlLCBpbnQzMl90IHJhZGl4KTsK
IEpTU3RyaW5nKiBpbnQ1MlRvU3RyaW5nKFZNJiwgaW50NjRfdCB2YWx1ZSwgaW50MzJfdCByYWRp
eCk7CiBKU1N0cmluZyogbnVtYmVyVG9TdHJpbmcoVk0mLCBkb3VibGUgdmFsdWUsIGludDMyX3Qg
cmFkaXgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29u
c3RydWN0b3IuY3BwCmluZGV4IGQ1ZjFjMjZjYjk4ZmU0YjAxYTM5MzA1ZWYwYjBkMGMzZmMyMzBh
MWYuLmIzMWU5YmNlODNiNGZhMTA1ODY3OWFiZjY3NWFiMzA2MGQyN2VjNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAg
LTMxLDIwICszMSwyMCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbihKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvclZh
bHVlcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0Kiwg
Q2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVj
dG9yU2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eU5hbWVz
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yRGVmaW5lUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqLCBDYWxs
RnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JE
ZWZpbmVQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yQ3JlYXRlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yU2VhbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZShKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
clByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXNTZWFsZWQoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JJc0Zyb3plbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcklzRXh0ZW5zaWJsZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmpl
Y3RDb25zdHJ1Y3RvckFzc2lnbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENv
bnN0cnVjdG9yVmFsdWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3Ry
dWN0b3JHZXRQcm90b3R5cGVPZik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENv
bnN0cnVjdG9yU2V0UHJvdG90eXBlT2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmpl
Y3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5KTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0aWVzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JDcmVhdGUpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclNlYWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihvYmplY3RDb25zdHJ1Y3RvckZyZWV6ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KG9iamVjdENvbnN0cnVjdG9yUHJldmVudEV4dGVuc2lvbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JJc0Zyb3plbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG9iamVjdENvbnN0cnVjdG9ySXNFeHRlbnNpYmxlKTsKIAogfQogCkBAIC04Myw4ICs4Myw4
IEBAIGNvbnN0IENsYXNzSW5mbyBPYmplY3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rp
b24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAqLwogCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
V2l0aE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsT2JqZWN0Q29uc3RydWN0b3IpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVj
dG9yKTsKIAogT2JqZWN0Q29uc3RydWN0b3I6Ok9iamVjdENvbnN0cnVjdG9yKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUs
IGNhbGxPYmplY3RDb25zdHJ1Y3RvciwgY29uc3RydWN0V2l0aE9iamVjdENvbnN0cnVjdG9yKQpA
QCAtMTMwLDIyICsxMzAsMjIgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgSlNPYmplY3QqIGNvbnN0
cnVjdE9iamVjdFdpdGhOZXdUYXJnZXQoSlNHbG9iYWxPYmplY3QqIGdsb2IKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIGFyZ3VtZW50LnRvT2JqZWN0KGdsb2JhbE9iamVjdCkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXaXRoT2JqZWN0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aE9iamVjdENvbnN0
cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0T2JqZWN0V2l0aE5l
d1RhcmdldChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgY2FsbEZyYW1lLT5uZXdUYXJnZXQoKSkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqZWN0Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbE9iamVjdENvbnN0cnVjdG9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0T2JqZWN0V2l0aE5ld1RhcmdldChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgSlNWYWx1ZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckdldFByb3RvdHlwZU9mLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY2FsbEZyYW1lLT5hcmd1bWVudCgwKS5nZXRQcm90b3R5cGUoZ2xvYmFsT2Jq
ZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0
b3JTZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvclNl
dFByb3RvdHlwZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgSlNW
YWx1ZSBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gZGVzY3JpcHRvcnM7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNCw3ICsyMjQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKEpTR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGds
b2JhbE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ycywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjMzLDcgKzIzMyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JzKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjpl
bmNvZGUob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGdsb2JhbE9i
amVjdCwgb2JqZWN0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVj
dENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmpl
Y3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5TmFtZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTI0Myw3ICsyNDMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdAogfQogCiAvLyBGSVhNRTog
VXNlIHRoZSBlbnVtZXJhdGlvbiBjYWNoZS4KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eVN5bWJvbHMsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9i
amVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKEpTR2xvYmFsT2JqZQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhn
bG9iYWxPYmplY3QsIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3ltYm9scywgRG9udEVudW1Q
cm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSwgV1RGOjpudWxsb3B0KSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yS2V5cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihvYmplY3RDb25zdHJ1Y3RvcktleXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2MSw3
ICsyNjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9y
S2V5cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKG93blByb3BlcnR5S2V5cyhnbG9iYWxPYmplY3QsIG9i
amVjdCwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6
RXhjbHVkZSwgQ2FjaGVkUHJvcGVydHlOYW1lc0tpbmQ6OktleXMpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3NpZ24oSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JBc3NpZ24sIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTM4OSw3ICszODksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yQXNzaWduKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGFyZ2V0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RDb25zdHJ1Y3RvclZhbHVlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1
Y3RvclZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNTMxLDcgKzUzMSw3IEBAIGJvb2wg
dG9Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSBpbiwgUHJvcGVydHlEZXNjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZpbmVQcm9wZXJ0eShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckRlZmluZVByb3BlcnR5LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01OTgsNyArNTk4LDcgQEAgc3RhdGljIEpTVmFsdWUgZGVmaW5lUHJvcGVydGll
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVjdCogb2JqZWN0LAogICAgIHJl
dHVybiBvYmplY3Q7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29u
c3RydWN0b3JEZWZpbmVQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0
cnVjdG9yRGVmaW5lUHJvcGVydGllcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNjEzLDcgKzYx
Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JEZWZp
bmVQcm9wZXJ0aWVzKEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCBKU1ZhbHVlOjplbmNvZGUoZGVmaW5lUHJvcGVydGllcyhnbG9iYWxPYmplY3QsIHRhcmdl
dE9iaiwgcHJvcHMpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JDcmVhdGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JD
cmVhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc0Nyw3ICs3NDcsNyBAQCBKU09iamVjdCog
b2JqZWN0Q29uc3RydWN0b3JTZWFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2Jq
ZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIG9iamVjdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvclNlYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2Jq
ZWN0Q29uc3RydWN0b3JTZWFsLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC03NzksNyArNzc5LDcg
QEAgSlNPYmplY3QqIG9iamVjdENvbnN0cnVjdG9yRnJlZXplKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTT2JqZWN0KiBvYmplY3QKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yRnJlZXplKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9yRnJlZXplLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC03OTIsNyArNzkyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvckZyZWV6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgb2JqZWN0Q29uc3RydWN0b3JQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihvYmplY3RDb25zdHJ1Y3RvclByZXZlbnRFeHRlbnNpb25zLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC04MDgsNyArODA4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvclByZXZlbnRFeHRlbnNpb25zKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUob2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBvYmplY3RDb25zdHJ1Y3RvcklzU2VhbGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdENv
bnN0cnVjdG9ySXNTZWFsZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCkBA
IC04MjYsNyArODI2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvcklzU2VhbGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbih0ZXN0SW50ZWdyaXR5TGV2ZWw8SW50ZWdyaXR5TGV2ZWw6
OlNlYWxlZD4oZ2xvYmFsT2JqZWN0LCB2bSwgb2JqZWN0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4oSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JJc0Zyb3plbiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAKQEAgLTg0NCw3ICs4NDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9ySXNGcm96ZW4oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHRlc3RJbnRlZ3JpdHlMZXZlbDxJ
bnRlZ3JpdHlMZXZlbDo6RnJvemVuPihnbG9iYWxPYmplY3QsIHZtLCBvYmplY3QpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JJc0V4dGVuc2li
bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JJc0V4dGVuc2libGUsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg1Nyw3ICs4NTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXNFeHRlbnNpYmxlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGlzRXh0ZW5zaWJsZSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9ySXMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ob2JqZWN0Q29uc3RydWN0b3JJcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzYW1lVmFsdWUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpKSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKaW5kZXggYjg4YzM1
OTkxZTAzOTI1MDA3ZDQ1Nzg0NzMzZjZhMTgxNzlhZTI4Zi4uNWMyOGI3OWFjMTkzODhjZmJmZGMw
YmI1YWM2MmQwY2IwOTBkZDlkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCkBAIC0yNiwxMSArMjYsMTEgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JH
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlTeW1ib2xzKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
cktleXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3Jp
cHRvcnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RDb25zdHJ1Y3RvckdldE93
blByb3BlcnR5U3ltYm9scyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdENvbnN0
cnVjdG9yR2V0T3duUHJvcGVydHlOYW1lcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9i
amVjdENvbnN0cnVjdG9yS2V5cyk7CiAKIGNsYXNzIE9iamVjdFByb3RvdHlwZTsKIApAQCAtMTY2
LDYgKzE2Niw2IEBAIEpTVmFsdWUgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JzKEpTR2xvYmFsT2JqZWN0KiwgSlNPYmplY3QqKTsKIEpTQXJyYXkqIG93blByb3BlcnR5
S2V5cyhKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KiwgUHJvcGVydHlOYW1lTW9kZSwgRG9udEVu
dW1Qcm9wZXJ0aWVzTW9kZSwgT3B0aW9uYWw8Q2FjaGVkUHJvcGVydHlOYW1lc0tpbmQ+KTsKIGJv
b2wgdG9Qcm9wZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlLCBQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25z
dHJ1Y3RvcklzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKG9iamVjdENvbnN0cnVjdG9ySXMpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwCmlu
ZGV4IDU3NzdhZmJhMjYyNzk2ODA2ZGFhZTRjOWNlNzFlYWI1M2UwZGUyOTAuLmM4MTUzZDA1MmNm
MmU3MTM3YTViYTE0NjJmYjlmMTdiZTc2YjI3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtMjksMTUgKzI5LDE1IEBACiAK
IG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBv
YmplY3RQcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNIYXNPd25Qcm9w
ZXJ0eShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0UHJvdG9GdW5jRGVmaW5lR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcihKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0UHJvdG9GdW5jTG9va3VwU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNQcm9wZXJ0
eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKG9iamVjdFByb3RvRnVuY1ZhbHVlT2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ob2JqZWN0UHJvdG9GdW5jSGFzT3duUHJvcGVydHkpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZik7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNEZWZpbmVHZXR0ZXIpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVy
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0xvb2t1
cEdldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1
bmNMb29rdXBTZXR0ZXIpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ob2JqZWN0
UHJvdG9GdW5jUHJvcGVydHlJc0VudW1lcmFibGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVG9Mb2NhbGVTdHJpbmcpOwogCiBTVEFUSUNfQVNTRVJU
X0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoT2JqZWN0UHJvdG90eXBlKTsKIApAQCAtNzQsNyAr
NzQsNyBAQCBPYmplY3RQcm90b3R5cGUqIE9iamVjdFByb3RvdHlwZTo6Y3JlYXRlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVmFsdWVPZihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihvYmplY3RQcm90b0Z1bmNWYWx1ZU9mLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdGhp
c1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKS50b1RoaXMoZ2xvYmFsT2JqZWN0LCBFQ01B
TW9kZTo6c3RyaWN0KCkpOwogICAgIEpTT2JqZWN0KiB2YWx1ZU9iaiA9IHRoaXNWYWx1ZS50b09i
amVjdChnbG9iYWxPYmplY3QpOwpAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgb2JqZWN0UHJvdG90
eXBlSGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBi
YXNlLCBjCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RQcm90b0Z1bmNIYXNPd25Qcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNIYXNPd25Qcm9wZXJ0eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTIy
LDcgKzEyMiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5j
SGFzT3duUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4ob2JqZWN0UHJvdG90eXBlSGFzT3duUHJvcGVydHkoZ2xvYmFsT2Jq
ZWN0LCBiYXNlLCBwcm9wZXJ0eU5hbWUpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgb2JqZWN0UHJvdG9GdW5jSXNQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNJc1Byb3RvdHlwZU9mLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDks
NyArMTQ5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNJ
c1Byb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICB9CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jRGVmaW5lR2V0dGVyKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKG9iamVjdFByb3RvRnVuY0RlZmluZUdldHRlciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTc2LDcgKzE3Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2Jq
ZWN0UHJvdG9GdW5jRGVmaW5lR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90b0Z1bmNEZWZpbmVTZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04ob2JqZWN0UHJvdG9GdW5jRGVmaW5lU2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yMDMsNyArMjAzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQcm90
b0Z1bmNEZWZpbmVTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIG9iamVjdFByb3RvRnVuY0xvb2t1cEdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNMb29rdXBHZXR0ZXIsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzMyw3
ICsyMzMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY0xv
b2t1cEdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
b2JqZWN0UHJvdG9GdW5jTG9va3VwU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG9iamVjdFBy
b3RvRnVuY0xvb2t1cFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYzLDcgKzI2Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jTG9va3VwU2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RQ
cm90b0Z1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihvYmplY3RQ
cm90b0Z1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjgx
LDcgKzI4MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5j
UHJvcGVydHlJc0VudW1lcmFibGUoSlNHbG9iYWxPYmplY3QqCiB9CiAKIC8vIDE1LjIuNC4zIE9i
amVjdC5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmcoKQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBvYmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihv
YmplY3RQcm90b0Z1bmNUb0xvY2FsZVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzEx
LDcgKzMxMSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5j
VG9Mb2NhbGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoY2FsbChnbG9iYWxPYmplY3QsIHRvU3RyaW5nLCBj
YWxsRGF0YSwgdGhpc1ZhbHVlLCAqdm0uZW1wdHlMaXN0KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG9iamVjdFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG9iamVjdFByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCmluZGV4IGMzNzZl
NmNiMDc5M2IwMjk5NzU3ZmUxODY2YjgyMTViNjk0MTEzNTQuLjg0N2I5YWYzODE2NjdkOTMwMTEx
MjdjMWUzMzc4NTM3YzIyYzM5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC01MCw3ICs1MCw3IEBAIGNsYXNzIE9iamVjdFByb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLUpTX0VYUE9SVF9QUklWQVRFIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04ob2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcpOwogYm9vbCBvYmplY3RQcm90b3R5
cGVIYXNPd25Qcm9wZXJ0eShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUgYmFzZSwgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHkpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzE0YTI2
M2YxMTBkNDE1ZTJiZWNiOGQzZmQwMWIxMzczNzYyNmI0OC4uZGNjZmNkYzhhZmIzNjhlMzAzNTRh
YTZlZTY5MGU4MDkwYTM2ZDMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ0LDE1ICs0NCwxNiBAQCBQcm94eUNvbnN0
cnVjdG9yKiBQcm94eUNvbnN0cnVjdG9yOjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICByZXR1cm4gY29uc3RydWN0b3I7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxQcm94eShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0UHJveHlPYmplY3Qo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNhbGxQcm94eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjb25z
dHJ1Y3RQcm94eU9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihtYWtl
UmV2b2NhYmxlUHJveHkpOwogCiBQcm94eUNvbnN0cnVjdG9yOjpQcm94eUNvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxQcm94eSwgY29uc3RydWN0UHJveHlPYmplY3QpCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VSZXZvY2FibGVQcm94eShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihtYWtlUmV2b2NhYmxlUHJveHksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTc5LDE0ICs4MCwx
NCBAQCB2b2lkIFByb3h5Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgY29uc3Qg
Y2hhciogbmFtZSwgSlNHbG9iYWxPYmplY3QqCiAgICAgcHV0RGlyZWN0KHZtLCBtYWtlSWRlbnRp
Zmllcih2bSwgInJldm9jYWJsZSIpLCBKU0Z1bmN0aW9uOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgMiwgInJldm9jYWJsZSJfcywgbWFrZVJldm9jYWJsZVByb3h5KSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFByb3h5T2JqZWN0KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFByb3h5T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdGFyZ2V0ID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKICAgICBKU1ZhbHVlIGhhbmRsZXIgPSBjYWxsRnJhbWUt
PmFyZ3VtZW50KDEpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoUHJveHlPYmplY3Q6OmNy
ZWF0ZShnbG9iYWxPYmplY3QsIHRhcmdldCwgaGFuZGxlcikpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUHJveHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUHJveHksIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShnbG9iYWxPYmplY3QtPnZtKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodGhyb3dDb25zdHJ1Y3RvckNhbm5vdEJlQ2FsbGVkQXNGdW5jdGlv
blR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiUHJveHkiKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKaW5kZXggZTYyNjU4ZDEwOTAzMGYy
NTY3YTQ3YjI1OGEwNDhkMmViNTk3MWEwOC4uNTE5NjJhZjgwZDlhOTM1NDgwNTNhMTA2NDNhNTFj
NmVkOWQwNjY1NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmNwcApAQCAtNDAsNiArNDAsOSBAQCBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNU
UlVDVElCTEUoUHJveHlPYmplY3QpOwogCiBjb25zdCBDbGFzc0luZm8gUHJveHlPYmplY3Q6OnNf
aW5mbyA9IHsgIlByb3h5T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShQcm94eU9iamVjdCkgfTsKIAorc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocGVyZm9ybVByb3h5Q2FsbCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihwZXJmb3JtUHJveHlDb25zdHJ1Y3QpOworCiBQcm94eU9iamVjdDo6UHJveHlP
YmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKIHsKQEAgLTQ3MCw3ICs0NzMsNyBAQCBib29sIFByb3h5T2JqZWN0OjpwdXRCeUluZGV4
KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWduZQogICAg
IHJldHVybiB0aGlzT2JqZWN0LT5wdXRCeUluZGV4Q29tbW9uKGdsb2JhbE9iamVjdCwgdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwZXJmb3JtUHJveHlDYWxsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKHBlcmZvcm1Qcm94eUNhbGwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgTk9fVEFJTF9DQUxMUygpOwogCkBAIC01MTcs
NyArNTIwLDcgQEAgQ2FsbERhdGEgUHJveHlPYmplY3Q6OmdldENhbGxEYXRhKEpTQ2VsbCogY2Vs
bCkKICAgICByZXR1cm4gY2FsbERhdGE7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHBlcmZvcm1Qcm94eUNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihwZXJm
b3JtUHJveHlDb25zdHJ1Y3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgTk9fVEFJTF9DQUxMUygpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eVJldm9rZS5jcHAKaW5kZXggMDRhYTZmZGUxOWI2OTQ3
YjA3Y2E0MTIxZTU2NzIyYWVkYTk0Njk1Ny4uOGZlNzQ2Njg1MDEyZGRkMTA3MWY0Y2Y1YzQ2MjMx
MjJlNDY5ODA2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlSZXZva2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5UmV2
b2tlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBQcm94eVJldm9rZSogUHJveHlSZXZva2U6OmNyZWF0
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQcm94eU9iamVjdCogcHJveAogICAgIHJl
dHVybiByZXZva2U7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHBl
cmZvcm1Qcm94eVJldm9rZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocGVyZm9ybVByb3h5UmV2b2tlKTsKIAogUHJveHlSZXZv
a2U6OlByb3h5UmV2b2tlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUsIHBlcmZvcm1Qcm94eVJldm9rZSwgbnVsbHB0cikKQEAgLTU1LDcgKzU1
LDcgQEAgdm9pZCBQcm94eVJldm9rZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBQcm94eU9iamVj
dCogcHJveHkpCiAgICAgbV9wcm94eS5zZXQodm0sIHRoaXMsIHByb3h5KTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcGVyZm9ybVByb3h5UmV2b2tlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHBlcmZvcm1Qcm94eVJldm9rZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBQcm94eVJldm9rZSogcHJveHlS
ZXZva2UgPSBqc0Nhc3Q8UHJveHlSZXZva2UqPihjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpOwogICAg
IEpTVmFsdWUgcHJveHlWYWx1ZSA9IHByb3h5UmV2b2tlLT5wcm94eSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcAppbmRleCAzMjI1NWY4ZTZh
MDc2OGFlZWViNmU4NDhjZjk4ZGUzYTk2NmE5YzdjLi40MDFjYWZlNWE0ODQ0YjgyNzFhYTBlNGFi
NWM1ZjViZGM3ZTc0MzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWZsZWN0T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWZsZWN0T2JqZWN0LmNwcApAQCAtMzEsMTYgKzMxLDE2IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0Q29uc3Ry
dWN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0RGVmaW5lUHJvcGVydHkoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxl
Y3RPYmplY3RHZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRQcm90b3R5cGVPZihKU0dsb2JhbE9iamVjdCos
IENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVj
dE9iamVjdElzRXh0ZW5zaWJsZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdE93bktleXMoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZmxlY3RPYmplY3RQcmV2ZW50RXh0ZW5zaW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVj
dFNldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFNldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWZsZWN0
T2JqZWN0Q29uc3RydWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxl
Y3RPYmplY3REZWZpbmVQcm9wZXJ0eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihyZWZsZWN0T2JqZWN0R2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJl
ZmxlY3RPYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdEdldFByb3RvdHlwZU9mKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdE93bktleXMpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdFByZXZlbnRFeHRlbnNpb25z
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3RTZXQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdFNldFByb3RvdHlw
ZU9mKTsKIAogfQogCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgUmVmbGVjdE9iamVjdDo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCopCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
IC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuY29uc3RydWN0
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RDb25zdHJ1Y3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdENvbnN0cnVjdCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTI0LDcgKzEyNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVm
bGVjdE9iamVjdENvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiB9CiAKIC8v
IGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuZGVmaW5lcHJvcGVy
dHkKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdERlZmluZVByb3Bl
cnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZmxlY3RPYmplY3REZWZpbmVQcm9wZXJ0eSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTUwLDcgKzE1MCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVmbGVjdE9iamVjdERlZmluZVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3Qu
Z2V0Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdEdldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTcxLDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVj
dEdldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiB9CiAKIC8vIGh0dHBzOi8v
dGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlw
dG9yCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RHZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdEdldE93blBy
b3BlcnR5RGVzY3JpcHRvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTg3LDcgKzE4Nyw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdEdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU0dsb2JhbE9iamVjCiB9CiAKIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8v
ZWNtYTI2Mi8jc2VjLXJlZmxlY3QuZ2V0cHJvdG90eXBlb2YKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgcmVmbGVjdE9iamVjdEdldFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHJlZmxlY3RPYmplY3RHZXRQcm90b3R5cGVPZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5
LDcgKzE5OSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdEdl
dFByb3RvdHlwZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiB9CiAKIC8vIGh0dHBzOi8vdGMz
OS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3QuaXNleHRlbnNpYmxlCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ocmVmbGVjdE9iamVjdElzRXh0ZW5zaWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjE0LDcgKzIxNCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9i
amVjdElzRXh0ZW5zaWJsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiB9CiAKIC8vIGh0dHBz
Oi8vdGMzOS5naXRodWIuaW8vZWNtYTI2Mi8jc2VjLXJlZmxlY3Qub3dua2V5cwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0T3duS2V5cyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihyZWZsZWN0T2JqZWN0T3duS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjI2LDcg
KzIyNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdE93bktl
eXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIH0KIAogLy8gaHR0cHM6Ly90YzM5Lmdp
dGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5wcmV2ZW50ZXh0ZW5zaW9ucwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0UHJldmVudEV4dGVuc2lvbnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04ocmVmbGVjdE9iamVjdFByZXZlbnRFeHRlbnNpb25zLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0yNDEsNyArMjQxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWZsZWN0T2JqZWN0UHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxPYmplY3QqIGdsb2IKIH0K
IAogLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5zZXQKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdFNldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWZsZWN0T2JqZWN0U2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjUsNyAr
MjY1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0U2V0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKIH0KIAogLy8gaHR0cHM6Ly90YzM5Lmdp
dGh1Yi5pby9lY21hMjYyLyNzZWMtcmVmbGVjdC5zZXRwcm90b3R5cGVvZgotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0U2V0UHJvdG90eXBlT2YoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04ocmVmbGVjdE9iamVjdFNldFByb3RvdHlwZU9mLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggMjAzMTUzZDM4NzRiNWUwMGFhNWQ4NWU1NDBkYTMzYzUyMDY0Yzc0ZC4uNjRi
MjEzYjdkOTExYzk1MWE5MTA0MDI1ZGI2OTNkM2NhMjUxZTkwNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtODIsOCAr
ODIsOCBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1
bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogKi8KIAogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUmVnRXhwQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFJlZ0V4cENvbnN0cnVjdG9yKTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhSZWdFeHBDb25z
dHJ1Y3Rvcik7CiAKIFJlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3RvcihWTSYgdm0s
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0
dXJlLCBjYWxsUmVnRXhwQ29uc3RydWN0b3IsIGNvbnN0cnVjdFdpdGhSZWdFeHBDb25zdHJ1Y3Rv
cikKQEAgLTMwOSwyNiArMzA5LDI2IEBAIEpTT2JqZWN0KiBjb25zdHJ1Y3RSZWdFeHAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgQXJnTGlzdCYgYXJncywgIEpTCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZWdFeHBDcmVhdGUoZ2xvYmFsT2JqZWN0LCBuZXdUYXJn
ZXQsIHBhdHRlcm5BcmcsIGZsYWdzQXJnKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZXNTcGVjUmVnRXhwQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGVzU3BlY1JlZ0V4
cENyZWF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBKU1ZhbHVlIHBhdHRlcm5BcmcgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
OwogICAgIEpTVmFsdWUgZmxhZ3NBcmcgPSBjYWxsRnJhbWUtPmFyZ3VtZW50KDEpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVnRXhwQ3JlYXRlKGdsb2JhbE9iamVjdCwgSlNWYWx1ZSgp
LCBwYXR0ZXJuQXJnLCBmbGFnc0FyZykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGVzU3BlY0lzUmVnRXhwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGVzU3BlY0lzUmVnRXhwLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihpc1JlZ0V4cCh2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPmFyZ3Vt
ZW50KDApKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
dHJ1Y3RXaXRoUmVnRXhwQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0
V2l0aFJlZ0V4cENvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFyZ0xpc3QgYXJncyhjYWxsRnJhbWUpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0UmVnRXhwKGdsb2JhbE9iamVjdCwgYXJn
cywgY2FsbEZyYW1lLT5qc0NhbGxlZSgpLCBjYWxsRnJhbWUtPm5ld1RhcmdldCgpKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxSZWdFeHBDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsUmVnRXhwQ29uc3RydWN0b3IsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQXJnTGlz
dCBhcmdzKGNhbGxGcmFtZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3RS
ZWdFeHAoZ2xvYmFsT2JqZWN0LCBhcmdzLCBjYWxsRnJhbWUtPmpzQ2FsbGVlKCkpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4
IGIyYTY0MjE0NGQwNDdmMWJjYmM2MzQ0OTE0OWNjMmUwZDA3N2M1MTQuLmNiNTYzYTQyZWYzYjBm
ZmZkMmUxZGI5Y2QxMGM3MGIyOTA2MzYyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApAQCAtNzIsNyArNzIsNyBAQCBBTFdBWVNf
SU5MSU5FIGJvb2wgaXNSZWdFeHAoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogICAgIHJldHVybiBvYmplY3QtPmluaGVyaXRzPFJlZ0V4cE9iamVj
dD4odm0pOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGVzU3BlY1JlZ0V4cENy
ZWF0ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBlc1NwZWNJc1JlZ0V4cChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihlc1NwZWNSZWdFeHBDcmVhdGUpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihlc1NwZWNJc1JlZ0V4cCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5k
ZXggM2VhNTUwNGQ2MGRmZGE0NjQzOWNmY2MwOTZiZmE5MjFjYzVjMThjOS4uYzJkNjU3MjBiOGQy
ZTZmNThmNjAwODNmYTIyMTliNjJhYzk1OTllNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC0zNiwxNyArMzYsMTcgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvRnVuY0V4ZWMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckds
b2JhbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0dldHRlck11bHRpbGluZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU3RpY2t5KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dl
dHRlclVuaWNvZGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVyU291cmNlKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBy
ZWdFeHBQcm90b0dldHRlckZsYWdzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNFeGVjKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY0NvbXBpbGUpOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jVG9TdHJpbmcpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJHbG9iYWwp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJJZ25v
cmVDYXNlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0
dGVyTXVsdGlsaW5lKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFBy
b3RvR2V0dGVyRG90QWxsKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4
cFByb3RvR2V0dGVyU3RpY2t5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHJl
Z0V4cFByb3RvR2V0dGVyVW5pY29kZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihyZWdFeHBQcm90b0dldHRlclNvdXJjZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihyZWdFeHBQcm90b0dldHRlckZsYWdzKTsKIAogY29uc3QgQ2xhc3NJbmZvIFJlZ0V4cFBy
b3RvdHlwZTo6c19pbmZvID0geyAiT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVs
bHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShSZWdFeHBQcm90b3R5cGUpIH07CiAKQEAgLTgwLDcg
KzgwLDcgQEAgdm9pZCBSZWdFeHBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNUZXN0RmFzdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
OTYsNyArOTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVu
Y1Rlc3RGYXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnRlc3QoZ2xvYmFs
T2JqZWN0LCBzdHJpbmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJl
Z0V4cFByb3RvRnVuY0V4ZWMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jRXhl
YywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTEyLDcgKzExMiw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jRXhlYyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
cmVnZXhwLT5leGVjKGdsb2JhbE9iamVjdCwgc3RyaW5nKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihyZWdFeHBQcm90b0Z1bmNNYXRjaEZhc3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgUmVnRXhwT2JqZWN0KiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PFJlZ0V4cE9iamVjdCo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAg
IEpTU3RyaW5nKiBzdHJpbmcgPSBqc0Nhc3Q8SlNTdHJpbmcqPihjYWxsRnJhbWUtPnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhpc09iamVjdC0+bWF0Y2hHbG9iYWwoZ2xv
YmFsT2JqZWN0LCBzdHJpbmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBy
ZWdFeHBQcm90b0Z1bmNDb21waWxlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVu
Y0NvbXBpbGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMg
aW5saW5lIEZsYWdzU3RyaW5nIGZsYWdzU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTT2JqZWN0KiByZQogICAgIHJldHVybiBzdHJpbmc7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04ocmVnRXhwUHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzMSw3
ICsyMzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1Rv
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZ2xvYmFsT2Jq
ZWN0LCAnLycsIHNvdXJjZSwgJy8nLCBmbGFncykpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlckdsb2JhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihy
ZWdFeHBQcm90b0dldHRlckdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjQ3LDcgKzI0
Nyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJHbG9i
YWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+Z2xvYmFsKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlcklnbm9yZUNhc2UoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9HZXR0ZXJJZ25vcmVDYXNlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yNjMsNyArMjYzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdF
eHBQcm90b0dldHRlcklnbm9yZUNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihyZWdleHAtPnJlZ0V4cCgpLT5pZ25vcmVDYXNl
KCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRl
ck11bHRpbGluZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0dldHRlck11bHRpbGlu
ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjc5LDcgKzI3OSw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJNdWx0aWxpbmUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5y
ZWdFeHAoKS0+bXVsdGlsaW5lKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWdFeHBQcm90b0dldHRlckRvdEFsbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90
b0dldHRlckRvdEFsbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjk1LDcgKzI5NSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJEb3RBbGwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4ocmVnZXhwLT5yZWdFeHAoKS0+ZG90QWxsKCkpKTsKIH0KICAgICAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJTdGlja3koSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04ocmVnRXhwUHJvdG9HZXR0ZXJTdGlja3ksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMxMSw3
ICszMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvR2V0dGVy
U3RpY2t5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKHJlZ2V4cC0+cmVnRXhwKCktPnN0aWNreSgpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJVbmljb2RlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvR2V0dGVyVW5pY29kZSwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMzI3LDcgKzMyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhw
UHJvdG9HZXR0ZXJVbmljb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVnZXhwLT5yZWdFeHAoKS0+dW5pY29kZSgpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9HZXR0ZXJGbGFn
cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0dldHRlckZsYWdzLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC00NDksNyArNDQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIHJlZ0V4
cFByb3RvR2V0dGVyU291cmNlSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAg
ICByZXR1cm4ganNTdHJpbmcodm0sIHJlc3VsdC50b1N0cmluZygpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0dldHRlclNvdXJjZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihyZWdFeHBQcm90b0dldHRlclNvdXJjZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
NDY4LDcgKzQ2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9H
ZXR0ZXJTb3VyY2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZWdFeHBQcm90b0dldHRlclNvdXJjZUludGVybmFsKGdsb2JhbE9iamVjdCwg
cGF0dGVybiwgcGF0dGVybi5jaGFyYWN0ZXJzMTYoKSwgcGF0dGVybi5sZW5ndGgoKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jU2VhcmNoRmFzdCwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtNTg1LDcgKzU4NSw3IEBAIHZvaWQgZ2VuZXJpY1NwbGl0KAogfQogCiAv
LyBFUyAyMS4yLjUuMTEgUmVnRXhwLnByb3RvdHlwZVtAQHNwbGl0XShzdHJpbmcsIGxpbWl0KQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04ocmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlw
ZS5oCmluZGV4IGZlMTJjOWM0ZDI4NjUzNTJiODY0OWRmNzYwZmI1ZWIwNmI4MmYxN2YuLjE1Yzc4
Mzk4NWY3NGI2Y2VmNTYwZTBjZTliYTI5Y2Y3Mzg5ZWU5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBAIC01Niw5ICs1Niw5IEBAIGNs
YXNzIFJlZ0V4cFByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jTWF0Y2hGYXN0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvRnVuY1NlYXJjaEZhc3QoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVnRXhwUHJvdG9GdW5jU3BsaXRGYXN0KEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4
cFByb3RvRnVuY1Rlc3RGYXN0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY01hdGNoRmFzdCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKHJlZ0V4cFByb3RvRnVuY1NlYXJjaEZhc3QpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNTcGxpdEZhc3QpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihyZWdFeHBQcm90b0Z1bmNUZXN0RmFzdCk7CiAKIH0gLy8gbmFtZXNwYWNlIEpT
QwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuY3Bw
CmluZGV4IDA4NmE0NjY0N2Y5YmM3NmViMTA3N2RiZWE1ZmZkOWEzYjllMDZhY2IuLjlmZGE4OWM2
ZDc2ZDZkZjZjZWYyZWRkYjMyOTBmY2Q4N2IxZTkyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDIyICs0MiwyMiBAQCB2
b2lkIFNldENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFNldFByb3RvdHlwZSog
c2V0UHJvdG90eXBlLCBHZXR0ZXJTZQogICAgIHB1dERpcmVjdE5vbkluZGV4QWNjZXNzb3JXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+c3BlY2llc1N5bWJvbCwgc3BlY2ll
c1N5bWJvbCwgUHJvcGVydHlBdHRyaWJ1dGU6OkFjY2Vzc29yIHwgUHJvcGVydHlBdHRyaWJ1dGU6
OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKIH0KIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFNldChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0
KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsU2V0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0
cnVjdFNldCk7CiAKIFNldENvbnN0cnVjdG9yOjpTZXRDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsU2V0LCBjb25z
dHJ1Y3RTZXQpCiB7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNh
bGxTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihjYWxsU2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgIlNldCIpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0U2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVj
dFNldCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTgsNyArOTgsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2V0KTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRIZWFkLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVF9V
TlVTRUQoZ2xvYmFsT2JqZWN0LCBqc0R5bmFtaWNDYXN0PEpTU2V0Kj4oZ2xvYmFsT2JqZWN0LT52
bSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAgSlNTZXQqIHNldCA9IGpzQ2FzdDxK
U1NldCo+KGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwpAQCAtMTA3LDcgKzEwNyw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRI
ZWFkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSho
ZWFkKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1Nl
dEJ1Y2tldE5leHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJpdmF0ZUZ1bmNTZXRCdWNrZXRO
ZXh0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEFTU0VSVChqc0R5bmFtaWNDYXN0PEpTU2V0OjpCdWNrZXRUeXBlKj4oZ2xvYmFs
T2JqZWN0LT52bSgpLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSk7CiAgICAgYXV0byogYnVja2V0
ID0ganNDYXN0PEpTU2V0OjpCdWNrZXRUeXBlKj4oY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7CkBAIC0xMjEsNyArMTIxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
ZXRQcml2YXRlRnVuY1NldEJ1Y2tldE5leHQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE8KICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGdsb2JhbE9iamVjdC0+dm0oKS5zZW50aW5lbFNldEJ1Y2tl
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQcml2YXRlRnVuY1Nl
dEJ1Y2tldEtleShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEtl
eSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwganNEeW5hbWljQ2FzdDxKU1NldDo6
QnVja2V0VHlwZSo+KGdsb2JhbE9iamVjdC0+dm0oKSwgY2FsbEZyYW1lLT5hcmd1bWVudCgwKSkp
OwogICAgIGF1dG8qIGJ1Y2tldCA9IGpzQ2FzdDxKU1NldDo6QnVja2V0VHlwZSo+KGNhbGxGcmFt
ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NldENvbnN0cnVjdG9yLmgKaW5kZXggZWIxYzYxYjIwMjI1MGFlYmRmZjc1NGI1YzQ3MDNi
ODM0YjM2MmMyNy4uMTc2YTFjZGU3ZDlhNjZhYmQ1YTA5NmY4OGRmNjlhOWIwMDM5NzY4MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2V0Q29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRDb25zdHJ1Y3Rvci5oCkBAIC01
Niw4ICs1Niw4IEBAIGNsYXNzIFNldENvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFs
RnVuY3Rpb24gewogfTsKIFNUQVRJQ19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKFNldENv
bnN0cnVjdG9yLCBJbnRlcm5hbEZ1bmN0aW9uKTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzZXRQcml2YXRlRnVuY1NldEJ1Y2tldEhlYWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJpdmF0ZUZ1bmNTZXRCdWNr
ZXROZXh0KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHNldFByaXZhdGVGdW5jU2V0QnVja2V0S2V5KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5jU2V0QnVj
a2V0SGVhZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5jU2V0QnVj
a2V0TmV4dCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByaXZhdGVGdW5jU2V0QnVj
a2V0S2V5KTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2V0UHJvdG90eXBlLmNwcAppbmRleCA0YzQ3ZmFjMDk3ZjVkODI5NjFhM2I0YTE0
YjQ4MzU4NmI0MmVhNTE0Li4zM2EwNDkxYzY1NDU3NmI1MzE1Mzc0ZjZjNGUwZGJmNzhiNzdkMDc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TZXRQcm90b3R5cGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NldFByb3RvdHlwZS5jcHAK
QEAgLTQzLDE0ICs0MywxNCBAQCBjb25zdCBDbGFzc0luZm8gU2V0UHJvdG90eXBlOjpzX2luZm8g
PSB7ICJTZXQiLCAmQmFzZTo6c19pbmZvLCAmc2V0UHJvdG90eXBlVGFibAogQGVuZAogKi8KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jQWRkKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzZXRQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5jRGVsZXRlKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzZXRQcm90b0Z1bmNIYXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY1ZhbHVlcyhKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc2V0UHJvdG9GdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jQWRkKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0NsZWFyKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0RlbGV0ZSk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNIYXMpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5jVmFsdWVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKHNldFByb3RvRnVuY0VudHJpZXMpOwogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNTaXplKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNTaXpl
KTsKIAogdm9pZCBTZXRQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKQEAgLTkyLDcgKzkyLDcgQEAgQUxXQVlTX0lOTElORSBz
dGF0aWMgSlNTZXQqIGdldFNldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHRoaXNWYWwKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzZXRQcm90b0Z1bmNBZGQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9GdW5j
QWRkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKICAg
ICBKU1NldCogc2V0ID0gZ2V0U2V0KGdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlKTsKQEAgLTEwMiw3
ICsxMDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0FkZChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRgogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUodGhpc1ZhbHVlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzZXRQ
cm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNDbGVhciwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBKU1NldCogc2V0ID0gZ2V0U2V0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT50aGlzVmFsdWUo
KSk7CiAgICAgaWYgKCFzZXQpCkBAIC0xMTEsNyArMTExLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzZXRQcm90b0Z1bmNDbGVhcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY0RlbGV0ZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihzZXRQcm90b0Z1bmNEZWxldGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNTZXQqIHNldCA9IGdldFNldChn
bG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghc2V0KQpAQCAt
MTE5LDcgKzExOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0UHJvdG9GdW5j
RGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc0Jvb2xlYW4oc2V0LT5yZW1vdmUoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUt
PmFyZ3VtZW50KDApKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFBy
b3RvRnVuY0hhcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNIYXMsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgSlNT
ZXQqIHNldCA9IGdldFNldChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwog
ICAgIGlmICghc2V0KQpAQCAtMTI3LDcgKzEyNyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc2V0UHJvdG9GdW5jSGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oc2V0LT5oYXMoZ2xvYmFsT2Jq
ZWN0LCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHNldFByb3RvRnVuY1NpemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc2V0UHJvdG9G
dW5jU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBKU1NldCogc2V0ID0gZ2V0U2V0KGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFzZXQpCkBAIC0xNDUsMTIgKzE0NSwxMiBAQCBpbmxp
bmUgSlNWYWx1ZSBjcmVhdGVTZXRJdGVyYXRvck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqCiAgICAgcmV0dXJuIEpTU2V0SXRlcmF0b3I6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LT5zZXRJdGVyYXRvclN0cnVjdHVyZSgpLCBzZXQsIGtpbmQpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHNldFByb3RvRnVuY1ZhbHVlcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihzZXRQcm90b0Z1bmNWYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShjcmVhdGVTZXRJdGVyYXRvck9iamVjdChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgSXRlcmF0
aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc2V0
UHJvdG9GdW5jRW50cmllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzZXRQcm90b0Z1bmNFbnRyaWVz
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlU2V0SXRlcmF0b3JPYmplY3QoZ2xv
YmFsT2JqZWN0LCBjYWxsRnJhbWUsIEl0ZXJhdGlvbktpbmQ6OkVudHJpZXMpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcApp
bmRleCBhZTY3NTJkM2E2NzJkMDI0YmZlYzA3NzNjM2I0MmYxZmZhMDczOWUwLi5mMmJhNWM0MTFi
YTYyZTA2MGJlYTVkZWNjNWU4ZDU1OTFmNWEyY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuY3BwCkBAIC0yNyw4ICsyNyw4IEBA
CiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdGcm9tQ2hhckNvZGUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21Db2RlUG9pbnQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KHN0cmluZ0Zyb21DaGFyQ29kZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihz
dHJpbmdGcm9tQ29kZVBvaW50KTsKIAogfQogCkBAIC00OSw4ICs0OSw4IEBAIGNvbnN0IENsYXNz
SW5mbyBTdHJpbmdDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxG
dW5jdGlvbjo6c19pCiBTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9ERVNUUlVDVElCTEUoU3Ry
aW5nQ29uc3RydWN0b3IpOwogCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNhbGxTdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsU3RyaW5nQ29uc3RydWN0b3IpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKTsKIAogU3RyaW5n
Q29uc3RydWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKHZtLCBzdHJ1Y3R1cmUsIGNhbGxTdHJpbmdDb25z
dHJ1Y3RvciwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKQpAQCAtNjUsNyArNjUsNyBA
QCB2b2lkIFN0cmluZ0NvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFN0cmluZ1By
b3RvdHlwZSogc3RyaW5nUHJvdG90eXBlKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21DaGFyQ29kZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihzdHJpbmdGcm9tQ2hhckNvZGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTEwMCwxMiArMTAwLDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ0Zyb21DaGFyQ29kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmcodm0sIFdURk1vdmUoaW1w
bDhCaXQpKSkpOwogfQogCi1KU1N0cmluZyogSlNDX0hPU1RfQ0FMTCBzdHJpbmdGcm9tQ2hhckNv
ZGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgaW50MzJfdCBhcmcpCitKU1N0cmluZyog
c3RyaW5nRnJvbUNoYXJDb2RlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGludDMyX3Qg
YXJnKQogewogICAgIHJldHVybiBqc1NpbmdsZUNoYXJhY3RlclN0cmluZyhnbG9iYWxPYmplY3Qt
PnZtKCksIGFyZyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ0Zyb21Db2RlUG9pbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nRnJvbUNvZGVQb2lu
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ0Zyb21Db2RlUG9pbnQoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
anNTdHJpbmcodm0sIGJ1aWxkZXIudG9TdHJpbmcoKSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aFN0cmluZ0NvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhTdHJpbmdDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwpAQCAtMTYwLDcgKzE2MCw3IEBAIEpTU3RyaW5nKiBzdHJpbmdDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIGFyZ3VtZW50KQogICAgIHJl
dHVybiBhcmd1bWVudC50b1N0cmluZyhnbG9iYWxPYmplY3QpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY2FsbFN0cmluZ0NvbnN0cnVjdG9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBpZiAoIWNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKaW5kZXggNWY5
NDcxZWE0YzBiZWY5MTUzMGMxNzJlNGM0MzhiZTk5MDk4ZWMzMS4uYmI5NDMxMDhiNjc4OGQ4YzE3
OWZlMGRmZTA2YWM4ODM2ZWQwNTkwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFN0cmlu
Z0NvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEludGVybmFsRnVuY3Rpb24gewogfTsKIFNUQVRJ
Q19BU1NFUlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKFN0cmluZ0NvbnN0cnVjdG9yLCBJbnRlcm5h
bEZ1bmN0aW9uKTsKIAotSlNTdHJpbmcqIEpTQ19IT1NUX0NBTEwgc3RyaW5nRnJvbUNoYXJDb2Rl
KEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCk7CitKU1N0cmluZyogc3RyaW5nRnJvbUNoYXJDb2Rl
KEpTR2xvYmFsT2JqZWN0KiwgaW50MzJfdCk7CiBKU1N0cmluZyogc3RyaW5nQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCAx
YTJkYzVmNThhMjkyMjQyNjAyYWYwMzMxYzRkYjE0M2EzODYzYjc5Li5lOWVjNjUxNTk0YzY4Yzg3
NzU3NDJjMjU2NGQ4NTA0NzIzNDkxMjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTUzLDMxICs1MywzMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKFN0cmlu
Z1Byb3RvdHlwZSk7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ2hhckF0KEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0No
YXJDb2RlQXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQ29kZVBvaW50QXQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5j
SW5kZXhPZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhPZihKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNS
ZXBsYWNlVXNpbmdSZWdFeHAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2Vh
cmNoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VBbGxVc2luZ1N0cmluZ1NlYXJjaChKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdQcm90b0Z1bmNTbGljZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWJzdHIoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9G
dW5jU3Vic3RyaW5nKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY1RvVXBwZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0xvY2FsZUNvbXBhcmUoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5n
UHJvdG9GdW5jVG9Mb2NhbGVMb3dlckNhc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9Mb2NhbGVVcHBl
ckNhc2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVHJpbShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNUcmltU3RhcnQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jVHJpbUVuZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdGFydHNXaXRoKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVzKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY05vcm1hbGl6ZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJdGVyYXRvcihKU0dsb2Jh
bE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQ
cm90b0Z1bmNUb1N0cmluZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3Rv
RnVuY0NoYXJBdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0No
YXJDb2RlQXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNDb2Rl
UG9pbnRBdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0luZGV4
T2YpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNMYXN0SW5kZXhP
Zik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2lu
Z1JlZ0V4cCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGxh
Y2VVc2luZ1N0cmluZ1NlYXJjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1By
b3RvRnVuY1JlcGxhY2VBbGxVc2luZ1N0cmluZ1NlYXJjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKHN0cmluZ1Byb3RvRnVuY1NsaWNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jU3Vic3RyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5n
UHJvdG9GdW5jU3Vic3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jVG9Mb3dlckNhc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNUb1VwcGVyQ2FzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3Rv
RnVuY0xvY2FsZUNvbXBhcmUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90
b0Z1bmNUb0xvY2FsZUxvd2VyQ2FzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmlu
Z1Byb3RvRnVuY1RvTG9jYWxlVXBwZXJDYXNlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jVHJpbSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1By
b3RvRnVuY1RyaW1TdGFydCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3Rv
RnVuY1RyaW1FbmQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNT
dGFydHNXaXRoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jRW5k
c1dpdGgpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNJbmNsdWRl
cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY05vcm1hbGl6ZSk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0l0ZXJhdG9yKTsKIAog
fQogCkBAIC04NDQsNyArODQ0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGNoZWNrT2JqZWN0Q29l
cmNpYmxlKEpTVmFsdWUgdGhpc1ZhbHVlKQogICAgIHJldHVybiB0cnVlOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGVhdENoYXJhY3RlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTkwMCw3ICs5MDAsNyBAQCBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiBy
ZXBsYWNlKAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcmVwbGFjZSh2bSwgZ2xvYmFs
T2JqZWN0LCBjYWxsRnJhbWUsIHN0cmluZywgc2VhcmNoVmFsdWUsIHJlcGxhY2VWYWx1ZSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VV
c2luZ1JlZ0V4cChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNSZXBsYWNlVXNp
bmdSZWdFeHAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTkxNSw3ICs5MTUsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cChK
U0dsb2JhbE9iamVjdCogZwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCh2bSwgZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIHN0cmluZywgc2VhcmNoVmFsdWUsIGNhbGxGcmFtZS0+YXJndW1lbnQoMSkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5n
U3RyaW5nU2VhcmNoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VV
c2luZ1N0cmluZ1NlYXJjaCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtOTI2LDcgKzkyNiw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5n
U3RyaW5nU2VhcmNoKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBK
U1ZhbHVlOjplbmNvZGUocmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoKHZtLCBnbG9iYWxPYmplY3Qs
IGNhbGxGcmFtZSwgc3RyaW5nLCBjYWxsRnJhbWUtPmFyZ3VtZW50KDApLCBjYWxsRnJhbWUtPmFy
Z3VtZW50KDEpLCBSZXBsYWNlTW9kZTo6U2luZ2xlKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VBbGxVc2luZ1N0cmluZ1NlYXJjaChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNSZXBsYWNlQWxsVXNpbmdTdHJpbmdT
ZWFyY2gsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk1MCw3ICs5NTAsNyBAQCBKU0NlbGwqIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nUHJvdG9GdW5jUmVwbGFjZUdlbmVyaWMoSlNHbG9i
YWxPYmplY3QqIGdsbwogCiBJR05PUkVfV0FSTklOR1NfRU5ECiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
c3RyaW5nUHJvdG9GdW5jVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk3MSw3ICs5
NzEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvU3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoc3RyaW5nT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJBdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNDaGFyQXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk5OCw3ICs5OTgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NoYXJBdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNFbXB0eVN0cmluZyh2bSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9G
dW5jQ2hhckNvZGVBdCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAg
c3RhdGljIGlubGluZSBVQ2hhcjMyIGNvZGVQb2ludEF0KGNvbnN0IFN0cmluZyYgc3RyaW5nLCB1
bnNpZ25lZCBwb3NpdGlvbiwgdW5zaWcKICAgICByZXR1cm4gY2hhcmFjdGVyOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0KEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0NvZGVQb2ludEF0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMTEyLDEyICsxMTEyLDEyIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBzdHJp
bmdJbmRleE9mSW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0luZGV4T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIHN0cmluZ0luZGV4
T2ZJbXBsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5kZXhPZkludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZS0+
dGhpc1ZhbHVlKCkuaXNTdHJpbmcoKSk7CiAgICAgQVNTRVJUKGNhbGxGcmFtZS0+YXJndW1lbnQo
MCkuaXNTdHJpbmcoKSk7CkBAIC0xMTI1LDcgKzExMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdJbmRleE9mSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGds
b2JhbAogICAgIHJldHVybiBzdHJpbmdJbmRleE9mSW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTGFz
dEluZGV4T2YoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2Ys
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExNzAsNyArMTE3MCw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihyZXN1bHQpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTbGljZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTbGljZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTIzMSw3ICsxMjMxLDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBzcGxp
dFN0cmluZ0J5T25lQ2hhcmFjdGVySW1wbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2IKIH0KIAog
Ly8gRVMgMjEuMS4zLjE3IFN0cmluZy5wcm90b3R5cGUuc3BsaXQoc2VwYXJhdG9yLCBsaW1pdCkK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3BsaXRGYXN0KEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0
cmluZ1Byb3RvRnVuY1N1YnN0ciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTQ1NSwxMiArMTQ1
NSwxMiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RyaW5nU3Vic3RyaW5nSW1wbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihz
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzU3Vic3RyaW5nKGdsb2JhbE9iamVjdCwganNTdHJpbmcs
IHN1YnN0cmluZ1N0YXJ0LCBzdWJzdHJpbmdMZW5ndGgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKHN0cmluZ1Byb3RvRnVuY1N1YnN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gc3RyaW5nU3Vic3RyaW5n
SW1wbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1l
LT50aGlzVmFsdWUoKS5pc1N0cmluZygpKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKS5pc051bWJlcigpKTsKQEAgLTE0NjgsNyArMTQ2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgYnVpbHRpblN0cmluZ1N1YnN0cmluZ0ludGVybmFsKEpTR2xvYmFsT2JqZWN0
KiBnbG9iCiAgICAgcmV0dXJuIHN0cmluZ1N1YnN0cmluZ0ltcGwoZ2xvYmFsT2JqZWN0LCBjYWxs
RnJhbWUpOyAgIAogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY1RvTG93ZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RvTG93
ZXJDYXNlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNDg2LDcgKzE0ODYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvTG93ZXJDYXNlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKGpzU3RyaW5nKHZtLCBsb3dlcmNhc2VkU3RyaW5nKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RvVXBwZXJDYXNlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY1RvVXBwZXJDYXNlLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmlu
Z1Byb3RvRnVuY1RvVXBwZXJDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5nKHZtLCB1cHBlcmNh
c2VkU3RyaW5nKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY0xvY2FsZUNvbXBhcmUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5j
TG9jYWxlQ29tcGFyZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICAvLyAxMy4xLjEgU3RyaW5nLnByb3RvdHlwZS5sb2NhbGVDb21w
YXJlICh0aGF0IFssIGxvY2FsZXMgWywgb3B0aW9ucyBdXSkgKEVDTUEtNDAyIDIuMCkKICAgICAv
LyBodHRwOi8vZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9wdWJsaWNhdGlvbnMvc3RhbmRhcmRzL0Vj
bWEtNDAyLmh0bQpAQCAtMTYyNiwxNCArMTYyNiwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
dG9Mb2NhbGVDYXNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGpzU3RyaW5n
KHZtLCBTdHJpbmcoYnVmZmVyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNUb0xvY2FsZUxvd2VyQ2FzZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihz
dHJpbmdQcm90b0Z1bmNUb0xvY2FsZUxvd2VyQ2FzZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICAvLyAxMy4xLjIgU3RyaW5nLnBy
b3RvdHlwZS50b0xvY2FsZUxvd2VyQ2FzZSAoW2xvY2FsZXNdKQogICAgIC8vIGh0dHA6Ly9lY21h
LWludGVybmF0aW9uYWwub3JnL3B1YmxpY2F0aW9ucy9zdGFuZGFyZHMvRWNtYS00MDIuaHRtCiAg
ICAgcmV0dXJuIHRvTG9jYWxlQ2FzZTxDYXNlQ29udmVyc2lvbk1vZGU6Okxvd2VyPihnbG9iYWxP
YmplY3QsIGNhbGxGcmFtZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3Ry
aW5nUHJvdG9GdW5jVG9Mb2NhbGVVcHBlckNhc2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5n
UHJvdG9GdW5jVG9Mb2NhbGVVcHBlckNhc2UsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgLy8gMTMuMS4zIFN0cmluZy5wcm90b3R5
cGUudG9Mb2NhbGVVcHBlckNhc2UgKFtsb2NhbGVzXSkKICAgICAvLyBodHRwOi8vZWNtYS1pbnRl
cm5hdGlvbmFsLm9yZy9wdWJsaWNhdGlvbnMvc3RhbmRhcmRzL0VjbWEtNDAyLmh0bQpAQCAtMTY3
NCwxOSArMTY3NCwxOSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgdHJpbVN0cmluZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHRoaXNWYWx1ZQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwganNTdHJpbmcodm0sIHN0ci5zdWJzdHJpbmdTaGFyaW5nSW1wbChsZWZ0
LCByaWdodCAtIGxlZnQpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3Ry
aW5nUHJvdG9GdW5jVHJpbShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNUcmlt
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlzVmFsdWUoKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRyaW1TdHJpbmcoZ2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IFRyaW1TdGFydCB8IFRyaW1FbmQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBzdHJpbmdQcm90b0Z1bmNUcmltU3RhcnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJv
dG9GdW5jVHJpbVN0YXJ0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gY2FsbEZyYW1lLT50aGlz
VmFsdWUoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRyaW1TdHJpbmcoZ2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIFRyaW1TdGFydCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY1RyaW1FbmQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5n
UHJvdG9GdW5jVHJpbUVuZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGNhbGxGcmFtZS0+dGhp
c1ZhbHVlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0cmltU3RyaW5nKGdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBUcmltRW5kKSk7CkBAIC0xNzAxLDcgKzE3MDEsNyBAQCBzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIGNsYW1wQW5kVHJ1bmNhdGVUb1Vuc2lnbmVkKGRvdWJsZSB2YWx1ZSwg
dW5zaWduZWQgbWluLCB1bgogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFsdWUp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N0YXJ0
c1dpdGgoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aCwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTczNSw3ICsxNzM1LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdGFydHNXaXRoKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihzdHJpbmdUb1NlYXJj
aEluLmhhc0luZml4U3RhcnRpbmdBdChzZWFyY2hTdHJpbmcsIHN0YXJ0KSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNzg1LDcgKzE3ODUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RyaW5nSW5jbHVk
ZXNJbXBsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFZNJiB2bSwgUwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKHN0cmluZ1RvU2VhcmNoSW4uZmluZChzZWFyY2hT
dHJpbmcsIHN0YXJ0KSAhPSBub3RGb3VuZCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cmlu
Z1Byb3RvRnVuY0luY2x1ZGVzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODExLDcgKzE4MTEs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0luY2x1ZGVz
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29w
ZSwgc3RyaW5nSW5jbHVkZXNJbXBsKGdsb2JhbE9iamVjdCwgdm0sIHN0cmluZ1RvU2VhcmNoSW4s
IHNlYXJjaFN0cmluZywgcG9zaXRpb25BcmcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihidWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAt
MTgzMSw3ICsxODMxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3Ry
aW5nSW5jbHVkZXNJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIHN0cmluZ0luY2x1ZGVzSW1wbChnbG9iYWxPYmplY3QsIHZtLCBzdHJp
bmdUb1NlYXJjaEluLCBzZWFyY2hTdHJpbmcsIHBvc2l0aW9uQXJnKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oc3RyaW5nUHJvdG9GdW5jSXRlcmF0b3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTE5MjUsNyArMTkyNSw3IEBAIHN0YXRpYyBKU1ZhbHVlIG5vcm1hbGl6ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nLCBOb3JtYWxpCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBqc1N0cmluZyh2bSwgV1RGTW92ZShyZXN1bHQpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTm9ybWFsaXplKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKHN0cmluZ1Byb3RvRnVuY05vcm1hbGl6ZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJv
dG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aAppbmRleCBkMTMyMWI1NDMwOTBjMWZlMWZkYzU0MTIwZWRlZTZmZGI3MTU4NGExLi43ODcxMzcw
MDZhYTMzMjFlNjJkZDI1YmQ0YjczYjA5ODIyMTA3M2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtNTUsMTEgKzU1LDExIEBAIEpT
Q2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJpbmdQcm90b0Z1bmNSZXBsYWNlUmVnRXhw
U3RyaW5nKEpTR2xvYmFsT2JqZWN0CiAKIHZvaWQgc3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzKFN0
cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgU3RyaW5nVmll
dyBzb3VyY2UsIGNvbnN0IGludCogb3ZlY3RvciwgUmVnRXhwKik7CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jUmVwZWF0Q2hhcmFjdGVyKEpTR2xvYmFsT2Jq
ZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY1NwbGl0RmFzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihzdHJpbmdQcm90b0Z1bmNTcGxpdEZhc3QpOwogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBi
dWlsdGluU3RyaW5nSW5jbHVkZXNJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
OwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5nSW5kZXhPZkludGVy
bmFsKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGJ1aWx0aW5TdHJpbmdTdWJzdHJpbmdJbnRlcm5hbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGJ1aWx0aW5TdHJpbmdJbmNsdWRlc0ludGVybmFsKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oYnVpbHRpblN0cmluZ0luZGV4T2ZJbnRlcm5hbCk7CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCA3ODkw
ZjZhYWU2ZmNhMDY2M2ExZTU3NDkyZDM0YjdmODU1YzAwN2Y1Li4wMDBiYjk4MGQ3Y2E2OWIxYzg2
YzZiZTZiYTgyMTA3MzZiYmZlMjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuaApAQCAtNjY5LDYgKzY2OSw4IEBAIGNsYXNzIFN0cnVjdHVyZSBmaW5hbCA6IHB1
YmxpYyBKU0NlbGwgewogCiAgICAgc3RhdGljIGJvb2wgc2hvdWxkQ29udmVydFRvUG9seVByb3Rv
KGNvbnN0IFN0cnVjdHVyZSogYSwgY29uc3QgU3RydWN0dXJlKiBiKTsKIAorICAgIFVuaXF1ZWRT
dHJpbmdJbXBsKiB0cmFuc2l0aW9uUHJvcGVydHlOYW1lKCkgY29uc3QgeyByZXR1cm4gbV90cmFu
c2l0aW9uUHJvcGVydHlOYW1lLmdldCgpOyB9CisKICAgICBzdHJ1Y3QgUHJvcGVydHlIYXNoRW50
cnkgewogICAgICAgICBjb25zdCBIYXNoVGFibGUqIHRhYmxlOwogICAgICAgICBjb25zdCBIYXNo
VGFibGVWYWx1ZSogdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDhhNTc0YTg1ZmYxYmVmZThkNTA2ZWE2YzQ0
ZWQ1MzJkOTE4NTA5Yi4uYzVkMDFiNDQzNWJhN2UxYjE5NTQ3MDI5MDk5NGJmMzg2Mzk0YjljOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sQ29uc3RydWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbENvbnN0cnVj
dG9yLmNwcApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sQ29uc3RydWN0b3JGb3IoSlNHbG9iYWxP
YmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHN5bWJvbENvbnN0cnVjdG9yS2V5Rm9yKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzeW1ib2xDb25zdHJ1Y3RvckZvcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzeW1ib2xDb25zdHJ1Y3RvcktleUZvcik7
CiAKIH0KIApAQCAtNTMsOCArNTMsOCBAQCBjb25zdCBDbGFzc0luZm8gU3ltYm9sQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJnN5bWJvbAogQGVuZAog
Ki8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFN5bWJvbChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0U3ltYm9sKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjYWxsU3ltYm9sKTsKK3N0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFN5bWJvbCk7CiAKIFN5bWJvbENvbnN0cnVjdG9y
OjpTeW1ib2xDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDog
SW50ZXJuYWxGdW5jdGlvbih2bSwgc3RydWN0dXJlLCBjYWxsU3ltYm9sLCBjb25zdHJ1Y3RTeW1i
b2wpCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgU3ltYm9sQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSwgU3ltYm9sUHJvdG90eXBlKiBwcm90b3R5cGUpCiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW1ib2woSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY2FsbFN5bWJvbCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODgsMTQg
Kzg4LDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxTeW1ib2wo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShTeW1ib2w6OmNyZWF0ZVdpdGhEZXNjcmlwdGlvbih2bSwgc3RyaW5nKSk7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFN5bWJvbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihjb25zdHJ1Y3RTeW1ib2wsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZU5vdEFDb25zdHJ1
Y3RvckVycm9yKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5qc0NhbGxlZSgpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sQ29uc3RydWN0b3JGb3IoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oc3ltYm9sQ29uc3RydWN0b3JGb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2Jq
ZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTExMCw3ICsxMTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0
cnVjdG9yRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiAKIGNvbnN0IEFTQ0lJTGl0
ZXJhbCBTeW1ib2xLZXlGb3JUeXBlRXJyb3IgeyAiU3ltYm9sLmtleUZvciByZXF1aXJlcyB0aGF0
IHRoZSBmaXJzdCBhcmd1bWVudCBiZSBhIHN5bWJvbCJfcyB9OwogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHN5bWJvbENvbnN0cnVjdG9yS2V5Rm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHN5bWJvbENvbnN0cnVjdG9yS2V5Rm9yLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sUHJvdG90eXBlLmNwcAppbmRleCA2YzVl
ZWY5NzRlYWQ0ZmMyNTcyZmIzNzZiZDQzNDM5YzM4OTMyODA2Li45ZTg1YTk2YzdhZThiYTYxZTM4
ZDY5MTYxODY4ZWM0NjAwODZkNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TeW1ib2xQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N5bWJvbFByb3RvdHlwZS5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3Rv
R2V0dGVyRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBzeW1ib2xQcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzeW1ib2xQcm90b0dldHRlckRlc2Ny
aXB0aW9uKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN5bWJvbFByb3RvRnVu
Y1RvU3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHN5bWJvbFByb3Rv
RnVuY1ZhbHVlT2YpOwogCiB9CiAKQEAgLTg3LDcgKzg3LDcgQEAgaW5saW5lIFN5bWJvbCogdHJ5
RXh0cmFjdFN5bWJvbChWTSYgdm0sIEpTVmFsdWUgdGhpc1ZhbHVlKQogICAgIHJldHVybiBhc1N5
bWJvbChqc0Nhc3Q8U3ltYm9sT2JqZWN0Kj4odGhpc09iamVjdCktPmludGVybmFsVmFsdWUoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3ltYm9sUHJvdG9HZXR0ZXJEZXNj
cmlwdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihzeW1ib2xQcm90b0dldHRlckRlc2NyaXB0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMDEsNyArMTAxLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzeW1ib2xQcm90b0dldHRlckRlc2NyaXB0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGRlc2NyaXB0aW9uLmlzTnVsbCgp
ID8ganNVbmRlZmluZWQoKSA6IGpzU3RyaW5nKHZtLCBkZXNjcmlwdGlvbikpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKHN5bWJvbFByb3RvRnVuY1RvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xMTMsNyArMTEzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzeW1ib2xQ
cm90b0Z1bmNUb1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShqc05vbnRyaXZpYWxTdHJpbmcodm0s
IHN5bWJvbC0+ZGVzY3JpcHRpdmVTdHJpbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBzeW1ib2xQcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN5
bWJvbFByb3RvRnVuY1ZhbHVlT2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwQ29uc3RydWN0b3IuY3BwCmluZGV4IDky
OWM3NWI0NDZiYjAwNzRhYWIyNTY5Y2E3ODg2OTJhMjdiNWRiZWUuLjlhOGM2ZmUzZWRjNGI2YTUx
N2M2MDhlODdkNjg1Yjc1MDhjOGU0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1dlYWtNYXBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvV2Vha01hcENvbnN0cnVjdG9yLmNwcApAQCAtNDEsMjIgKzQxLDIyIEBAIHZv
aWQgV2Vha01hcENvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFdlYWtNYXBQcm90
b3R5cGUqIHByb3RvdHlwZSkKICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0u
cHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBwcm90b3R5cGUsIFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJvcGVydHlBdHRyaWJ1
dGU6OlJlYWRPbmx5KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y2FsbFdlYWtNYXAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtNYXAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWFrTWFw
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtNYXApOwog
CiBXZWFrTWFwQ29uc3RydWN0b3I6OldlYWtNYXBDb25zdHJ1Y3RvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogICAgIDogQmFzZSh2bSwgc3RydWN0dXJlLCBjYWxsV2Vha01hcCwgY29u
c3RydWN0V2Vha01hcCkKIHsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY2FsbFdlYWtNYXAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsV2Vha01hcCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd0NvbnN0cnVjdG9yQ2Fubm90QmVDYWxsZWRBc0Z1bmN0
aW9uVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJXZWFrTWFwIikpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RXZWFrTWFwKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdlYWtNYXAsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBQcm90b3R5cGUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAKaW5k
ZXggNTY4ODczZmE5MGFmZmIyNjgyMDcwNGQzNDI2N2VhZjBiMjg4MTYwNS4uZmI3YjhjODY2ZmMx
MDE2ZmJiOGYyOTFlZmJmM2QxNTYwZTI2Y2RjYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvV2Vha01hcFByb3RvdHlwZS5jcHAKQEAgLTMzLDEwICszMywxMCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYWtNYXBQcm90b3R5cGU6OnNfaW5m
byA9IHsgIldlYWtNYXAiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFdlYWtNYXBQcm90b3R5cGUpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBEZWxldGUoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVu
Y1dlYWtNYXBHZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBIYXMoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3Rv
RnVuY1dlYWtNYXBTZXQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBEZWxldGUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha01hcEdldCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwSGFzKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBTZXQpOwogCiB2b2lkIFdlYWtN
YXBQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKIHsKQEAgLTY5LDcgKzY5LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgSlNXZWFr
TWFwKiBnZXRXZWFrTWFwKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90
b0Z1bmNXZWFrTWFwRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtNYXBE
ZWxldGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgYXV0byogbWFwID0gZ2V0V2Vha01hcChnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtNzgsNyArNzgsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBEZWxldGUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGtl
eS5pc09iamVjdCgpICYmIG1hcC0+cmVtb3ZlKGFzT2JqZWN0KGtleSkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcEdldChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihwcm90b0Z1bmNXZWFrTWFwR2V0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8qIG1hcCA9IGdldFdlYWtNYXAo
Z2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKICAgICBpZiAoIW1hcCkKQEAg
LTg5LDcgKzg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFr
TWFwR2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKG1hcC0+Z2V0KGFzT2JqZWN0KGtleSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrTWFwSGFzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHBy
b3RvRnVuY1dlYWtNYXBIYXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgYXV0byogbWFwID0gZ2V0V2Vha01hcChnbG9iYWxPYmpl
Y3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghbWFwKQpAQCAtOTgsNyArOTgs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtNYXBIYXMoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKGtleS5pc09iamVjdCgpICYmIG1hcC0+aGFzKGFzT2JqZWN0KGtleSkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha01hcFNldChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrTWFwU2V0LCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVm
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVj
dFJlZkNvbnN0cnVjdG9yLmNwcAppbmRleCA2Njk1ODQ5MWIwNDhiODY1NTlkNGY0ZTcwOTcyZmIx
ODhkYTM1YWE3Li41NjRkMDkzNDIwNjA4ODhiZDFkZDE3ZWEwNjA1MDk3MDU3NGM1MWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmQ29uc3Ry
dWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtPYmplY3RS
ZWZDb25zdHJ1Y3Rvci5jcHAKQEAgLTQwLDIyICs0MCwyMiBAQCB2b2lkIFdlYWtPYmplY3RSZWZD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBXZWFrT2JqZWN0UmVmUHJvdG90eXBl
KiBwcgogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVz
LT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha1JlZihK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc3RydWN0V2Vha1JlZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbFdlYWtSZWYpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha1JlZik7CiAKIFdlYWtPYmplY3RS
ZWZDb25zdHJ1Y3Rvcjo6V2Vha09iamVjdFJlZkNvbnN0cnVjdG9yKFZNJiB2bSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNhbGxXZWFrUmVmLCBjb25z
dHJ1Y3RXZWFrUmVmKQogewogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjYWxsV2Vha1JlZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWFrUmVmLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RCZUNhbGxlZEFzRnVuY3Rp
b25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIldlYWtSZWYiKSk7CiB9CiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdlYWtSZWYoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha1JlZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha09iamVjdFJlZlByb3RvdHlw
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmUHJvdG90
eXBlLmNwcAppbmRleCA1YTJlMzgyNzhhOTdlMDYwMTg0Y2UxZWE4NjYwYzdmZWUwNmMzZDdmLi5m
ZDBhM2U4NjNmMDkzYzhlNjU1OWIwYzJkNWNhMzJjY2Q1MTI4MWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrT2JqZWN0UmVmUHJvdG90eXBlLmNw
cApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdl
YWtPYmplY3RSZWZQcm90b3R5cGU6OnNfaW5mbyA9IHsgIldlYWtSZWYiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYWtPYmplY3RSZWZQcm90
b3R5cGUpIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVu
Y1dlYWtSZWZEZXJlZihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5jV2Vha1JlZkRlcmVmKTsKIAogdm9pZCBXZWFr
T2JqZWN0UmVmUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QpCiB7CkBAIC02NCw3ICs2NCw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGlj
IEpTV2Vha09iamVjdFJlZiogZ2V0V2Vha1JlZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcHJvdG9GdW5jV2Vha1JlZkRlcmVmKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHByb3RvRnVuY1dl
YWtSZWZEZXJlZiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byog
cmVmID0gZ2V0V2Vha1JlZihnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtTZXRDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggMzlmODY3ZDIwYWFlMDcwNTkzN2Y5MGRjZjZhOTZkOWU2NGE0NGVkMi4uMzky
OWNjOTJhMjAyODgxNGJjZjA5YjRhOWQxNGUyMmEyZmQwNzNmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1NldENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0Q29uc3RydWN0b3IuY3BwCkBAIC00MSwy
MiArNDEsMjIgQEAgdm9pZCBXZWFrU2V0Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSwgV2Vha1NldFByb3RvdHlwZSogcHJvdG90eXBlKQogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFu
c2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIHByb3RvdHlwZSwgUHJvcGVy
dHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjYWxsV2Vha1NldChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2Vha1NldChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oY2FsbFdlYWtTZXQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3Ry
dWN0V2Vha1NldCk7CiAKIFdlYWtTZXRDb25zdHJ1Y3Rvcjo6V2Vha1NldENvbnN0cnVjdG9yKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUsIGNh
bGxXZWFrU2V0LCBjb25zdHJ1Y3RXZWFrU2V0KQogewogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsV2Vha1NldChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxXZWFrU2V0LCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93Q29uc3RydWN0b3JDYW5ub3RC
ZUNhbGxlZEFzRnVuY3Rpb25UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIldlYWtTZXQi
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdFdl
YWtTZXQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2Vha1NldCwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha1Nl
dFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJv
dG90eXBlLmNwcAppbmRleCBhM2QyNDYwZjFiNzA0NmJkNTQ0ODgxODBmYzVmZjMzYWExZTAyMmNk
Li42NzNjYWMwYTQzYzNiYTBmYjdlODk0ZmZhNjUxZTBjYzAwMzRkOGE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrU2V0UHJvdG90eXBlLmNwcApAQCAtMzMs
OSArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYWtTZXRQcm90
b3R5cGU6OnNfaW5mbyA9IHsgIldlYWtTZXQiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYWtTZXRQcm90b3R5cGUpIH07CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtTZXREZWxldGUoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIHByb3RvRnVuY1dlYWtTZXRIYXMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHByb3RvRnVuY1dlYWtTZXRBZGQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHByb3RvRnVuY1dlYWtTZXREZWxldGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04ocHJvdG9GdW5jV2Vha1NldEhhcyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihwcm90b0Z1bmNXZWFrU2V0QWRkKTsKIAogdm9pZCBXZWFrU2V0UHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CkBAIC02
Nyw3ICs2Nyw3IEBAIEFMV0FZU19JTkxJTkUgc3RhdGljIEpTV2Vha1NldCogZ2V0V2Vha1NldChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlCiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldERlbGV0
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihwcm90b0Z1bmNXZWFrU2V0RGVsZXRlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIGF1dG8q
IHNldCA9IGdldFdlYWtTZXQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsK
ICAgICBpZiAoIXNldCkKQEAgLTc2LDcgKzc2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBwcm90b0Z1bmNXZWFrU2V0RGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihrZXkuaXNPYmplY3QoKSAmJiBz
ZXQtPnJlbW92ZShhc09iamVjdChrZXkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHByb3RvRnVuY1dlYWtTZXRIYXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04ocHJvdG9GdW5j
V2Vha1NldEhhcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBhdXRvKiBzZXQgPSBnZXRXZWFrU2V0KGdsb2JhbE9iamVjdCwgY2Fs
bEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCFzZXQpCkBAIC04NSw3ICs4NSw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvdG9GdW5jV2Vha1NldEhhcyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oa2V5LmlzT2JqZWN0KCkgJiYgc2V0LT5oYXMoYXNPYmplY3Qoa2V5KSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBwcm90b0Z1bmNXZWFrU2V0QWRkKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKHByb3RvRnVuY1dlYWtTZXRBZGQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9KU0RvbGxhclZNLmNwcAppbmRleCA2MTBkMjU2MDA2MzZj
MmU3M2ExNTIxMmQ5YzkzY2E0NGVkN2FmMzk4Li5mYjRiMjBmNTExMDk5MWE2Njk1NTdkZTBhMTlh
MGM1MmJlYmY0YjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvSlNE
b2xsYXJWTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pTRG9sbGFyVk0u
Y3BwCkBAIC04Miw5ICs4Miw2IEBAIGNsYXNzIEpTRG9sbGFyVk1IZWxwZXIgewogCiAgICAgdm9p
ZCB1cGRhdGVWTVN0YWNrTGltaXRzKCkgeyByZXR1cm4gbV92bS51cGRhdGVTdGFja0xpbWl0cygp
OyB9OwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25H
ZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlzdChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
Ci1wcml2YXRlOgogICAgIFZNJiBtX3ZtOwogfTsKIApAQCAtOTIsNiArODksMTAgQEAgY2xhc3Mg
SlNEb2xsYXJWTUhlbHBlciB7CiAKIG5hbWVzcGFjZSB7CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRE9NSklUR2V0dGVyQ29tcGxleEVuYWJsZUV4Y2VwdGlvbik7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRPTUpJVEZ1bmN0aW9u
T2JqZWN0V2l0aFR5cGVDaGVjayk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aFR5cGVDaGVjayk7CisKIC8vIFdlIG11
c3QgUkVMRUFTRV9BU1NFUlQoT3B0aW9uczo6dXNlRG9sbGFyVk0oKSkgaW4gYWxsIEpTRG9sbGFy
Vk0gZnVuY3Rpb25zCiAvLyB0aGF0IGFyZSBub24tdHJpdmlhbCBhdCBhbiBleWUncyBnbGFuY2Uu
IFRoaXMgaW5jbHVkZXMgKGJ1dCBpcyBub3QgbGltaXRlZCB0byk6CiAvLyAgICAgIGNvbnN0cnVj
dG9ycwpAQCAtNDg5LDEyICs0OTAsMTIgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGljIEpT
Tm9uRmluYWxPYmplY3QgewogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgICAgIEN1c3RvbUdldHRlciogdGhpc09iamVjdCA9IGpzQ2FzdDxDdXN0b21HZXR0ZXIqPihv
YmplY3QpOwogICAgICAgICBpZiAocHJvcGVydHlOYW1lID09IFByb3BlcnR5TmFtZShJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyIikpKSB7Ci0gICAgICAgICAgICBzbG90
LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSwgdGhpc09iamVjdC0+Y3VzdG9tR2V0dGVyKTsKKyAgICAgICAgICAgIHNsb3Quc2V0
Q2FjaGVhYmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRl
IHwgUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtLCBjdXN0b21HZXR0ZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gUHJvcGVydHlOYW1lKElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJjdXN0b21HZXR0ZXJBY2Nlc3NvciIpKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1
dGU6OkRvbnREZWxldGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0gfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IsIHRo
aXNPYmplY3QtPmN1c3RvbUdldHRlckFjZXNzb3IpOworICAgICAgICAgICAgc2xvdC5zZXRDYWNo
ZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0g
fCBQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IsIGN1c3RvbUdldHRlckFjZXNzb3Ip
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgCkBAIC01MDIs
NyArNTAzLDcgQEAgY2xhc3MgQ3VzdG9tR2V0dGVyIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogICAgIH0KIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTUxOCw3ICs1MTksNyBAQCBjbGFzcyBDdXN0b21HZXR0ZXIgOiBwdWJsaWMgSlNOb25GaW5h
bE9iamVjdCB7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMTAwKSk7
CiAgICAgfQogICAgIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXJBY2Vz
c29yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGN1c3RvbUdldHRlckFjZXNzb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC01NzUsNyArNTc2LDcgQEAgSUdOT1JFX1dBUk5JTkdTX0VORAogICAgICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgICAgIFJ1bnRpbWVBcnJheSogdGhpc09i
amVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihvYmplY3QpOwogICAgICAgICBpZiAocHJvcGVy
dHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkgewotICAgICAgICAgICAgc2xvdC5z
ZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0sIHRoaXNPYmplY3QtPmxlbmd0aEdldHRlcik7CisgICAgICAgICAgICBzbG90LnNldENh
Y2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8
IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSwgbGVuZ3RoR2V0dGVyKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAK
QEAgLTY0NSw3ICs2NDYsNyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiAgICAgICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1Zh
bHVlIGxlbmd0aEdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBsZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC02NjUsNyArNjY2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21w
YWN0SGFzaEluZGV4IHN0YXRpY0N1c3RvbUFjY2Vzc29yVGFibGVJbmRleFsyXSA9IHsKICAgICB7
IC0xLCAtMSB9LAogfTsKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHRlc3RTdGF0aWNBY2Nlc3Nv
ckdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IHRlc3RTdGF0aWNBY2Nlc3NvckdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTk3NCw3ICs5NzUsNyBAQCBjbGFzcyBET01KSVRHZXR0ZXIgOiBwdWJsaWMgRE9NSklUTm9k
ZSB7CiBwcml2YXRlOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAotICAgIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBjdXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAg
IHsKICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMTA2OCw3ICsxMDY5LDcgQEAgY2xhc3MgRE9N
SklUR2V0dGVyTm9FZmZlY3RzIDogcHVibGljIERPTUpJVE5vZGUgewogcHJpdmF0ZToKICAgICB2
b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3Vz
dG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGN1c3RvbUdldHRlcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTExNzEsMjAgKzExNzIsOSBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDog
cHVibGljIERPTUpJVE5vZGUgewogI2VuZGlmCiAgICAgfTsKIAotcHJpdmF0ZToKICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIAotICAgIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5hYmxlRXhjZXB0aW9uKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotICAgIHsKLSAgICAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKLSAgICAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRvKiBvYmplY3QgPSBqc0R5bmFtaWNDYXN0PERP
TUpJVEdldHRlckNvbXBsZXgqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Ci0gICAgICAg
IGlmIChvYmplY3QpCi0gICAgICAgICAgICBvYmplY3QtPm1fZW5hYmxlRXhjZXB0aW9uID0gdHJ1
ZTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICB9
Ci0KLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGN1c3RvbUdldHRlcihKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKICAgICB7CiAgICAgICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTEyMDAsNiArMTE5MCwx
NiBAQCBjbGFzcyBET01KSVRHZXR0ZXJDb21wbGV4IDogcHVibGljIERPTUpJVE5vZGUgewogICAg
IGJvb2wgbV9lbmFibGVFeGNlcHRpb24geyBmYWxzZSB9OwogfTsKIAorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRE9NSklUR2V0dGVyQ29tcGxleEVuYWJsZUV4Y2VwdGlvbiwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKKyAgICBhdXRvKiBvYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVEdldHRl
ckNvbXBsZXgqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CisgICAgaWYgKG9iamVjdCkK
KyAgICAgICAgb2JqZWN0LT5tX2VuYWJsZUV4Y2VwdGlvbiA9IHRydWU7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKK30KKwogc3RhdGljIGNvbnN0IERPTUpJVEdl
dHRlckNvbXBsZXg6OkRPTUpJVEF0dHJpYnV0ZSBET01KSVRHZXR0ZXJDb21wbGV4RE9NSklUOwog
CiB2b2lkIERPTUpJVEdldHRlckNvbXBsZXg6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCkKQEAgLTEyMDksNyArMTIwOSw3IEBAIHZvaWQgRE9NSklU
R2V0dGVyQ29tcGxleDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIGNvbnN0IERPTUpJVDo6R2V0dGVyU2V0dGVyKiBkb21KSVQgPSAmRE9N
SklUR2V0dGVyQ29tcGxleERPTUpJVDsKICAgICBhdXRvKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBE
T01BdHRyaWJ1dGVHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSh2bSwgZG9tSklULT5nZXR0ZXIoKSwgbnVs
bHB0ciwgRE9NQXR0cmlidXRlQW5ub3RhdGlvbiB7IERPTUpJVEdldHRlckNvbXBsZXg6OmluZm8o
KSwgZG9tSklUIH0pOwogICAgIHB1dERpcmVjdEN1c3RvbUFjY2Vzc29yKHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCAiY3VzdG9tR2V0dGVyIiksIGN1c3RvbUdldHRlclNldHRlciwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkN1c3RvbUFjY2Vz
c29yKTsKLSAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZW5hYmxlRXhjZXB0aW9uIiksIDAsIGZ1bmN0aW9uRW5h
YmxlRXhjZXB0aW9uLCBOb0ludHJpbnNpYywgMCk7CisgICAgcHV0RGlyZWN0TmF0aXZlRnVuY3Rp
b24odm0sIGdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImVuYWJsZUV4
Y2VwdGlvbiIpLCAwLCBmdW5jdGlvbkRPTUpJVEdldHRlckNvbXBsZXhFbmFibGVFeGNlcHRpb24s
IE5vSW50cmluc2ljLCAwKTsKIH0KIAogY2xhc3MgRE9NSklURnVuY3Rpb25PYmplY3QgOiBwdWJs
aWMgRE9NSklUTm9kZSB7CkBAIC0xMjM4LDE4ICsxMjM4LDYgQEAgY2xhc3MgRE9NSklURnVuY3Rp
b25PYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiAgICAgICAgIHJldHVybiBvYmplY3Q7CiAg
ICAgfQogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25X
aXRoVHlwZUNoZWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQotICAgIHsKLSAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
LSAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICAgICAgRE9NSklUTm9kZSogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8RE9NSklUTm9kZSo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1
ZSgpKTsKLSAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQotICAgICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOwotICAgIH0KLQogICAgIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZ1bmN0aW9uV2l0aG91dFR5cGVDaGVj
ayhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01KSVROb2RlKiBub2RlKQogICAgIHsK
ICAgICAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKQEAgLTEyODIsMTMgKzEy
NzAsMjUgQEAgY2xhc3MgRE9NSklURnVuY3Rpb25PYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25ET01KSVRGdW5jdGlvbk9iamVjdFdpdGhU
eXBlQ2hlY2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCit7CisgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKKyAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOworCisgICAgRE9NSklUTm9kZSogdGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
RE9NSklUTm9kZSo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIXRoaXNP
YmplY3QpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+dmFs
dWUoKSkpOworfQorCiBzdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklURnVuY3Rp
b25PYmplY3RTaWduYXR1cmUoRE9NSklURnVuY3Rpb25PYmplY3Q6OmZ1bmN0aW9uV2l0aG91dFR5
cGVDaGVjaywgRE9NSklURnVuY3Rpb25PYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZv
clJlYWQoRE9NSklUOjpIZWFwUmFuZ2UoRE9NSklUOjpIZWFwUmFuZ2U6OkNvbnN0RXhwciwgMCwg
MSkpLCBTcGVjSW50MzJPbmx5KTsKIAogdm9pZCBET01KSVRGdW5jdGlvbk9iamVjdDo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24o
dm0pOwotICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sICJmdW5jIiksIDAsIGZ1bmN0aW9uV2l0aFR5cGVDaGVjaywg
Tm9JbnRyaW5zaWMsICZET01KSVRGdW5jdGlvbk9iamVjdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSkpOworICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uKHZtLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0s
ICJmdW5jIiksIDAsIGZ1bmN0aW9uRE9NSklURnVuY3Rpb25PYmplY3RXaXRoVHlwZUNoZWNrLCBO
b0ludHJpbnNpYywgJkRPTUpJVEZ1bmN0aW9uT2JqZWN0U2lnbmF0dXJlLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSk7CiB9CiAKIGNsYXNzIERPTUpJ
VENoZWNrSlNDYXN0T2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUgewpAQCAtMTMxNywxOCArMTMx
Nyw2IEBAIGNsYXNzIERPTUpJVENoZWNrSlNDYXN0T2JqZWN0IDogcHVibGljIERPTUpJVE5vZGUg
ewogICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAotICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uV2l0aFR5cGVDaGVjayhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLSAgICB7Ci0gICAgICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7Ci0gICAgICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKLSAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
Ci0gICAgICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PERPTUpJVENoZWNrSlND
YXN0T2JqZWN0Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgICAgICBpZiAoIXRo
aXNPYmplY3QpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmpl
Y3QsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih0aGlz
T2JqZWN0LT52YWx1ZSgpKSk7Ci0gICAgfQotCiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gZnVuY3Rpb25XaXRob3V0VHlwZUNoZWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIERPTUpJVE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICBEb2xsYXJWTUFzc2Vy
dFNjb3BlIGFzc2VydFNjb3BlOwpAQCAtMTM0MiwxMyArMTMzMCwyNSBAQCBjbGFzcyBET01KSVRD
aGVja0pTQ2FzdE9iamVjdCA6IHB1YmxpYyBET01KSVROb2RlIHsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKIH07CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkRPTUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aFR5cGVDaGVjaywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK3sKKyAgICBE
b2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxET01KSVRDaGVja0pTQ2FzdE9iamVj
dCo+KHZtLCBjYWxsRnJhbWUtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIXRoaXNPYmplY3QpCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+dmFsdWUoKSkpOwor
fQorCiBzdGF0aWMgY29uc3QgRE9NSklUOjpTaWduYXR1cmUgRE9NSklUQ2hlY2tKU0Nhc3RPYmpl
Y3RTaWduYXR1cmUoRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmZ1bmN0aW9uV2l0aG91dFR5cGVD
aGVjaywgRE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmluZm8oKSwgRE9NSklUOjpFZmZlY3Q6OmZv
clJlYWQoRE9NSklUOjpIZWFwUmFuZ2U6OnRvcCgpKSwgU3BlY0ludDMyT25seSk7CiAKIHZvaWQg
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOwogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbih2bSwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVu
YyIpLCAwLCBmdW5jdGlvbldpdGhUeXBlQ2hlY2ssIE5vSW50cmluc2ljLCAmRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3RTaWduYXR1cmUsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6UmVhZE9ubHkpKTsKKyAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgZ2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiZnVuYyIpLCAwLCBmdW5jdGlvbkRP
TUpJVENoZWNrSlNDYXN0T2JqZWN0V2l0aFR5cGVDaGVjaywgTm9JbnRyaW5zaWMsICZET01KSVRD
aGVja0pTQ2FzdE9iamVjdFNpZ25hdHVyZSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpSZWFkT25seSkpOwogfQogCiBjbGFzcyBET01KSVRHZXR0ZXJCYXNlSlNPYmpl
Y3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CkBAIC0xNDI0LDcgKzE0MjQsNyBAQCBjbGFzcyBET01K
SVRHZXR0ZXJCYXNlSlNPYmplY3QgOiBwdWJsaWMgRE9NSklUTm9kZSB7CiBwcml2YXRlOgogICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oVk0mKTsKIAotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBj
dXN0b21HZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gY3VzdG9tR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogICAgIHsKICAgICAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwpAQCAtMTYzMCw4ICsxNjMwLDggQEAgdm9pZCBFbGVtZW50OjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0sIFJvb3QqIHJvb3QpCiAKICNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uV2FzbVN0cmVhbWluZ1BhcnNl
ckFkZEJ5dGVzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhc21TdHJlYW1pbmdQYXJzZXJGaW5hbGl6ZShK
U0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyQWRkQnl0ZXMpOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25XYXNtU3RyZWFtaW5nUGFyc2VyRmluYWxpemUp
OwogCiBjbGFzcyBXYXNtU3RyZWFtaW5nUGFyc2VyIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTE3MDEsNyArMTcwMSw3IEBAIGNsYXNzIFdhc21TdHJlYW1pbmdQ
YXJzZXIgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogCiBjb25zdCBDbGFzc0luZm8g
V2FzbVN0cmVhbWluZ1BhcnNlcjo6c19pbmZvID0geyAiV2FzbVN0cmVhbWluZ1BhcnNlciIsICZC
YXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2FzbVN0
cmVhbWluZ1BhcnNlcikgfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bldhc21TdHJlYW1pbmdQYXJzZXJBZGRCeXRlcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bldhc21TdHJlYW1pbmdQYXJzZXJBZGRCeXRlcywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFz
c2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTE3MTYsNyAr
MTcxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25XYXNtU3RyZWFt
aW5nUGFyc2VyQWRkQnl0ZXMoSlNHbG9iYWxPYmplY3QqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RhdGljX2Nhc3Q8aW50MzJfdD4odGhp
c09iamVjdC0+c3RyZWFtaW5nUGFyc2VyKCkuYWRkQnl0ZXMoYml0d2lzZV9jYXN0PGNvbnN0IHVp
bnQ4X3QqPihkYXRhLmZpcnN0KSwgZGF0YS5zZWNvbmQpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbldhc21TdHJlYW1pbmdQYXJzZXJGaW5hbGl6ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbldhc21TdHJlYW1pbmdQYXJzZXJGaW5hbGl6ZSwgKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKQEAgLTE3MzIsNiArMTczMiwxMDQgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbldhc21TdHJlYW1pbmdQYXJzZXJGaW5hbGl6ZShKU0dsb2JhbE9iamVj
dCoKIAogbmFtZXNwYWNlIEpTQyB7CiAKK3N0YXRpYyBOT19SRVRVUk5fRFVFX1RPX0NSQVNIIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmFzaCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkJyZWFrcG9pbnQpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25ERkdUcnVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRlRMVHJ1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkNwdU1mZW5jZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihmdW5jdGlvbkNwdVJkdHNjKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1
bmN0aW9uQ3B1Q3B1aWQpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25DcHVQYXVzZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNw
dUNsZmx1c2gpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25MTGlu
dFRydWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25CYXNlbGlu
ZUpJVFRydWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ob0lu
bGluZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdDKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRWRlbkdDKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJvbm91c2x5KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcFN1YnNwYWNlSGFz
aGVzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbEZyYW1l
KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ29kZUJsb2NrRm9y
RnJhbWUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Db2RlQmxv
Y2tGb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wU291
cmNlRm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcEJ5
dGVjb2RlRm9yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGF0
YUxvZyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRHVtcENhbGxGcmFtZSk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBTdGFjayk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBSZWdpc3RlcnMpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wQ2VsbCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkluZGV4aW5nTW9kZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklubGluZUNhcGFjaXR5KTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVmFsdWUpOworc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRQSUQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25IYXZlQUJhZFRpbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0hhdmluZ0FCYWRUaW1lKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2FsbFdpdGhTdGFja1NpemUpOworc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVQcm94eSk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVJ1bnRpbWVBcnJh
eSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU51bGxS
b3BlU3RyaW5nKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlSW1wdXJlR2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck9iamVjdCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck5v
RWZmZWN0c09iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkNyZWF0ZURPTUpJVEdldHRlckNvbXBsZXhPYmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVET01KSVRGdW5jdGlvbk9iamVjdCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVENoZWNrSlNDYXN0
T2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
RE9NSklUR2V0dGVyQmFzZUpTT2JqZWN0KTsKKyNpZiBFTkFCTEUoV0VCQVNTRU1CTFkpCitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVdhc21TdHJlYW1pbmdQ
YXJzZXIpOworI2VuZGlmCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkNyZWF0ZVN0YXRpY0N1c3RvbUFjY2Vzc29yKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVPYmplY3REb2luZ1NpZGVFZmZlY3RQdXRX
aXRob3V0Q29ycmVjdFNsb3RTdGF0dXMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25DcmVhdGVFbXB0eUZ1bmN0aW9uV2l0aE5hbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRJbXB1cmVHZXR0ZXJEZWxlZ2F0ZSk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4pOworc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRQcml2YXRlUHJvcGVydHkp
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVSb290KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRWxlbWVudCk7
CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldEVsZW1lbnQpOwor
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVTaW1wbGVPYmpl
Y3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRIaWRkZW5W
YWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldEhpZGRl
blZhbHVlKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2hhZG93
Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2spOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdyk7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZpbmRUeXBlRm9yRXhwcmVz
c2lvbik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblJldHVyblR5
cGVGb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GbGF0dGVu
RGljdGlvbmFyeU9iamVjdCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFuZ2VzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4ZWN1dGVkKTsKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQmFzaWNCbG9ja0V4ZWN1dGlvbkNvdW50KTsK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRW5hYmxlRGVidWdnZXJN
b2RlV2hlbklkbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25E
aXNhYmxlRGVidWdnZXJNb2RlV2hlbklkbGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EZWxldGVBbGxDb2RlV2hlbklkbGUpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HbG9iYWxPYmplY3RDb3VudCk7CitzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdsb2JhbE9iamVjdEZvck9iamVjdCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldEdldHRlclNldHRlcik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0
dGVyU2V0dGVyKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3Jl
YXRlQ3VzdG9tVGVzdEdldHRlclNldHRlcik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkRlbHRhQmV0d2VlbkJ1dHRlcmZsaWVzKTsKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3VycmVudENQVVRpbWUpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ub3RhbEdDVGltZSk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblBhcnNlQ291bnQpOworc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc1dhc21TdXBwb3J0ZWQpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25NYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNp
dGlvbkxpc3QpOzsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0
Q29uY3VycmVudGx5KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
SGFzT3duTGVuZ3RoUHJvcGVydHkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25SZWplY3RQcm9taXNlQXNIYW5kbGVkKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uU2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklDVVZlcnNpb24pOworc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JQ1VIZWFkZXJWZXJzaW9uKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQXNzZXJ0RW5hYmxlZCk7CitzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzTWVtb3J5TGltaXRlZCk7CitzdGF0
aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblVzZUpJVCk7CitzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklzR2lnYWNhZ2VFbmFibGVkKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVG9VbmNhY2hlYWJsZURpY3Rpb25h
cnkpOworCiBjb25zdCBDbGFzc0luZm8gSlNEb2xsYXJWTTo6c19pbmZvID0geyAiRG9sbGFyVk0i
LCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpT
RG9sbGFyVk0pIH07CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBkb1ByaW50KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBib29sIGFkZExpbmVGZWVk
KQpAQCAtMTc1OCw3ICsxODU2LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGRvUHJpbnQoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUKIAogLy8gVHJp
Z2dlcnMgYSBjcmFzaCBhZnRlciBkdW1waW5nIGFueSBwYXJhbWF0ZXIgcGFzc2VkIHRvIGl0Lgog
Ly8gVXNhZ2U6ICR2bS5jcmFzaCguLi4pCi1zdGF0aWMgTk9fUkVUVVJOX0RVRV9UT19DUkFTSCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jhc2goSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitOT19SRVRVUk5fRFVFX1RPX0NS
QVNIIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyYXNoLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZN
QXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAKQEAgLTE3ODAsNyArMTg3OCw3IEBAIHN0YXRpYyBO
T19SRVRVUk5fRFVFX1RPX0NSQVNIIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmFzaChKU0dsb2JhCiAKIC8vIEV4ZWN1dGVzIGEgYnJlYWtwb2ludCBpbnN0cnVjdGlvbiBp
ZiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdHJ1dGh5IG9yIGlzIHVuc2V0LgogLy8gVXNhZ2U6ICR2
bS5icmVha3BvaW50KDxjb25kaXRpb24+KQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25CcmVha3BvaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQnJl
YWtwb2ludCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIC8vIE5v
dGhpbmcgc2hvdWxkIHRocm93IGhlcmUgYnV0IHdlIG1pZ2h0IGFzIHdlbGwgZG91YmxlIGNoZWNr
Li4uCkBAIC0xNzk1LDcgKzE4OTMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkJyZWFrcG9pbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iagogCiAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgZnJhbWUgaXMgYSBERkcgZnJhbWUuCiAvLyBVc2Fn
ZTogaXNERkcgPSAkdm0uZGZnVHJ1ZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkRGR1RydWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uREZHVHJ1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihmYWxzZSkpOwpAQCAtMTgwMywxMyArMTkw
MSwxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRGR1Ry
dWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQogCiAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IGN1cnJlbnQgZnJhbWUgaXMgYSBGVEwgZnJhbWUuCiAvLyBVc2FnZTogaXNGVEwgPSAkdm0uZnRs
VHJ1ZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkZUTFRy
dWUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRlRMVHJ1ZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzQm9vbGVhbihmYWxzZSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNwdU1mZW5jZShKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcHVNZmVuY2UsIChKU0dsb2JhbE9iamVj
dCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAjaWYgQ1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpCkBAIC0xODE4LDcgKzE5MTYsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNwdU1mZW5jZShKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ3B1UmR0c2MoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1UmR0c2MsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgQ1BVKFg4Nl82
NCkgJiYgIU9TKFdJTkRPV1MpCkBAIC0xODMxLDcgKzE5MjksNyBAQCBzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNwdVJkdHNjKEpTR2xvYmFsT2JqZWN0KiwgQ2Fs
bEZyYW1lKgogI2VuZGlmCiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uQ3B1Q3B1aWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3B1Q3B1aWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgQ1BV
KFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpCkBAIC0xODQwLDcgKzE5MzgsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNwdUNwdWlkKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3B1UGF1
c2UoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQ3B1UGF1c2UsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgQ1BVKFg4Nl82NCkgJiYgIU9T
KFdJTkRPV1MpCkBAIC0xODU4LDcgKzE5NTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkNwdVBhdXNlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKgog
Ly8KIC8vIElmIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBub3QgYSBKU0FycmF5QnVmZmVyLCB3ZSBs
b2FkIHRoZSBidXR0ZXJmbHkKIC8vIGFuZCBjbGZsdXNoIGF0IHRoZSBhZGRyZXNzIG9mIHRoZSBi
dXR0ZXJmbHkuCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNw
dUNsZmx1c2goSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcHVDbGZsdXNoLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgQ1BVKFg4Nl82NCkgJiYgIU9TKFdJ
TkRPV1MpCkBAIC0xOTQ3LDcgKzIwNDUsNyBAQCBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBn
ZXRFeGVjdXRhYmxlRm9yRnVuY3Rpb24oSlNWYWx1ZSB0aGVGdW5jdGlvblZhbHVlKQogCiAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIGN1cnJlbnQgZnJhbWUgaXMgYSBMTEludCBmcmFtZS4KIC8vIFVz
YWdlOiBpc0xMSW50ID0gJHZtLmxsaW50VHJ1ZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvbkxMaW50VHJ1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkxMaW50VHJ1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTE5NjAsNyArMjA1OCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTExpbnRUcnVlKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplCiAKIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY3VycmVudCBmcmFtZSBp
cyBhIGJhc2VsaW5lIEpJVCBmcmFtZS4KIC8vIFVzYWdlOiBpc0Jhc2VsaW5lSklUID0gJHZtLmJh
c2VsaW5lSklUVHJ1ZSgpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkJhc2VsaW5lSklUVHJ1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkJhc2VsaW5l
SklUVHJ1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTE5NzUsNyArMjA3Myw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQmFzZWxpbmVKSVRUcnVlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iCiAvLyBVc2FnZToKIC8vIGZ1bmN0aW9uIGYoKSB7IH07CiAvLyAkdm0ubm9J
bmxpbmUoZik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk5v
SW5saW5lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Ob0lubGluZSwgKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgaWYgKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkKQEAgLTE5OTEsNyArMjA4
OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uTm9Jbmxp
bmUoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqCiAKIC8vIFJ1bnMgYSBmdWxsIEdDIHN5bmNo
cm9ub3VzbHkuCiAvLyBVc2FnZTogJHZtLmdjKCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uR0MoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdDLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTUluc3BlY3Rvcjo6Z2MoJmdsb2JhbE9iamVjdC0+dm0oKSk7
CkBAIC0yMDAwLDcgKzIwOTgsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkdDKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbAogCiAvLyBSdW5z
IHRoZSBlZGVuR0Mgc3luY2hyb25vdXNseS4KIC8vIFVzYWdlOiAkdm0uZWRlbkdDKCkKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRWRlbkdDKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25FZGVuR0MsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNSW5zcGVj
dG9yOjplZGVuR0MoJmdsb2JhbE9iamVjdC0+dm0oKSk7CkBAIC0yMDA5LDcgKzIxMDcsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkVkZW5HQyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LAogCiAvLyBSdW5zIGEgZnVsbCBHQywgYnV0IHN3ZWVwIGFz
eW5jaHJvbm91c2x5LgogLy8gVXNhZ2U6ICR2bS5nY1N3ZWVwQXN5bmNocm9ub3VzbHkoKQotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HQ1N3ZWVwQXN5bmNocm9u
b3VzbHkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdDU3dlZXBBc3luY2hyb25vdXNseSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0
U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXAuY29sbGVjdE5v
dyhBc3luYywgQ29sbGVjdGlvblNjb3BlOjpGdWxsKTsKQEAgLTIwMTgsNyArMjExNiw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR0NTd2VlcEFzeW5jaHJv
bm91c2x5KEpTR2xvYmFsT2JqZWN0CiAKIC8vIER1bXBzIHRoZSBoYXNoZXMgb2YgYWxsIHN1YnNw
YWNlcyBjdXJyZW50bHkgcmVnaXN0ZXJlZCB3aXRoIHRoZSBWTS4KIC8vIFVzYWdlOiAkdm0uZHVt
cFN1YnNwYWNlSGFzaGVzKCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1
bmN0aW9uRHVtcFN1YnNwYWNlSGFzaGVzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EdW1wU3Vic3BhY2VI
YXNoZXMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKQEAgLTIwNDAsNyArMjEzOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFN1YnNwYWNlSGFzaGVzKEpTR2xvYmFsT2JqZWN0KiBn
CiAvLyBOb3RlOiB5b3UgY2Fubm90IHRvU3RyaW5nKCkgYSBjb2RlQmxvY2ssIHVubGlua2VkQ29k
ZUJsb2NrLCBvciBleGVjdXRhYmxlIGJlY2F1c2UKIC8vIHRoZXJlIGFyZSBpbnRlcm5hbCBvYmpl
Y3RzIGFuZCBub3QgYSBKUyBvYmplY3QuIEhlbmNlLCB5b3UgY2Fubm90IGRvIHN0cmluZwogLy8g
Y29uY2F0ZW5hdGlvbiB3aXRoIHRoZW0uCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNhbGxGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNhbGxG
cmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHVuc2lnbmVk
IGZyYW1lTnVtYmVyID0gMTsKQEAgLTIwNjEsNyArMjE1OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbEZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplCiAvLyBHZXRzIGEgdG9rZW4gZm9yIHRoZSBDb2RlQmxvY2sgZm9yIGEgc3BlY2lmaWVk
IGZyYW1lIGluZGV4LgogLy8gVXNhZ2U6IGNvZGVCbG9ja1Rva2VuID0gJHZtLmNvZGVCbG9ja0Zv
ckZyYW1lKDApIC8vIGZyYW1lIDAgaXMgdGhlIHRvcCBmcmFtZS4KIC8vIFVzYWdlOiBjb2RlQmxv
Y2tUb2tlbiA9ICR2bS5jb2RlQmxvY2tGb3JGcmFtZSgpIC8vIGltcGxpZXMgZnJhbWUgMCBpLmUu
IGN1cnJlbnQgZnJhbWUuCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNvZGVCbG9ja0ZvckZyYW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ29kZUJs
b2NrRm9yRnJhbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICB1
bnNpZ25lZCBmcmFtZU51bWJlciA9IDE7CkBAIC0yMTE2LDcgKzIyMTQsNyBAQCBzdGF0aWMgQ29k
ZUJsb2NrKiBjb2RlQmxvY2tGcm9tQXJnKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbAogLy8gVXNhZ2U6ICR2bS5wcmludCgiY29kZWJsb2NrID0gIiwgJHZtLmNv
ZGVCbG9ja0Zvcihjb2RlQmxvY2tUb2tlbikpCiAvLyBOb3RlOiB5b3UgY2Fubm90IHRvU3RyaW5n
KCkgYSBjb2RlQmxvY2sgYmVjYXVzZSBpdCdzIGFuIGludGVybmFsIG9iamVjdCBhbmQgbm90CiAv
LyBhIEpTIG9iamVjdC4gSGVuY2UsIHlvdSBjYW5ub3QgZG8gc3RyaW5nIGNvbmNhdGVuYXRpb24g
d2l0aCBpdC4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ29k
ZUJsb2NrRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ29kZUJsb2NrRm9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2sgPSBjb2RlQmxvY2tGcm9tQXJnKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lKTsKQEAgLTIxMzAs
NyArMjIyOCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q29kZUJsb2NrRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAKIC8vIFVzYWdlOiAkdm0uZHVt
cFNvdXJjZUZvcihmdW5jdGlvbk9iaikKIC8vIFVzYWdlOiAkdm0uZHVtcFNvdXJjZUZvcihjb2Rl
QmxvY2tUb2tlbikKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
RHVtcFNvdXJjZUZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBTb3VyY2VGb3Is
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBDb2RlQmxvY2sqIGNv
ZGVCbG9jayA9IGNvZGVCbG9ja0Zyb21BcmcoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUpOwpAQCAt
MjE0MSw3ICsyMjM5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25EdW1wU291cmNlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKIAogLy8gVXNhZ2U6ICR2
bS5kdW1wQnl0ZWNvZGVGb3IoZnVuY3Rpb25PYmopCiAvLyBVc2FnZTogJHZtLmR1bXBCeXRlY29k
ZUZvcihjb2RlQmxvY2spCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkR1bXBCeXRlY29kZUZvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBCeXRl
Y29kZUZvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIENvZGVC
bG9jayogY29kZUJsb2NrID0gY29kZUJsb2NrRnJvbUFyZyhnbG9iYWxPYmplY3QsIGNhbGxGcmFt
ZSk7CkBAIC0yMTUyLDcgKzIyNTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkR1bXBCeXRlY29kZUZvcihKU0dsb2JhbE9iamVjdCogZ2xvYgogCiAvLyBQ
cmludHMgYSBzZXJpZXMgb2YgY29tbWEgc2VwYXJhdGUgc3RyaW5ncyB3aXRob3V0IGFwcGVuZGlu
ZyBhIG5ld2xpbmUuCiAvLyBVc2FnZTogJHZtLmRhdGFMb2coc3RyMSwgc3RyMiwgc3RyMykKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGF0YUxvZyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkRhdGFMb2csIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKICAgICBjb25zdCBib29sIGFkZExpbmVGZWVkID0gZmFsc2U7CkBAIC0yMTYx
LDcgKzIyNTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkRhdGFMb2coSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogCiAvLyBQcmludHMgYSBzZXJp
ZXMgb2YgY29tbWEgc2VwYXJhdGUgc3RyaW5ncyBhbmQgYXBwZW5kcyBhIG5ld2xpbmUuCiAvLyBV
c2FnZTogJHZtLnByaW50KHN0cjEsIHN0cjIsIHN0cjMpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvblByaW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
UHJpbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBjb25zdCBi
b29sIGFkZExpbmVGZWVkID0gdHJ1ZTsKQEAgLTIxNzAsNyArMjI2OCw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwKIAogLy8gRHVtcHMgdGhlIGN1cnJlbnQgQ2FsbEZyYW1lLgogLy8gVXNhZ2U6
ICR2bS5kdW1wQ2FsbEZyYW1lKCkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uRHVtcENhbGxGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBD
YWxsRnJhbWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICAvLyBX
aGVuIHRoZSBjYWxsZXJzIGNhbGwgdGhpcyBmdW5jdGlvbiwgdGhleSBhcmUgZXhwZWN0aW5nIHRv
IGR1bXAgdGhlaXIKQEAgLTIxODEsNyArMjI3OSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcENhbGxGcmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFs
CiAKIC8vIER1bXBzIHRoZSBKUyBzdGFjay4KIC8vIFVzYWdlOiAkdm0ucHJpbnRTdGFjaygpCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBTdGFjayhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBTdGFjaywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIC8vIFdoZW4gdGhlIGNhbGxlcnMgY2FsbCB0aGlzIGZ1bmN0
aW9uLCB0aGV5IGFyZSBleHBlY3RpbmcgdG8gZHVtcCB0aGUKQEAgLTIxOTUsNyArMjI5Myw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFN0YWNrKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplCiAvLyBVc2FnZTogJHZtLmR1bXBSZWdpc3RlcnMoKSAv
LyBkdW1wIHRoZSByZWdpc3RlcnMgb2YgdGhlIGN1cnJlbnQgQ2FsbEZyYW1lLgogLy8gRklYTUU6
IEN1cnJlbnRseSwgdGhpcyBmdW5jdGlvbiBkdW1wcyB0aGUgcGh5c2ljYWwgZnJhbWUuIFdlIHNo
b3VsZCBtYWtlCiAvLyBpdCBkdW1wIHRoZSBsb2dpY2FsIGZyYW1lIChpLmUuIGJlIGFibGUgdG8g
ZHVtcCBpbmxpbmVkIGZyYW1lcyBhcyB3ZWxsKS4KLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uRHVtcFJlZ2lzdGVycyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkR1bXBSZWdpc3RlcnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yMjI1LDcgKzIzMjMsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBSZWdpc3RlcnMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbAogCiAvLyBEdW1wcyB0aGUgaW50ZXJuYWwgbWVtb3J5IGxh
eW91dCBvZiBhIEpTQ2VsbC4KIC8vIFVzYWdlOiAkdm0uZHVtcENlbGwoY2VsbCkKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcENlbGwoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkR1bXBDZWxsLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKQEAgLTIyMzgsNyArMjMzNiw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcENlbGwoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqCiAKIC8vIEdldHMgdGhlIGRhdGFMb2cgZHVtcCBvZiB0aGUgaW5kZXhp
bmdNb2RlIG9mIHRoZSBwYXNzZWQgdmFsdWUuCiAvLyBVc2FnZTogJHZtLnByaW50KCJpbmRleGlu
Z01vZGUgPSAiICsgJHZtLmluZGV4aW5nTW9kZShqc1ZhbHVlKSkKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSW5kZXhpbmdNb2RlKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uSW5kZXhpbmdNb2RlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0
U2NvcGU7CiAgICAgaWYgKCFjYWxsRnJhbWUtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkpCkBAIC0y
MjQ5LDcgKzIzNDcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkluZGV4aW5nTW9kZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsTwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNTdHJpbmcoZ2xvYmFsT2JqZWN0LT52bSgpLCBzdHJlYW0udG9TdHJpbmco
KSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklu
bGluZUNhcGFjaXR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSW5saW5lQ2FwYWNpdHks
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CkBAIC0yMjYxLDcgKzIzNTksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklubGluZUNhcGFjaXR5KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYQogCiAvLyBHZXRzIHRoZSBkYXRhTG9nIGR1bXAgb2YgYSBnaXZlbiBKUyB2YWx1ZSBhcyBh
IHN0cmluZy4KIC8vIFVzYWdlOiAkdm0ucHJpbnQoInZhbHVlID0gIiArICR2bS52YWx1ZShqc1Zh
bHVlKSkKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uVmFsdWUo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25WYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFdURjo6U3RyaW5nUHJpbnRTdHJlYW0gc3RyZWFtOwpAQCAt
MjI3Niw3ICsyMzc0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25WYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogCiAvLyBHZXRzIHRoZSBw
aWQgb2YgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KIC8vIFVzYWdlOiAkdm0ucHJpbnQoInBpZCA9ICIg
KyAkdm0uZ2V0cGlkKCkpCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkdldFBJRChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25HZXRQSUQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQog
ewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihnZXRDdXJyZW50UHJvY2Vzc0lEKCkpKTsKQEAgLTIyODQsNyAr
MjM4Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0
UElEKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKIAogLy8gTWFrZSB0aGUgZ2xvYmFsT2Jq
ZWN0IGhhdmUgYSBiYWQgdGltZS4gRG9lcyBub3RoaW5nIGlmIHRoZSBvYmplY3QgaXMgbm90IGEg
SlNHbG9iYWxPYmplY3QuCiAvLyBVc2FnZTogJHZtLmhhdmVBQmFkVGltZShnbG9iYWxPYmplY3Qp
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkhhdmVBQmFkVGlt
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkhhdmVBQmFkVGltZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJW
TUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKQEAgLTIzMDMsNyArMjQwMSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uSGF2ZUFCYWRUaW1lKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAKIC8vIENo
ZWNrcyBpZiB0aGUgb2JqZWN0IChvciBpdHMgZ2xvYmFsIGlmIHRoZSBvYmplY3QgaXMgbm90IGEg
Z2xvYmFsKSBpcyBoYXZpbmcgYSBiYWQgdGltZS4KIC8vIFVzYWdlOiAkdm0uaXNIYXZpbmdBQmFk
VGltZShvYmopCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklz
SGF2aW5nQUJhZFRpbWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0hhdmluZ0FCYWRU
aW1lLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjM0OCw3ICsyNDQ2LDcgQEAgc3RhdGljIHZvaWQgY2Fs
bFdpdGhTdGFja1NpemVQcm9iZUZ1bmN0aW9uKFByb2JlOjpTdGF0ZSogc3RhdGUpCiAjZW5kaWYg
Ly8gRU5BQkxFKE1BU01fUFJPQkUpCiAKIFNVUFBSRVNTX0FTQU4KLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ2FsbFdpdGhTdGFja1NpemUoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DYWxsV2l0aFN0YWNrU2l6ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0
NDQsNyArMjU0Miw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ2FsbFdpdGhTdGFja1NpemUoSlNHbG9iYWxPYmplY3QqIGdsCiAKIC8vIENyZWF0ZXMgYSBu
ZXcgZ2xvYmFsIG9iamVjdC4KIC8vIFVzYWdlOiAkdm0uY3JlYXRlR2xvYmFsT2JqZWN0KCkKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlR2xvYmFsT2Jq
ZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVHbG9iYWxPYmplY3QsIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0NTIs
NyArMjU1MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3JlYXRlR2xvYmFsT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU0dsb2JhbE9iamVjdDo6Y3JlYXRlKHZtLCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKHZtLCBqc051bGwoKSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVQcm94eShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZVByb3h5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjQ2Niw3ICsyNTY0LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVQcm94eShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3h5KTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVS
dW50aW1lQXJyYXkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVSdW50aW1lQXJy
YXksIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBKU0xvY2tIb2xk
ZXIgbG9jayhnbG9iYWxPYmplY3QpOwpAQCAtMjQ3NCw3ICsyNTcyLDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVSdW50aW1lQXJyYXkoSlNHbG9i
YWxPYmplY3QqIGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFycmF5KTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVOdWxsUm9wZVN0
cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlTnVsbFJvcGVTdHJpbmcsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI0
ODIsNyArMjU4MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ3JlYXRlTnVsbFJvcGVTdHJpbmcoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1JvcGVTdHJpbmc6OmNyZWF0ZU51bGxGb3JUZXN0aW5nKHZtKSk7CiB9CiAK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlSW1wdXJl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlSW1wdXJlR2V0dGVyLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwpAQCAtMjQ5Niw3ICsyNTk0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVJbXB1cmVHZXR0ZXIoSlNHbG9iYWxPYmplY3Qq
IGcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVDdXN0b21HZXR0ZXJPYmplY3QsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI1
MDYsNyArMjYwNCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0
aW9uQ3JlYXRlQ3VzdG9tR2V0dGVyT2JqZWN0KEpTR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVE5vZGVPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNy
ZWF0ZURPTUpJVE5vZGVPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI1MTYsNyArMjYxNCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUTm9kZU9iamVj
dChKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJ
VEdldHRlck9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyT2JqZWN0
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9s
bGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC0yNTI2LDcgKzI2MjQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck9iamVjdChKU0dsb2JhbE9iagogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJOb0VmZmVjdHNPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlck5vRWZmZWN0c09iamVjdCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxh
clZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwpAQCAtMjUzNiw3ICsyNjM0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJOb0VmZmVjdHNPYmplY3QoSlMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0dGVyQ29tcGxleE9iamVjdCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpA
QCAtMjU0Niw3ICsyNjQ0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25DcmVhdGVET01KSVRHZXR0ZXJDb21wbGV4T2JqZWN0KEpTR2wKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklURnVuY3Rpb25PYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkNyZWF0ZURPTUpJVEZ1bmN0aW9uT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTU2LDcgKzI2NTQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURP
TUpJVEZ1bmN0aW9uT2JqZWN0KEpTR2xvYmFsTwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
cmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25DcmVhdGVET01KSVRDaGVja0pTQ2FzdE9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRl
RE9NSklUQ2hlY2tKU0Nhc3RPYmplY3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI1NjYsNyArMjY2NCw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRE9NSklUQ2hlY2tK
U0Nhc3RPYmplY3QoSlNHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURP
TUpJVEdldHRlckJhc2VKU09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRE9NSklUR2V0
dGVyQmFzZUpTT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTc3LDcgKzI2NzUsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZURPTUpJVEdldHRlckJhc2VKU09i
amVjdChKU0dsbwogfQogCiAjaWYgRU5BQkxFKFdFQkFTU0VNQkxZKQotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25DcmVhdGVXYXNtU3RyZWFtaW5nUGFyc2VyLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29w
ZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNTg2
LDcgKzI2ODQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNyZWF0ZVdhc21TdHJlYW1pbmdQYXJzZXIoSlNHbG9iYWxPYgogfQogI2VuZGlmCiAKLXN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9t
QWNjZXNzb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbUFjY2Vzc29yLCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFy
Vk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CkBAIC0yNTk2LDcgKzI2OTQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBmdW5jdGlvbkNyZWF0ZVN0YXRpY0N1c3RvbUFjY2Vzc29yKEpTR2xvYmFsTwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVTdGF0aWNDdXN0b21WYWx1ZShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQ3JlYXRlU3RhdGljQ3VzdG9tVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI2MDYsNyArMjcwNCw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlU3Rh
dGljQ3VzdG9tVmFsdWUoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1cyhK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZU9iamVjdERvaW5nU2lkZUVmZmVjdFB1
dFdpdGhvdXRDb3JyZWN0U2xvdFN0YXR1cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2Vy
dFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI2MTgsNyArMjcx
Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRl
T2JqZWN0RG9pbmdTaWRlRWZmZWN0UHV0V2l0aG91CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5j
dGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNyZWF0ZUVtcHR5RnVuY3Rpb25XaXRoTmFtZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3Bl
IGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI2MzEs
NyArMjcyOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9u
Q3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lKEpTR2xvYmFsCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNGdW5jdGlvbjo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIDEsIG5hbWUsIGZ1bmN0aW9uQ3JlYXRlRW1wdHlGdW5jdGlvbldpdGhOYW1lKSkpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVy
ZUdldHRlckRlbGVnYXRlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2V0SW1wdXJlR2V0
dGVyRGVsZWdhdGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNjUzLDcgKzI3NTEsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldEltcHVyZUdldHRlckRlbGVn
YXRlKEpTR2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3Jl
YXRlQnVpbHRpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4sIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yNjcxLDcgKzI3NjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUJ1aWx0aW4oSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZnVuYyk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2V0UHJpdmF0ZVByb3BlcnR5KEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0UHJpdmF0ZVByb3BlcnR5LCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNz
ZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpA
QCAtMjY5MCw3ICsyNzg4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25HZXRQcml2YXRlUHJvcGVydHkoSlNHbG9iYWxPYmplY3QqIGcKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4oc2NvcGUsIEpTVmFsdWU6OmVuY29kZShjYWxsRnJhbWUtPmFyZ3VtZW50KDAp
LmdldChnbG9iYWxPYmplY3QsIHN5bWJvbCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25DcmVhdGVSb290KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DcmVh
dGVSb290LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yNjk4LDcgKzI3OTYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVJvb3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
agogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoUm9vdDo6Y3JlYXRlKHZtLCBnbG9iYWxPYmpl
Y3QpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25D
cmVhdGVFbGVtZW50KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlRWxlbWVudCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKQEAgLTI3MTEsNyArMjgwOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uQ3JlYXRlRWxlbWVudChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShFbGVtZW50OjpjcmVhdGUodm0sIGdsb2Jh
bE9iamVjdCwgcm9vdCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkdldEVsZW1lbnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRFbGVt
ZW50LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0g
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjcyMyw3ICsyODIxLDcgQEAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRFbGVtZW50KEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCA/IHJlc3VsdCA6IGpz
VW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkNyZWF0ZVNpbXBsZU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ3JlYXRlU2ltcGxl
T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CkBAIC0yNzMxLDcgKzI4MjksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZVNpbXBsZU9iamVjdChKU0dsb2JhbE9iamVjdCog
ZwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoU2ltcGxlT2JqZWN0OjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkdldEhpZGRlblZhbHVlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0SGlk
ZGVuVmFsdWUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYg
dm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNzQ2LDcgKzI4NDQsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldEhpZGRlblZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoc2ltcGxlT2JqZWN0LT5o
aWRkZW5WYWx1ZSgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
ZnVuY3Rpb25TZXRIaWRkZW5WYWx1ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblNldEhp
ZGRlblZhbHVlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjc2Myw3ICsyODYxLDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25TZXRIaWRkZW5WYWx1ZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNoYWRv
d0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uU2hh
ZG93Q2hpY2tlbkZ1bmN0aW9uc09uU3RhY2ssIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3Nl
cnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yNzg5LDcgKzI4
ODcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNoYWRv
d0NoaWNrZW5GdW5jdGlvbnNPblN0YWNrKEpTR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25TZXRHbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGROb3RUaHJvdyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90VGhyb3csIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTI3OTcsNyArMjg5NSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uU2V0R2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkTm90CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GaW5kVHlwZUZvckV4cHJlc3Npb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5kVHlwZUZvckV4cHJlc3Npb24sIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0yODE3LDcgKzI5MTUsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkZpbmRUeXBlRm9yRXhwcmVzc2lvbihKU0dsb2JhbE9iamVjdAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNPTlBhcnNlKGdsb2JhbE9iamVjdCwganNvblN0cmluZykpOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblJldHVyblR5
cGVGb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25SZXR1cm5UeXBlRm9yLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERv
bGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwpAQCAtMjgzMyw3ICsyOTMxLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgZnVuY3Rpb25SZXR1cm5UeXBlRm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTT05QYXJzZShnbG9iYWxPYmplY3QsIGpzb25TdHJp
bmcpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25G
bGF0dGVuRGljdGlvbmFyeU9iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZsYXR0
ZW5EaWN0aW9uYXJ5T2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjg0Myw3ICsyOTQxLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GbGF0dGVuRGljdGlv
bmFyeU9iamVjdChKU0dsb2JhbE9iamUKICAgICByZXR1cm4gZW5jb2RlZEpTVW5kZWZpbmVkKCk7
CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRHVtcEJh
c2ljQmxvY2tFeGVjdXRpb25SYW5nZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkR1bXBCYXNpY0Jsb2Nr
RXhlY3V0aW9uUmFuZ2VzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0g
PSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0yODUyLDcgKzI5NTAsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkR1bXBCYXNpY0Jsb2NrRXhlY3V0aW9uUmFu
Z2VzKEpTR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSGFzQmFzaWNC
bG9ja0V4ZWN1dGVkKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSGFzQmFzaWNCbG9ja0V4
ZWN1dGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjg3Miw3ICsyOTcwLDcgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25IYXNCYXNpY0Jsb2NrRXhlY3V0ZWQoSlNH
bG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihoYXNFeGVj
dXRlZCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkJhc2ljQmxvY2tFeGVjdXRpb25Db3VudChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkJh
c2ljQmxvY2tFeGVjdXRpb25Db3VudCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNj
b3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKQEAgLTI5MzUsMTkgKzMwMzMs
MTkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNoYW5nZURlYnVnZ2VyTW9kZVdoZW5JZGxlKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkVuYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25F
bmFibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAg
ICAgcmV0dXJuIGNoYW5nZURlYnVnZ2VyTW9kZVdoZW5JZGxlKGdsb2JhbE9iamVjdCwgeyBDb2Rl
R2VuZXJhdGlvbk1vZGU6OkRlYnVnZ2VyIH0pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRpc2FibGVEZWJ1Z2dlck1vZGVXaGVuSWRsZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGZ1bmN0aW9uRGlzYWJsZURlYnVnZ2VyTW9kZVdoZW5JZGxlLCAoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBh
c3NlcnRTY29wZTsKICAgICByZXR1cm4gY2hhbmdlRGVidWdnZXJNb2RlV2hlbklkbGUoZ2xvYmFs
T2JqZWN0LCB7IH0pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvbkRlbGV0ZUFsbENvZGVXaGVuSWRsZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVsZXRlQWxs
Q29kZVdoZW5JZGxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikp
CiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSogdm0gPSAm
Z2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMjk1OCwxMyArMzA1NiwxMyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlbGV0ZUFsbENvZGVXaGVuSWRsZShKU0ds
b2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2xvYmFsT2Jq
ZWN0Q291bnQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdsb2JhbE9iamVjdENvdW50LCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRT
Y29wZSBhc3NlcnRTY29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGds
b2JhbE9iamVjdC0+dm0oKS5oZWFwLmdsb2JhbE9iamVjdENvdW50KCkpKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmpl
Y3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HbG9iYWxPYmplY3RGb3JPYmplY3QsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBKU1ZhbHVlIHZhbHVlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKTsKQEAgLTI5NzQsNyArMzA3Miw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uR2xvYmFsT2JqZWN0Rm9yT2JqZWN0KEpT
R2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkdldEdldHRlclNldHRl
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdldEdldHRlclNldHRlciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xs
YXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKQEAgLTMwMDQsNyArMzEwMiw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGZ1bmN0aW9uR2V0R2V0dGVyU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBnbG9iCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkxvYWRHZXR0ZXJGcm9tR2V0dGVyU2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
RG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC0zMDIxLDE0ICszMTE5LDE0IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uTG9hZEdldHRlckZyb21HZXR0ZXJTZXR0ZXIoSlNHbG9iYWxP
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShnZXR0ZXIpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihmdW5jdGlvbkNyZWF0ZUN1c3RvbVRlc3RHZXR0ZXJTZXR0ZXIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEN1c3RvbUdldHRlclNldHRlcjo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIEpTVGVzdEN1c3RvbUdldHRlclNldHRlcjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCBnbG9iYWxPYmplY3QpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGZ1bmN0aW9uRGVsdGFCZXR3ZWVuQnV0dGVyZmxpZXMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGllcywgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBEb2xsYXJWTUFz
c2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
QEAgLTMwNDUsMjYgKzMxNDMsMjYgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25EZWx0YUJldHdlZW5CdXR0ZXJmbGllcyhKU0dsb2JhbE9iamUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0YXRpY19jYXN0PGludDMyX3Q+KGRlbHRhKSkp
OwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkN1cnJl
bnRDUFVUaW1lKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkN1cnJlbnRDUFVUaW1lLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJh
bWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoQ1BVVGltZTo6Zm9yQ3VycmVudFRocmVhZCgpLnZh
bHVlKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Ub3RhbEdDVGltZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uVG90YWxHQ1RpbWUsIChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNj
b3BlIGFzc2VydFNjb3BlOwogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHZtLmhlYXAudG90YWxHQ1RpbWUoKS5zZWNv
bmRzKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25QYXJzZUNvdW50KEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblBhcnNlQ291bnQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcihnbG9iYWxQYXJzZUNvdW50LmxvYWQoKSkpOwogfQog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbklzV2FzbVN1cHBv
cnRlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25Jc1dhc21TdXBwb3J0ZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSop
KQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAjaWYgRU5BQkxFKFdF
QkFTU0VNQkxZKQpAQCAtMzA3NCw3ICszMTcyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Jc1dhc21TdXBwb3J0ZWQoSlNHbG9iYWxPYmplY3QqLCBDYWwK
ICNlbmRpZgogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bk1ha2UxNkJpdFN0cmluZ0lmUG9zc2libGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25N
YWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0
U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzA4OSw3ICszMTg3
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25NYWtlMTZC
aXRTdHJpbmdJZlBvc3NpYmxlKEpTR2xvYmFsT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzU3RyaW5nKHZtLCBTdHJpbmc6OmFkb3B0KFdURk1vdmUoYnVmZmVyKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RvbGxhclZNSGVscGVyOjpmdW5jdGlvbkdldFN0
cnVjdHVyZVRyYW5zaXRpb25MaXN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2V0U3Ry
dWN0dXJlVHJhbnNpdGlvbkxpc3QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRTY29w
ZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CkBAIC0zMTE0LDggKzMyMTIsOCBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTRG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9u
R2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpcwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwogICAgICAgICByZXN1bHQtPnB1c2goZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlKHN0
cnVjdHVyZS0+bWF4T2Zmc2V0KCkpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKLSAgICAgICAgaWYgKHN0cnVjdHVyZS0+bV90cmFuc2l0aW9uUHJvcGVydHlOYW1l
KQotICAgICAgICAgICAgcmVzdWx0LT5wdXNoKGdsb2JhbE9iamVjdCwganNTdHJpbmcodm0sIFN0
cmluZygqc3RydWN0dXJlLT5tX3RyYW5zaXRpb25Qcm9wZXJ0eU5hbWUpKSk7CisgICAgICAgIGlm
IChzdHJ1Y3R1cmUtPnRyYW5zaXRpb25Qcm9wZXJ0eU5hbWUoKSkKKyAgICAgICAgICAgIHJlc3Vs
dC0+cHVzaChnbG9iYWxPYmplY3QsIGpzU3RyaW5nKHZtLCBTdHJpbmcoKnN0cnVjdHVyZS0+dHJh
bnNpdGlvblByb3BlcnR5TmFtZSgpKSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1
bHQtPnB1c2goZ2xvYmFsT2JqZWN0LCBqc051bGwoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CkBAIC0zMTI2LDcgKzMyMjQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIEpTRG9sbGFyVk1IZWxwZXI6OmZ1bmN0aW9uR2V0U3RydWN0dXJlVHJhbnNp
dGlvbkxpcwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25HZXRDb25jdXJyZW50bHkoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZXRDb25jdXJyZW50bHksIChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgRG9sbGFyVk1B
c3NlcnRTY29wZSBhc3NlcnRTY29wZTsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CkBAIC0zMTQ2LDcgKzMyNDQsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvbkdldENvbmN1cnJlbnRseShKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25IYXNPd25MZW5ndGhQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvbkhhc093bkxlbmd0aFByb3BlcnR5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2Nv
cGUgYXNzZXJ0U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzE1
Niw3ICszMjU0LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25IYXNPd25MZW5ndGhQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzQm9vbGVhbihmdW5jdGlvbi0+Y2FuQXNzdW1lTmFtZUFuZExlbmd0aEFyZU9y
aWdpbmFsKHZtKSkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBm
dW5jdGlvblJlamVjdFByb21pc2VBc0hhbmRsZWQoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25SZWplY3RQcm9taXNlQXNIYW5kbGVkLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0
U2NvcGU7CiAgICAgSlNQcm9taXNlKiBwcm9taXNlID0ganNDYXN0PEpTUHJvbWlzZSo+KGNhbGxG
cmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwpAQCAtMzE2NSw3ICszMjYzLDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25SZWplY3RQcm9taXNlQXNIYW5k
bGVkKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNl
dFVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25TZXRV
c2VyUHJlZmVycmVkTGFuZ3VhZ2VzLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2Nv
cGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzE4NywyNSArMzI4NSwy
NSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblNldFVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXMoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uSUNVVmVyc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25JQ1VWZXJzaW9uLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoV1RGOjpJQ1U6Om1ham9yVmVyc2lvbigp
KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSUNV
SGVhZGVyVmVyc2lvbihKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25JQ1VIZWFkZXJWZXJzaW9uLCAoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKSkKIHsKICAgICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoVV9JQ1VfVkVSU0lPTl9NQUpPUl9OVU0p
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Bc3Nl
cnRFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihmdW5jdGlvbkFzc2VydEVuYWJsZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFt
ZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0U2NvcGU7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oQVNTRVJUX0VOQUJMRUQpKTsKIH0KIAotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc01lbW9yeUxpbWl0ZWQoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uSXNNZW1vcnlMaW1pdGVkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAg
ICBEb2xsYXJWTUFzc2VydFNjb3BlIGFzc2VydFNjb3BlOwogI2lmIFBMQVRGT1JNKElPUykgfHwg
UExBVEZPUk0oQVBQTEVUVikgfHwgUExBVEZPUk0oV0FUQ0hPUykKQEAgLTMyMTUsMTkgKzMzMTMs
MTkgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Jc01lbW9y
eUxpbWl0ZWQoSlNHbG9iYWxPYmplY3QqLCBDYWwKICNlbmRpZgogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVzZUpJVChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Vc2VKSVQsIChKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNz
ZXJ0U2NvcGU7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oT3B0aW9uczo6
dXNlSklUKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25Jc0dpZ2FjYWdlRW5hYmxlZCwgKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAgICAgRG9sbGFyVk1Bc3NlcnRTY29wZSBhc3NlcnRT
Y29wZTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihHaWdhY2FnZTo6aXNF
bmFibGVkKCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Ub1VuY2FjaGVhYmxlRGljdGlvbmFyeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
blRvVW5jYWNoZWFibGVEaWN0aW9uYXJ5LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIERvbGxhclZNQXNzZXJ0U2NvcGUgYXNzZXJ0
U2NvcGU7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtMzM3Miw3ICszNDcw
LDcgQEAgdm9pZCBKU0RvbGxhclZNOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCiAgICAgYWRkRnVu
Y3Rpb24odm0sICJpc1dhc21TdXBwb3J0ZWQiLCBmdW5jdGlvbklzV2FzbVN1cHBvcnRlZCwgMCk7
CiAgICAgYWRkRnVuY3Rpb24odm0sICJtYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlIiwgZnVuY3Rp
b25NYWtlMTZCaXRTdHJpbmdJZlBvc3NpYmxlLCAxKTsKIAotICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Z2V0U3RydWN0dXJlVHJhbnNpdGlvbkxpc3QiLCBKU0RvbGxhclZNSGVscGVyOjpmdW5jdGlvbkdl
dFN0cnVjdHVyZVRyYW5zaXRpb25MaXN0LCAxKTsKKyAgICBhZGRGdW5jdGlvbih2bSwgImdldFN0
cnVjdHVyZVRyYW5zaXRpb25MaXN0IiwgZnVuY3Rpb25HZXRTdHJ1Y3R1cmVUcmFuc2l0aW9uTGlz
dCwgMSk7CiAgICAgYWRkRnVuY3Rpb24odm0sICJnZXRDb25jdXJyZW50bHkiLCBmdW5jdGlvbkdl
dENvbmN1cnJlbnRseSwgMik7CiAKICAgICBhZGRGdW5jdGlvbih2bSwgImhhc093bkxlbmd0aFBy
b3BlcnR5IiwgZnVuY3Rpb25IYXNPd25MZW5ndGhQcm9wZXJ0eSwgMSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHkuY3BwCmluZGV4IGFmNDJkOGQ1NzA5
ZjIwNmE3YTc4NzA4ZjY1ZDdlNTBiNTU4ZTYzNjIuLjIzODFkMzI4MjEzMWY4NTRmOGY1YmIxNjY3
ZTMxMGJmMGIzMzgyMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pT
V2ViQXNzZW1ibHkuY3BwCkBAIC02Miw5ICs2Miw5IEBAIEZPUl9FQUNIX1dFQkFTU0VNQkxZX0NP
TlNUUlVDVE9SX1RZUEUoREVGSU5FX0NBTExCQUNLX0ZPUl9DT05TVFJVQ1RPUikKIAogI3VuZGVm
IERFRklORV9DQUxMQkFDS19GT1JfQ09OU1RSVUNUT1IKIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlDb21waWxlRnVuYyhKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1i
bHlJbnN0YW50aWF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKEpTR2xv
YmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tih3ZWJBc3NlbWJseUNvbXBpbGVGdW5jKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHdlYkFzc2VtYmx5SW5zdGFudGlhdGVGdW5jKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5VmFsaWRhdGVGdW5jKTsKIAogfQogCkBAIC0xNTEsNyArMTUx
LDcgQEAgc3RhdGljIHZvaWQgd2ViQXNzZW1ibHlNb2R1bGVWYWxpZGF0ZUFzeW5jSW50ZXJuYWwo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICB9KSk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5Q29tcGlsZUZ1bmMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlDb21waWxlRnVuYywgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBKU1dlYkFzc2VtYmx5Ojp3ZWJBc3NlbWJseU1v
ZHVsZUluc3RhbnRpbmF0ZUFzeW5jKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmoKICAgICBDTEVB
Ul9BTkRfUkVUVVJOX0lGX0VYQ0VQVElPTihjYXRjaFNjb3BlLCB2b2lkKCkpOwogfQogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVu
YyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYywgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3RhbnRpYXRlRnVuYyhK
U0dsb2JhbE9iamVjdCogZwogICAgIH0KIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgd2ViQXNzZW1ibHlWYWxpZGF0ZUZ1bmMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2Vi
QXNzZW1ibHlWYWxpZGF0ZUZ1bmMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMzMCw3ICszMzAs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVZhbGlk
YXRlRnVuYyhKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKHZhbGlkYXRpb25SZXN1bHQuaGFzX3ZhbHVlKCkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBjYXRjaFNjb3BlID0g
REVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CkBAIC0zNTMsNyArMzUzLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbChKU0ds
b2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb21pc2UpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5SW5zdGFudGlhdGVTdHJlYW1p
bmdJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3Ry
ZWFtaW5nSW50ZXJuYWwsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5LmgKaW5kZXggMzZmNzJk
NTcxODlmYzYzNjE5YjJhOGRjMDUzMmZhZWFkOTU2Y2E4Yy4uNTI2MTliNDVhMDY2MzYxM2VlNWE5
NDM4Zjc4ZDI4NzZhMzM5MjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dh
c20vanMvSlNXZWJBc3NlbWJseS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pz
L0pTV2ViQXNzZW1ibHkuaApAQCAtNTgsOCArNTgsOCBAQCBjbGFzcyBKU1dlYkFzc2VtYmx5IGZp
bmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
Vk0mLCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCB3ZWJBc3NlbWJseUNvbXBpbGVTdHJlYW1pbmdJbnRlcm5hbChKU0dsb2JhbE9iamVjdCosIENh
bGxGcmFtZSopOwotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUluc3Rh
bnRpYXRlU3RyZWFtaW5nSW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlDb21waWxlU3RyZWFtaW5nSW50ZXJu
YWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUluc3RhbnRpYXRlU3Ry
ZWFtaW5nSW50ZXJuYWwpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlDb21waWxlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBp
bGVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA1Mjc4NjE2ZmI3YzM0ZGI4ZTIyYmQyYjBlZWIz
MWE2YjhjOTdkYjlkLi41Y2QwMDM1YTAxZmRiNzhkZGMzNWZjNDdiNmI4NTgwYmU0NWQzNTk3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUNvbXBp
bGVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseUNvbXBpbGVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzgsMTIgKzM4LDE1
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlDb21waWxl
RXJyb3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAm
Y29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5Q29tcGlsZUVycm9yLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5Q29tcGlsZUVycm9yQ29uc3RydWN0b3IpIH07CiAKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNz
ZW1ibHlDb21waWxlRXJyb3IpOworCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5Q29tcGlsZUVy
cm9yQ29uc3RydWN0b3IubHV0LmgKICBAYmVnaW4gY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5
Q29tcGlsZUVycm9yCiAgQGVuZAogICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUNvbXBpbGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01OCw3ICs2MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlDb21waWxlRXJyb3IoSlNHbG9iYWxPCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseUNvbXBp
bGVFcnJvcjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwgbWVzc2FnZSkpKTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNzZW1i
bHlDb21waWxlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlDb21w
aWxlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVudCgwKTsK
ICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJs
eUNvbXBpbGVFcnJvclN0cnVjdHVyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAppbmRleCBjMGIzMDE1YjdhMDVkMjk4
YWNmYTI0ZWJjZGNlOGU1NDI4NzZhMjVmLi44MTI4Y2IwY2M0OGNmNjQxMWUyOGI4NjExNWJjNTMw
NTU4YjFiZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUZ1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmNwcApAQCAtNTYsNyArNTYsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5RnVuY3Rpb246OnNfaW5mbyA9IHsgIldlYkFz
c2VtYmx5RnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5RnVuY3Rpb24pIH07CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxXZWJBc3NlbWJseUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oY2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24pOworCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbFdlYkFzc2VtYmx5RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xv
YmFsQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDUyYmFiMzJlNWE2NTA3NzBiOGI4ZDNm
NTdmMzIxYjg3MTBjOWIyNC4uMzAwMmM3OGY1YjA2ZDM0OWFkNTg4YmUwN2JkZjhlNzgwNGUwNThm
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlH
bG9iYWxDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDEyICszOCwxNSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5R2xvYmFsQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0cnVjdG9yR2xv
YmFsV2ViQXNzZW1ibHlHbG9iYWwsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoV2ViQXNz
ZW1ibHlHbG9iYWxDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2JhbCk7CitzdGF0aWMgSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseUdsb2JhbCk7CisKIC8qIFNvdXJjZSBmb3Ig
V2ViQXNzZW1ibHlHbG9iYWxDb25zdHJ1Y3Rvci5sdXQuaAogIEBiZWdpbiBjb25zdHJ1Y3Rvckds
b2JhbFdlYkFzc2VtYmx5R2xvYmFsCiAgQGVuZAogICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlHbG9iYWwoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2JhbCwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMjIsNyArMTI1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseUdsb2JhbChKU0dsb2JhbE9iamVjdCoKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKEpTV2ViQXNzZW1i
bHlHbG9iYWw6OnRyeUNyZWF0ZShnbG9iYWxPYmplY3QsIHZtLCBnbG9iYWxPYmplY3QtPndlYkFz
c2VtYmx5R2xvYmFsU3RydWN0dXJlKCksIFdURk1vdmUod2FzbUdsb2JhbCkpKSk7CiB9CiAKLXN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5R2xvYmFs
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlHbG9iYWwsIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQcm90b3R5
cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlHbG9iYWxQ
cm90b3R5cGUuY3BwCmluZGV4IDliZGU1MzliMmVmMmYzNzk5MWIwZDRjZjY1NTc0NGUwNWVjMDE4
OGYuLmFmZDhiMDMxYmI5NzQ4ZGM2MjZjMzg2MWZmMTgwYTA5NDcyZGUxOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUdsb2Jh
bFByb3RvdHlwZS5jcHAKQEAgLTM1LDkgKzM1LDkgQEAKICNpbmNsdWRlICJKU1dlYkFzc2VtYmx5
R2xvYmFsLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0Z1bmNWYWx1ZU9mKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJB
c3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUds
b2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Citz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVu
Y1ZhbHVlT2YpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlH
bG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvU2V0dGVyRnVuY1ZhbHVlKTsKIH0KIAogI2luY2x1
ZGUgIldlYkFzc2VtYmx5R2xvYmFsUHJvdG90eXBlLmx1dC5oIgpAQCAtNjUsNyArNjUsNyBAQCBz
dGF0aWMgQUxXQVlTX0lOTElORSBKU1dlYkFzc2VtYmx5R2xvYmFsKiBnZXRHbG9iYWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5R2xvYmFsUHJvdG9GdW5jVmFs
dWVPZihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVl
T2YsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODEsNyArODEsNyBAQCBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseUdsb2JhbFByb3RvRnVuY1ZhbHVl
T2YoSlNHbG9iYWxPYgogICAgIH0KIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTih3ZWJBc3NlbWJseUdsb2JhbFByb3RvR2V0dGVyRnVuY1ZhbHVlLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2
bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTk3LDcgKzk3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgd2ViQXNzZW1ibHlHbG9iYWxQcm90b0dldHRlckZ1bmNWYWx1ZShKU0dsb2IK
ICAgICB9CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2Vt
Ymx5R2xvYmFsUHJvdG9TZXR0ZXJGdW5jVmFsdWUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNz
ZW1ibHlHbG9iYWxQcm90b1NldHRlckZ1bmNWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUlu
c3RhbmNlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2Vi
QXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVjdG9yLmNwcAppbmRleCBjY2MyN2U2MzFhZjc3ZTRiYzcw
OWZlYWE4ZTI1NzJhZTRkYTIxNjc5Li5mNGFlN2EzMjYxYTBkOTRkMmEyOWFmNDQ5MWRhMmQyMTVm
YmNhZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5jcHAKQEAgLTM5LDYgKzM5LDkg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseUluc3RhbmNl
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywgJmNvbnN0
cnVjdG9yVGFibGVXZWJBc3NlbWJseUluc3RhbmNlLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3RvcikgfTsKIAorc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUluc3RhbmNlKTsKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5SW5zdGFuY2UpOwor
CiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvci5sdXQuaAogIEBi
ZWdpbiBjb25zdHJ1Y3RvclRhYmxlV2ViQXNzZW1ibHlJbnN0YW5jZQogIEBlbmQKQEAgLTQ2LDcg
KzQ5LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFdlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c18KIAogdXNpbmcgV2FzbTo6UGxhbjsKIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJs
eUluc3RhbmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlJbnN0
YW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzYsNyArNzksNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5SW5zdGFuY2UoSlNH
bG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaW5zdGFuY2UpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseUluc3Rh
bmNlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlJbnN0YW5jZSwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNl
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
SW5zdGFuY2VQcm90b3R5cGUuY3BwCmluZGV4IDMwYzdjMWY4NjBjMjIzODBjNTk0MzU3ZDM5ZWVl
ZDg2MTcxMzVkZDQuLjY2OWY2ODI4ZThkZjE0ZDk2MzA4Zjk3YWYyNWIwMWVhZDM1ODkzODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFu
Y2VQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFz
c2VtYmx5SW5zdGFuY2VQcm90b3R5cGUuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAi
SlNXZWJBc3NlbWJseUluc3RhbmNlLmgiCiAKIG5hbWVzcGFjZSBKU0Mgewotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW5jZVByb3RvRnVuY0V4cG9y
dHMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKHdlYkFzc2VtYmx5SW5zdGFuY2VQcm90b0Z1bmNFeHBvcnRzKTsKIH0KIAogI2lu
Y2x1ZGUgIldlYkFzc2VtYmx5SW5zdGFuY2VQcm90b3R5cGUubHV0LmgiCkBAIC02MSw3ICs2MSw3
IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTV2ViQXNzZW1ibHlJbnN0YW5jZSogZ2V0SW5zdGFu
Y2UoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
RnVuY0V4cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlJbnN0YW5jZVByb3Rv
RnVuY0V4cG9ydHMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNv
bnN0cnVjdG9yLmNwcAppbmRleCAwZGUzZmI3Yzc5ZDY1OTU0MTZhNmU3YjhiMDJmMmE4ZTRjOTIy
ODkyLi45NDZkZWY0ZjExNTIyOWEyMjViZTkzMmFjOWU2NDM1YjZjOGFiMmE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUxpbmtFcnJvckNvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eUxpbmtFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzgsMTIgKzM4LDE1IEBAIG5hbWVzcGFjZSBK
U0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlMaW5rRXJyb3JDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAmY29uc3RydWN0b3JUYWJsZVdl
YkFzc2VtYmx5TGlua0Vycm9yLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2Vt
Ymx5TGlua0Vycm9yQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IpOworCiAvKiBTb3Vy
Y2UgZm9yIFdlYkFzc2VtYmx5TGlua0Vycm9yQ29uc3RydWN0b3IubHV0LmgKICBAYmVnaW4gY29u
c3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5TGlua0Vycm9yCiAgQGVuZAogICovCiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseUxpbmtFcnJvciwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01OCw3ICs2MSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoSlNHbG9i
YWxPYmplCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcjo6Y3JlYXRlKGdsb2JhbE9iamVjdCwgdm0sIHN0cnVjdHVyZSwg
bWVzc2FnZSkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2Fs
bEpTV2ViQXNzZW1ibHlMaW5rRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNz
ZW1ibHlMaW5rRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gY2FsbEZyYW1lLT5hcmd1bWVu
dCgwKTsKICAgICBTdHJ1Y3R1cmUqIGVycm9yU3RydWN0dXJlID0gZ2xvYmFsT2JqZWN0LT53ZWJB
c3NlbWJseUxpbmtFcnJvclN0cnVjdHVyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcApp
bmRleCAxZTBjYmEwZjNhODM2YmE5NjYzMDJjMGNmNWVkOGQyNTlmMTViZWZkLi41MGNjY2EyNDFm
ZDViZTk3OTU2ZGYwODhiOTRhOGQ4YWIwZmYwZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9yLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1lbW9yeUNvbnN0cnVjdG9y
LmNwcApAQCAtNDQsMTIgKzQ0LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0lu
Zm8gV2ViQXNzZW1ibHlNZW1vcnlDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAm
QmFzZTo6c19pbmZvLCAmY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5TWVtb3J5LCBudWxscHRy
LCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3IpIH07CiAK
K3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlN
ZW1vcnkpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1i
bHlNZW1vcnkpOworCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5TWVtb3J5Q29uc3RydWN0b3Iu
bHV0LmgKICBAYmVnaW4gY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5TWVtb3J5CiAgQGVuZAog
ICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2Vi
QXNzZW1ibHlNZW1vcnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJs
eU1lbW9yeSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTQsNyArMTE3LDcgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseU1l
bW9yeShKU0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWVtb3J5
KTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTV2ViQXNz
ZW1ibHlNZW1vcnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKikKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihjYWxsSlNXZWJBc3NlbWJseU1lbW9yeSwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2Vt
Ymx5TWVtb3J5UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5TWVtb3J5UHJvdG90eXBlLmNwcAppbmRleCAyYjk3MGYwNzA0NGM4ZDRmYmI4MGY4
MGJjOTE4YTI5MGNiN2I3MGQwLi5hYjRhMmJmZWVlZmE2ODQxN2MzOGNjMTk1NGU1ZTk3ZjYyZjYw
MDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJs
eU1lbW9yeVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMv
V2ViQXNzZW1ibHlNZW1vcnlQcm90b3R5cGUuY3BwCkBAIC0zOCw4ICszOCw4IEBACiAjaW5jbHVk
ZSAiU3RydWN0dXJlSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3JvdyhKU0ds
b2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
TWVtb3J5UHJvdG9GdW5jR3Jvdyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih3
ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0J1ZmZlcik7CiB9CiAKICNpbmNsdWRlICJXZWJBc3Nl
bWJseU1lbW9yeVByb3RvdHlwZS5sdXQuaCIKQEAgLTY5LDcgKzY5LDcgQEAgQUxXQVlTX0lOTElO
RSBKU1dlYkFzc2VtYmx5TWVtb3J5KiBnZXRNZW1vcnkoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVk0mIHYKICAgICByZXR1cm4gbWVtb3J5OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHdlYkFzc2VtYmx5TWVtb3J5UHJvdG9GdW5jR3JvdyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseU1lbW9yeVByb3RvRnVuY0dyb3csIChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtODYsNyArODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFz
c2VtYmx5TWVtb3J5UHJvdG9GdW5jR3JvdyhKU0dsb2JhbE9iamVjdCogZ2xvYgogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocmVzdWx0LnBhZ2VDb3VudCgpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZm
ZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04od2ViQXNzZW1ibHlNZW1vcnlQcm90b0Z1bmNCdWZmZXIs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAppbmRl
eCA5YzdhYzAyNWVjMDIxOWNjMGYxZTQwY2JiODAzMjQ1YWU4NDdjZjYxLi40ODJiNjI0OTExZGNm
MGZkYWExNTUyNGI3OWQ2OGZjMGY4YWRiZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yLmNw
cApAQCAtNDIsOSArNDIsMTEgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5h
bWVzcGFjZSBKU0Mgewotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNz
ZW1ibHlNb2R1bGVDdXN0b21TZWN0aW9ucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVJbXBv
cnRzKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1vZHVsZUV4cG9ydHMoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
TW9kdWxlQ3VzdG9tU2VjdGlvbnMpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
d2ViQXNzZW1ibHlNb2R1bGVJbXBvcnRzKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKHdlYkFzc2VtYmx5TW9kdWxlRXhwb3J0cyk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihjYWxsSlNXZWJBc3NlbWJseU1vZHVsZSk7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihjb25zdHJ1Y3RKU1dlYkFzc2VtYmx5TW9kdWxlKTsKIH0KIAogI2luY2x1ZGUg
IldlYkFzc2VtYmx5TW9kdWxlQ29uc3RydWN0b3IubHV0LmgiCkBAIC02MSw3ICs2Myw3IEBAIGNv
bnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseU1vZHVsZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJG
dW5jdGlvbiIsICZCYXNlOjpzX2luCiAgQGVuZAogICovCiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVDdXN0b21TZWN0aW9ucyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTih3ZWJBc3NlbWJseU1vZHVsZUN1c3RvbVNlY3Rpb25zLCAoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTk0LDcgKzk2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJB
c3NlbWJseU1vZHVsZUN1c3RvbVNlY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBnbG8KICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgd2ViQXNzZW1ibHlNb2R1bGVJbXBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFz
c2VtYmx5TW9kdWxlSW1wb3J0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMjUsNyAr
MTI3LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1vZHVsZUlt
cG9ydHMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1i
bHlNb2R1bGVFeHBvcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5TW9kdWxlRXhw
b3J0cywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNTQsNyArMTU2LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseU1vZHVsZUV4cG9ydHMoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNz
ZW1ibHlNb2R1bGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseU1v
ZHVsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY1LDcgKzE2Nyw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlNb2R1bGUoSlNH
bG9iYWxPYmplY3QqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNv
ZGUoV2ViQXNzZW1ibHlNb2R1bGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlTW9kdWxlKGdsb2JhbE9iamVj
dCwgY2FsbEZyYW1lLCBXVEZNb3ZlKHNvdXJjZSkpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5TW9kdWxlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2Fs
bEpTV2ViQXNzZW1ibHlNb2R1bGUsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmNwcAppbmRleCA5ZTVjNzcxYjYyZTIxYzU2YmNlNzdkNGViN2I2ZDI0NjMxYTQ2
MWJlLi4zZGZkOTE1NjdiNjBhNThkZDlhYTY4NDJmZjY3OTAyMWY1Y2I5MjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVJ1bnRpbWVFcnJvckNv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3Nl
bWJseVJ1bnRpbWVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzgsMTIgKzM4LDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlSdW50aW1lRXJyb3JDb25z
dHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZvLCAmY29uc3RydWN0
b3JUYWJsZVdlYkFzc2VtYmx5UnVudGltZUVycm9yLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RB
QkxFKFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3Ip
Oworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlSdW50
aW1lRXJyb3IpOworCiAvKiBTb3VyY2UgZm9yIFdlYkFzc2VtYmx5UnVudGltZUVycm9yQ29uc3Ry
dWN0b3IubHV0LmgKICBAYmVnaW4gY29uc3RydWN0b3JUYWJsZVdlYkFzc2VtYmx5UnVudGltZUVy
cm9yCiAgQGVuZAogICovCiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnN0cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY29u
c3RydWN0SlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBhdXRvJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC02MCw3ICs2Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0
cnVjdEpTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yOjpjcmVhdGUoZ2xvYmFsT2JqZWN0
LCB2bSwgc3RydWN0dXJlLCBXVEZNb3ZlKG1lc3NhZ2VTdHJpbmcpKSk7CiB9CiAKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLCAoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IEpTVmFsdWUgbWVzc2FnZSA9IGNhbGxGcmFtZS0+YXJndW1lbnQoMCk7CiAgICAgU3RydWN0dXJl
KiBlcnJvclN0cnVjdHVyZSA9IGdsb2JhbE9iamVjdC0+d2ViQXNzZW1ibHlSdW50aW1lRXJyb3JT
dHJ1Y3R1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9qcy9XZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IuY3BwCmluZGV4IGQ5ODNmMGEwMGRiMTM5
YmRjN2I4ZjA1YzFkZmMzZmUwMDBmMTZiOTAuLjAzYmY4ZGExMWYxYTk2ZjhkMzM5YTliNzNiMzky
NjEzYWJjYWY3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dl
YkFzc2VtYmx5VGFibGVDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vanMvV2ViQXNzZW1ibHlUYWJsZUNvbnN0cnVjdG9yLmNwcApAQCAtNDIsMTIgKzQyLDE1
IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gV2ViQXNzZW1ibHlUYWJsZUNv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZCYXNlOjpzX2luZm8sICZjb25zdHJ1
Y3RvclRhYmxlV2ViQXNzZW1ibHlUYWJsZSwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShX
ZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IpIH07CiAKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGNhbGxKU1dlYkFzc2VtYmx5VGFibGUpOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlKTsKKwogLyogU291cmNlIGZv
ciBXZWJBc3NlbWJseVRhYmxlQ29uc3RydWN0b3IubHV0LmgKICBAYmVnaW4gY29uc3RydWN0b3JU
YWJsZVdlYkFzc2VtYmx5VGFibGUKICBAZW5kCiAgKi8KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGNvbnN0cnVjdEpTV2ViQXNzZW1ibHlUYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xMDYsNyArMTA5LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0SlNXZWJBc3NlbWJseVRhYmxlKEpTR2xvYmFsT2JqZWN0KgogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUoSlNXZWJBc3NlbWJseVRh
YmxlOjp0cnlDcmVhdGUoZ2xvYmFsT2JqZWN0LCB2bSwgZ2xvYmFsT2JqZWN0LT53ZWJBc3NlbWJs
eVRhYmxlU3RydWN0dXJlKCksIHdhc21UYWJsZS5yZWxlYXNlTm9uTnVsbCgpKSkpOwogfQogCi1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSlNXZWJBc3NlbWJseVRhYmxl
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oY2FsbEpTV2ViQXNzZW1ibHlUYWJsZSwgKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSopKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVRhYmxlUHJvdG90eXBl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGUuY3BwCmluZGV4IDU1MWQ5Zjk3YWQyNGQyNTNkZDc3ZGY2MThkZDNiMjViMjZiOWVjZDAu
Ljg2ZjRlNzhmZWE1MjEwNTEwMDY4MTU5N2U0NTZhMTg5OWVjZmJhODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5VGFibGVQcm90
b3R5cGUuY3BwCkBAIC0zNywxMCArMzcsMTAgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVz
LmgiCiAKIG5hbWVzcGFjZSBKU0Mgewotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgd2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0xlbmd0aChKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlU
YWJsZVByb3RvRnVuY0dyb3coSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQo
SlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQoSlNHbG9iYWxPYmplY3QqLCBD
YWxsRnJhbWUqKTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
VGFibGVQcm90b0Z1bmNMZW5ndGgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
d2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dyb3cpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY0dldCk7CitzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTih3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jU2V0KTsKIH0KIAogI2lu
Y2x1ZGUgIldlYkFzc2VtYmx5VGFibGVQcm90b3R5cGUubHV0LmgiCkBAIC03MCw3ICs3MCw3IEBA
IHN0YXRpYyBBTFdBWVNfSU5MSU5FIEpTV2ViQXNzZW1ibHlUYWJsZSogZ2V0VGFibGUoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jTGVu
Z3RoKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNMZW5ndGgs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jTGVuZ3RoKEpT
R2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGFibGUtPmxl
bmd0aCgpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFz
c2VtYmx5VGFibGVQcm90b0Z1bmNHcm93KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHdlYkFzc2VtYmx5
VGFibGVQcm90b0Z1bmNHcm93LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTk5LDcgKzk5
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2ViQXNzZW1ibHlUYWJs
ZVByb3RvRnVuY0dyb3coSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKG9sZExlbmd0aCkpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCB3ZWJBc3NlbWJseVRhYmxlUHJvdG9GdW5jR2V0KEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMTE1LDcgKzExNSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHdl
YkFzc2VtYmx5VGFibGVQcm90b0Z1bmNHZXQoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZSh0YWJsZS0+Z2V0KGluZGV4KSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHdlYkFzc2VtYmx5VGFibGVQcm90b0Z1bmNTZXQoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04od2ViQXNzZW1ibHlUYWJsZVByb3RvRnVuY1NldCwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5jcHAKaW5kZXggMjE3NmJjNzJkYmY1YTE2ZWFk
ZDcxZjdhYzJiMGNlNTdmNmFiYzU4MS4uZGNkMGI2OGNhMTY2NGU2YzlmMTYwZTk2NDdjMTUwNjVh
YTgxMTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNz
ZW1ibHlXcmFwcGVyRnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmNwcApAQCAtMzYsMTYgKzM2LDcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlv
bjo6c19pbmZvID0geyAiV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24iLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFdlYkFzc2VtYmx5V3JhcHBl
ckZ1bmN0aW9uKSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
V2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBXZWJBc3Nl
bWJseVdyYXBwZXJGdW5jdGlvbiogd2FzbUZ1bmN0aW9uID0ganNDYXN0PFdlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uKj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKTsKLSAgICBKU09iamVjdCogZnVu
Y3Rpb24gPSB3YXNtRnVuY3Rpb24tPmZ1bmN0aW9uKCk7Ci0gICAgYXV0byBjYWxsRGF0YSA9IGdl
dENhbGxEYXRhKHZtLCBmdW5jdGlvbik7Ci0gICAgUkVMRUFTRV9BU1NFUlQoY2FsbERhdGEudHlw
ZSAhPSBDYWxsRGF0YTo6VHlwZTo6Tm9uZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3Bl
LCBKU1ZhbHVlOjplbmNvZGUoY2FsbChnbG9iYWxPYmplY3QsIGZ1bmN0aW9uLCBjYWxsRGF0YSwg
anNVbmRlZmluZWQoKSwgQXJnTGlzdChjYWxsRnJhbWUpKSkpOwotfQorc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oY2FsbFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKTsKIAogV2Vi
QXNzZW1ibHlXcmFwcGVyRnVuY3Rpb246OldlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uKFZNJiB2
bSwgTmF0aXZlRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFdhc206Oldhc21Ub1dhc21JbXBvcnRhYmxlRnVu
Y3Rpb24gaW1wb3J0YWJsZUZ1bmN0aW9uKQogICAgIDogQmFzZSh2bSwgZXhlY3V0YWJsZSwgZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCkBAIC04NSw2ICs3NiwxNyBAQCB2b2lkIFdlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3Im
IHZpc2l0bwogICAgIHZpc2l0b3IuYXBwZW5kKHRoaXNPYmplY3QtPm1fZnVuY3Rpb24pOwogfQog
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFdlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9u
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24qIHdh
c21GdW5jdGlvbiA9IGpzQ2FzdDxXZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbio+KGNhbGxGcmFt
ZS0+anNDYWxsZWUoKSk7CisgICAgSlNPYmplY3QqIGZ1bmN0aW9uID0gd2FzbUZ1bmN0aW9uLT5m
dW5jdGlvbigpOworICAgIGF1dG8gY2FsbERhdGEgPSBnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24p
OworICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxEYXRhLnR5cGUgIT0gQ2FsbERhdGE6OlR5cGU6Ok5v
bmUpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKGNhbGwo
Z2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwgY2FsbERhdGEsIGpzVW5kZWZpbmVkKCksIEFyZ0xpc3Qo
Y2FsbEZyYW1lKSkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCQVNTRU1CTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUNhbGxp
bmdDb252ZW50aW9ucy5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1DYWxsaW5nQ29udmVudGlv
bnMuaAppbmRleCBkNDBjNWRlMjJiMzY5MTU2MTE2OWIyNTZiZWQ1ZThjY2ZkMGVmOTgyLi5kNTkw
YzU0MzFiOTA2MDIwNWU0YTk1ZDMxODA3ZGRiM2IyOWQ2NDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybUNhbGxpbmdDb252ZW50aW9ucy5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtQ2FsbGluZ0NvbnZlbnRpb25zLmgKQEAgLTM1LDEzICszNSwxOSBAQAogCiAKICNp
ZiBDUFUoWDg2KSAmJiBDT01QSUxFUihNU1ZDKQotI2RlZmluZSBKU0NfSE9TVF9DQUxMIF9fZmFz
dGNhbGwKKyNkZWZpbmUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIF9fZmFzdGNhbGwKICNlbGlm
IENQVShYODYpICYmIENPTVBJTEVSKEdDQ19DT01QQVRJQkxFKQotI2RlZmluZSBKU0NfSE9TVF9D
QUxMIF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCisjZGVmaW5lIEpTQ19IT1NUX0NBTExfQVRU
UklCVVRFUyBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQogI2Vsc2UKLSNkZWZpbmUgSlNDX0hP
U1RfQ0FMTAorI2RlZmluZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMKICNlbmRpZgogCisjZGVm
aW5lIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbk5hbWUsIHBhcmFtZXRlcnMpIFwK
KyAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBmdW5jdGlv
bk5hbWUgcGFyYW1ldGVycworI2RlZmluZSBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uTmFtZSkgXAorICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJV
VEVTIGZ1bmN0aW9uTmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKQor
I2RlZmluZSBKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihmdW5jdGlvbklkLCBmdW5jdGlvbikK
KwogI2lmIENQVShYODYpICYmIE9TKFdJTkRPV1MpCiAjZGVmaW5lIENBTExJTkdfQ09OVkVOVElP
Tl9JU19TVERDQUxMIDEKICNpZm5kZWYgQ0RFQ0wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQnVpbHRpbkNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvci5oCmluZGV4IDYxMTQ0NWM5YzBiYjIx
NzM0MGJlZjU3MjQ2Yzk2ZTI3MWYyZWEzYzguLmZmN2EwNWQzY2IyMmY3NWFlYTBiMTNjMWU0OTY4
ZWUxYmQ1YmZjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QnVpbHRpbkNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CdWlsdGluQ29uc3RydWN0b3IuaApAQCAtNDUsNyArNDUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBKU0NsYXNzPiBjbGFzcyBKU0RPTUJ1aWx0aW5Db25zdHJ1Y3RvciBmaW5hbCA6IHB1YmxpYyBK
U0RPTUJ1aQogCiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgSlNET01HbG9iYWxP
YmplY3QmKTsKICAgICBzdGF0aWMgSlNDOjpDYWxsRGF0YSBnZXRDb25zdHJ1Y3REYXRhKEpTQzo6
SlNDZWxsKik7Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CisgICAgc3Rh
dGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIGNvbnN0cnVj
dChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKIAogICAgIEpTQzo6RW5j
b2RlZEpTVmFsdWUgY2FsbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkNh
bGxGcmFtZSYsIEpTQzo6SlNPYmplY3QmKTsKICAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIGNhbGxD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpDYWxsRnJhbWUmLCBKU0M6OkpT
T2JqZWN0Kik7CkBAIC0xMTEsNyArMTExLDcgQEAgdHlwZW5hbWUgc3RkOjplbmFibGVfaWY8SlNE
T01PYmplY3RJbnNwZWN0b3I8SlNDbGFzcz46OmlzQ29tcGxleFdyYXBwZXIsIEpTQzo6SlMKICAg
ICByZXR1cm4gY29udGV4dCA/IGNyZWF0ZVdyYXBwZXI8dHlwZW5hbWUgSlNDbGFzczo6RE9NV3Jh
cHBlZD4oY29uc3RydWN0b3IuZ2xvYmFsT2JqZWN0KCksIEpTQ2xhc3M6OkRPTVdyYXBwZWQ6OmNy
ZWF0ZSgqY29udGV4dCkpIDogbnVsbHB0cjsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFz
cz4gaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RPTUJ1aWx0aW5D
b25zdHJ1Y3RvcjxKU0NsYXNzPjo6Y29uc3RydWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTx0eXBl
bmFtZSBKU0NsYXNzPiBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FU
VFJJQlVURVMgSlNET01CdWlsdGluQ29uc3RydWN0b3I8SlNDbGFzcz46OmNvbnN0cnVjdChKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lKQogewogICAgIEFTU0VSVChjYWxsRnJhbWUpOwogICAgIGF1dG8qIGNhc3RlZFRoaXMg
PSBKU0M6OmpzQ2FzdDxKU0RPTUJ1aWx0aW5Db25zdHJ1Y3Rvcio+KGNhbGxGcmFtZS0+anNDYWxs
ZWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0
cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yLmgK
aW5kZXggM2Y2ZWE3NTAzZjI1YWUzNzE3Mzk0ZWIyNzc5ODgyMmE0NDgxZTM3Mi4uYWNmOTE5MGVh
NzlmYmE4NTdhNmYwYTI0YTdiZDJjMWMwNjM3NjJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3IuaApAQCAtNDcsNyArNDcsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBKU0NsYXNzPiBjbGFzcyBKU0RPTUNvbnN0cnVjdG9yIGZpbmFsIDogcHVibGljIEpT
RE9NQ29uc3RydWN0bwogICAgIC8vIFVzdWFsbHkgZGVmaW5lZCBmb3IgZWFjaCBzcGVjaWFsaXph
dGlvbiBjbGFzcy4KICAgICB2b2lkIGluaXRpYWxpemVQcm9wZXJ0aWVzKEpTQzo6Vk0mLCBKU0RP
TUdsb2JhbE9iamVjdCYpIHsgfQogICAgIC8vIE11c3QgYmUgZGVmaW5lZCBmb3IgZWFjaCBzcGVj
aWFsaXphdGlvbiBjbGFzcy4KLSAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnN0cnVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
KyAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMg
Y29uc3RydWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogfTsKIAog
dGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFzcz4gaW5saW5lIEpTRE9NQ29uc3RydWN0b3I8SlNDbGFz
cz4qIEpTRE9NQ29uc3RydWN0b3I8SlNDbGFzcz46OmNyZWF0ZShKU0M6OlZNJiB2bSwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmNw
cAppbmRleCAzMGY1OTcxOTZhYTU1MDQ5MTExZmY4OGYxN2YzYjBmZTYzMmY0NDc5Li4yYTg1MmE1
MDJlMTQxOGRiOTQ3M2FiNDcyMTcxZDFjNzU1YTExZDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3RvckJhc2UuY3BwCkBAIC0zMCw3ICszMCw5
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RF
U1RSVUNUSUJMRShKU0RPTUNvbnN0cnVjdG9yQmFzZSk7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNhbGxUaHJvd1R5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2Fs
bFRocm93VHlwZUVycm9yKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxUaHJvd1R5
cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSopKQogewog
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0zOCw2ICs0MCwxNCBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjYWxsVGhyb3dUeXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogfQogCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oY2FsbFRocm93VHlwZUVycm9yRm9ySlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGUsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKikpCit7CisgICAgSlNDOjpWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Cisg
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTQzo6dGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIklsbGVnYWwgY29uc3RydWN0b3IiX3MpOwor
ICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OmpzTnVsbCgpKTsKK30KKwogQ2Fs
bERhdGEgSlNET01Db25zdHJ1Y3RvckJhc2U6OmdldENhbGxEYXRhKEpTQ2VsbCopCiB7CiAgICAg
Q2FsbERhdGEgY2FsbERhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db25zdHJ1Y3RvckJhc2UuaAppbmRleCAwMGViMGJlMTk3NWEzOTFiNmI2MzdhNWVlYTlmMmYy
OWU1NThlNDk4Li4yNWVmZDY2OGFjMTgxODgyNTk5MDFiNTNjNmQ2MzYzMWIyOTNjZGNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29uc3RydWN0b3JCYXNlLmgK
QEAgLTIzLDYgKzIzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxUaHJvd1R5cGVFcnJvckZvckpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlKTsKKwogLy8gQmFzZSBjbGFzcyBmb3IgYWxsIGNvbnN0cnVjdG9yIG9iamVjdHMg
aW4gdGhlIEpTQyBiaW5kaW5ncy4KIGNsYXNzIEpTRE9NQ29uc3RydWN0b3JCYXNlIDogcHVibGlj
IEpTRE9NT2JqZWN0IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oCmluZGV4IDU5
ODZmZDljYjMxNTk1NTE3YWRjMDJjNmI5YTY2YjZjZTZlZTIyMzYuLmM0OTk5ZDlmMjk2NzQwOWYy
N2QyM2I3NTAzZDUxYzc1NmI5YzQxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaApAQCAt
NDYsMTkgKzQ2LDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIEpTQ2xhc3M+IGNsYXNzIEpTRE9NQ29u
c3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlIGZpbmFsIDogcHVibGljCiAgICAgLy8gVXN1YWxseSBk
ZWZpbmVkIGZvciBlYWNoIHNwZWNpYWxpemF0aW9uIGNsYXNzLgogICAgIHZvaWQgaW5pdGlhbGl6
ZVByb3BlcnRpZXMoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0JikgeyB9CiAKLSAgICBzdGF0
aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxUaHJvd1R5cGVFcnJvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKikKLSAgICB7
Ci0gICAgICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgICAgIEpTQzo6dGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIklsbGVnYWwgY29uc3RydWN0b3IiX3MpOwotICAg
ICAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUoSlNDOjpqc051bGwoKSk7Ci0gICAgfQot
CiAgICAgc3RhdGljIEpTQzo6Q2FsbERhdGEgZ2V0Q2FsbERhdGEoSlNDOjpKU0NlbGwqKQogICAg
IHsKICAgICAgICAgSlNDOjpDYWxsRGF0YSBjYWxsRGF0YTsKICAgICAgICAgY2FsbERhdGEudHlw
ZSA9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5hdGl2ZTsKLSAgICAgICAgY2FsbERhdGEubmF0aXZl
LmZ1bmN0aW9uID0gY2FsbFRocm93VHlwZUVycm9yOworICAgICAgICBjYWxsRGF0YS5uYXRpdmUu
ZnVuY3Rpb24gPSBjYWxsVGhyb3dUeXBlRXJyb3JGb3JKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZTsKICAgICAgICAgcmV0dXJuIGNhbGxEYXRhOwogICAgIH0KIApAQCAtNjYsNyArNTgs
NyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBjbGFzcyBKU0RPTUNvbnN0cnVjdG9yTm90
Q29uc3RydWN0YWJsZSBmaW5hbCA6IHB1YmxpYwogICAgIHsKICAgICAgICAgSlNDOjpDYWxsRGF0
YSBjYWxsRGF0YTsKICAgICAgICAgY2FsbERhdGEudHlwZSA9IEpTQzo6Q2FsbERhdGE6OlR5cGU6
Ok5hdGl2ZTsKLSAgICAgICAgY2FsbERhdGEubmF0aXZlLmZ1bmN0aW9uID0gY2FsbFRocm93VHlw
ZUVycm9yOworICAgICAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjYWxsVGhyb3dUeXBl
RXJyb3JGb3JKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTsKICAgICAgICAgcmV0dXJu
IGNhbGxEYXRhOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUdsb2JhbE9iamVjdC5jcHAKaW5kZXggODI4NjM4YWQzYTQ5ZDMxNjJiOThlNTVkNDM0YWQ0
YzFkZGVlMGE2Ny4uNGUyNmQ3Zjk1MTI1ZjBjZTQ1NjYxMTNlZTI4Mzk0MTUwN2NiNTlhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcApA
QCAtNTYsMTIgKzU2LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VUaGlzVHlwZUVycm9yRm9y
QnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgbWFrZUdldHRlclR5cGVFcnJvckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0
KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VET01FeGNl
cHRpb25Gb3JCdWlsdGlucyhKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOwotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBpc1JlYWRhYmxlQnl0ZVN0cmVhbUFQSUVuYWJsZWQoSlNHbG9i
YWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgaXNX
cml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKTsKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2hlblNpZ25hbEFib3J0ZWQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04obWFrZVRoaXNUeXBl
RXJyb3JGb3JCdWlsdGlucyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1ha2VHZXR0ZXJU
eXBlRXJyb3JGb3JCdWlsdGlucyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKG1ha2VET01F
eGNlcHRpb25Gb3JCdWlsdGlucyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGlzUmVhZGFi
bGVCeXRlU3RyZWFtQVBJRW5hYmxlZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGlzV3Jp
dGFibGVTdHJlYW1BUElFbmFibGVkKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04od2hlblNp
Z25hbEFib3J0ZWQpOwogCiBjb25zdCBDbGFzc0luZm8gSlNET01HbG9iYWxPYmplY3Q6OnNfaW5m
byA9IHsgIkRPTUdsb2JhbE9iamVjdCIsICZKU0dsb2JhbE9iamVjdDo6c19pbmZvLCBudWxscHRy
LCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NR2xvYmFsT2JqZWN0KSB9OwogCkBA
IC04MCw3ICs4MCw3IEBAIHZvaWQgSlNET01HbG9iYWxPYmplY3Q6OmRlc3Ryb3koSlNDZWxsKiBj
ZWxsKQogICAgIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oY2VsbCktPkpTRE9NR2xv
YmFsT2JqZWN0Ojp+SlNET01HbG9iYWxPYmplY3QoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYWtlVGhpc1R5cGVFcnJvckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKG1ha2VUaGlzVHlwZUVycm9yRm9yQnVpbHRpbnMsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7
CiAgICAgQVNTRVJUKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID09IDIpOwpAQCAtOTQsNyAr
OTQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG1ha2VUaGlzVHlwZUVycm9yRm9y
QnVpbHRpbnMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoY3JlYXRlVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgbWFrZVRoaXNUeXBlRXJyb3JNZXNzYWdl
KGludGVyZmFjZU5hbWUudXRmOCgpLmRhdGEoKSwgZnVuY3Rpb25OYW1lLnV0ZjgoKS5kYXRhKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZUdldHRlclR5cGVFcnJv
ckZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKG1ha2VHZXR0ZXJUeXBlRXJyb3JGb3JC
dWlsdGlucywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCkgPT0gMik7CkBAIC0xMTEsNyArMTExLDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYWtlR2V0dGVyVHlwZUVycm9yRm9yQnVpbHRpbnMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGVycm9yKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYWtlRE9NRXhjZXB0aW9uRm9yQnVpbHRpbnMoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04obWFrZURPTUV4Y2VwdGlvbkZvckJ1aWx0aW5zLCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIEFTU0VSVChj
YWxsRnJhbWUpOwogICAgIEFTU0VSVChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA9PSAyKTsK
QEAgLTEzNSwxNyArMTM1LDE3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbWFrZURP
TUV4Y2VwdGlvbkZvckJ1aWx0aW5zKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgaXNSZWFkYWJsZUJ5dGVTdHJlYW1BUElFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiwgQ2FsbEZy
YW1lKikKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihpc1JlYWRhYmxlQnl0ZVN0cmVhbUFQSUVu
YWJsZWQsIChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopKQogewogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNCb29sZWFuKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkucmVhZGFibGVCeXRlU3RyZWFtQVBJRW5hYmxlZCgpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgaXNXcml0YWJsZVN0cmVhbUFQSUVuYWJsZWQoSlNHbG9iYWxPYmpl
Y3QqLCBDYWxsRnJhbWUqKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGlzV3JpdGFibGVTdHJl
YW1BUElFbmFibGVkLCAoSlNHbG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLndyaXRhYmxlU3RyZWFtQVBJRW5hYmxlZCgpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgd2hlblNpZ25hbEFib3J0ZWQoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04od2hlblNpZ25hbEFib3J0ZWQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUKGNhbGxGcmFtZSk7CiAgICAgQVNTRVJU
KGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpID09IDIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01JdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01JdGVyYXRvci5oCmluZGV4IDllMWI1YzAwOGY0NGY5YWExMjMxYWI1OGZmYjk2
MjQ5Yzk3MzVhODYuLmIxZDI3ZDQ1YmM5MDJlY2U1NjVhNjMyMDhkODU2NzBjMTY4NzE3NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSXRlcmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUl0ZXJhdG9yLmgKQEAgLTczLDcgKzcz
LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyLCB0eXBlbmFtZSBJdGVyYXRvclRyYWl0
cz4gY2xhc3MgSlNET01JdGVyYXRvclByb3RvdHkKICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpT
Qzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotICAgIHN0
YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbmV4dChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKKyAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgbmV4dChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKIAogcHJpdmF0ZToKICAgICBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlKEpT
Qzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkgeyB9CkBAIC0yNDYsNyArMjQ2LDcgQEAgSlNDOjpKU1ZhbHVlIEpTRE9NSXRlcmF0b3JCYXNl
PEpTV3JhcHBlciwgSXRlcmF0b3JUcmFpdHM+OjpuZXh0KEpTQzo6SlNHbG9iYWxPYmoKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgSlNXcmFwcGVyLCB0eXBlbmFtZSBJdGVyYXRvclRyYWl0cz4KLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPEpT
V3JhcHBlciwgSXRlcmF0b3JUcmFpdHM+OjpuZXh0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTRE9NSXRlcmF0b3JQcm90b3R5cGU8SlNXcmFwcGVy
LCBJdGVyYXRvclRyYWl0cz46Om5leHQoSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTGVnYWN5RmFjdG9y
eUZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUxlZ2FjeUZhY3Rv
cnlGdW5jdGlvbi5oCmluZGV4IGJjOTg4NjQwN2M5MDhhMmJjZTNhNjM0MzEwNzY3NDA2MzBjNWFj
OTUuLjc4MzFiZjI4OWVmNjg0NTllNzNmMmYzOTUwMzkxZThiMzhjMWI5MjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NTGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01MZWdhY3lGYWN0b3J5RnVuY3Rp
b24uaApAQCAtNDgsNyArNDgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBKU0NsYXNzPiBjbGFzcyBK
U0RPTUxlZ2FjeUZhY3RvcnlGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYyBKU0RPTQogICAgIC8vIFVz
dWFsbHkgZGVmaW5lZCBmb3IgZWFjaCBzcGVjaWFsaXphdGlvbiBjbGFzcy4KICAgICB2b2lkIGlu
aXRpYWxpemVQcm9wZXJ0aWVzKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpIHsgfQogICAg
IC8vIE11c3QgYmUgZGVmaW5lZCBmb3IgZWFjaCBzcGVjaWFsaXphdGlvbiBjbGFzcy4KLSAgICBz
dGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnN0cnVjdChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKKyAgICBzdGF0aWMgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgY29uc3RydWN0KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSlNDbGFz
cz4gaW5saW5lIEpTRE9NTGVnYWN5RmFjdG9yeUZ1bmN0aW9uPEpTQ2xhc3M+KiBKU0RPTUxlZ2Fj
eUZhY3RvcnlGdW5jdGlvbjxKU0NsYXNzPjo6Y3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDc1
YWIyNTlmZmZmY2Q5YWE0NjljZThmYWEwMzYwMmIwMTZhMjlmYjcuLmMwMjFhNWNjYzA4YTY5ZjVj
ZjljYjFjMDRjMzg4NGNlYWFiYTNiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTYzLDggKzYzLDggQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNET01XaW5kb3dJbnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzRE9N
V2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZShKU0dsb2JhbE9iamVjdCosIENhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0RPTVdpbmRvd0luc3RhbmNlRnVu
Y3Rpb25TaG93TW9kYWxEaWFsb2cpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0RPTVdp
bmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UpOwogCiB2b2lkIEpTRE9NV2luZG93Ojp2
aXNpdEFkZGl0aW9uYWxDaGlsZHJlbihTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKQEAgLTgwLDcg
KzgwLDcgQEAgdm9pZCBKU0RPTVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZW4oU2xvdFZp
c2l0b3ImIHZpc2l0b3IpCiB9CiAKICNpZiBFTkFCTEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93V2ViS2l0KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93V2ViS2l0
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIEpTRE9NV2luZG93KiBjYXN0ZWRUaGlzID0gdG9KU0RPTVdpbmRvdyh2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwpAQCAtNjMzLDcgKzYzMyw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIEpTRE9NV2luZG93KiBJRExPcGVyYXRpb248SlNET01XaW5kb3c+OjpjYXN0KEpT
R2xvYmFsT2JqZWN0JiBsCiAgICAgcmV0dXJuIHRvSlNET01XaW5kb3cobGV4aWNhbEdsb2JhbE9i
amVjdC52bSgpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkudG9UaGlzKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkVDTUFNb2RlOjpzbG9wcHkoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzRE9NV2luZG93SW5zdGFuY2VGdW5jdGlvbk9wZW5EYXRhYmFzZShKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25PcGVuRGF0YWJhc2UsIChK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU0RPTVdpbmRvdz46OmNhbGw8anNET01XaW5kb3dJbnN0
YW5jZUZ1bmN0aW9uT3BlbkRhdGFiYXNlQm9keT4oKmdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im9wZW5EYXRhYmFzZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKaW5kZXggMjExNDg3MTdjMzUzODE4NGVi
ZjkxNWJiZDM0YThiMmMxZGY3N2Q4Yy4uZjdhYmY0Mjk0MzEzYTUzZDE5OTFmZjFhMDMxMmE3Nzlm
MmJiZGEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5F
bGVtZW50RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCkBAIC0zNSw2ICszNSw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIC8vIEphdmFTY3JpcHQgYWNjZXNzIHRvIHBsdWctaW4tZXhwb3J0ZWQg
cHJvcGVydGllcyBmb3IgSlNIVE1MQXBwbGV0RWxlbWVudCwgSlNIVE1MRW1iZWRFbGVtZW50IGFu
ZCBKU0hUTUxPYmplY3RFbGVtZW50LgogCitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
TihjYWxsUGx1Z2luKTsKKwogSW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVtZW50JiBl
bGVtZW50KQogewogICAgIC8vIFRoZSBwbHVnaW4gZWxlbWVudCBob2xkcyBhbiBvd25pbmcgcmVm
ZXJlbmNlLCBzbyB3ZSBkb24ndCBoYXZlIHRvLgpAQCAtMTQ2LDcgKzE0OCw3IEBAIGJvb2wgcGx1
Z2luRWxlbWVudEN1c3RvbVB1dChKU0hUTUxFbGVtZW50KiBlbGVtZW50LCBKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxQbHVnaW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGxQbHVnaW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIEpTSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBqc0Nhc3Q8
SlNIVE1MRWxlbWVudCo+KGNhbGxGcmFtZS0+anNDYWxsZWUoKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cnVjdHVyZWRDbG9uZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuY3BwCmluZGV4IDk4NWIzZGIwZDNmMTYx
MDAwZjFmYWQ5YjQzMjk3OGU1NDYyM2FkNjMuLjk0ODU1OWNkMzk3YzBhMTIwOWQ0ZTE2OWMzMDA1
Y2NlMDI0MzA5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1N0cnVj
dHVyZWRDbG9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3RydWN0dXJl
ZENsb25lLmNwcApAQCAtNjIsMTcgKzYyLDE3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjbG9u
ZUFycmF5QnVmZmVySW1wbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTQXJyYXlCdWZmZXI6OmNyZWF0ZShsZXhpY2FsR2xv
YmFsT2JqZWN0LT52bSgpLCBsZXhpY2FsR2xvYmFsT2JqZWN0LT5hcnJheUJ1ZmZlclN0cnVjdHVy
ZShBcnJheUJ1ZmZlclNoYXJpbmdNb2RlOjpEZWZhdWx0KSwgQXJyYXlCdWZmZXI6OnRyeUNyZWF0
ZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2xvbmVBcnJheUJ1ZmZlcihKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
TihjbG9uZUFycmF5QnVmZmVyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBjbG9uZUFycmF5QnVmZmVySW1wbChnbG9i
YWxPYmplY3QsIGNhbGxGcmFtZSwgQ2xvbmVNb2RlOjpQYXJ0aWFsKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlciwgKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gY2xvbmVB
cnJheUJ1ZmZlckltcGwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIENsb25lTW9kZTo6RnVsbCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RydWN0dXJlZENsb25lQXJyYXlC
dWZmZXJWaWV3KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKHN0cnVjdHVyZWRDbG9uZUFycmF5QnVmZmVy
VmlldywgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICBBU1NFUlQoY2FsbEZyYW1lKTsKICAgICBBU1NFUlQoY2FsbEZyYW1lLT5hcmd1
bWVudENvdW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU3Ry
dWN0dXJlZENsb25lLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xv
bmUuaAppbmRleCBkMDAzNjczNjMyMzRjOWNhMDM2YjkwMTY5Y2Y2OWM5NDE5ZjYxZDgyLi43Njcx
MWIwMTQ3OTViM2IyZTU0OGRiZTJjOTJkOTIwMmQ2NWE2YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TdHJ1Y3R1cmVkQ2xvbmUuaApAQCAtMzQsOCArMzQsOCBAQCB1c2luZyBF
bmNvZGVkSlNWYWx1ZSA9IGludDY0X3Q7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNsb25lQXJyYXlCdWZmZXIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RydWN0
dXJlZENsb25lQXJyYXlCdWZmZXJWaWV3KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihjbG9uZUFycmF5QnVmZmVyKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oc3RydWN0dXJlZENsb25lQXJyYXlCdWZmZXIpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihzdHJ1Y3R1cmVkQ2xvbmVBcnJheUJ1ZmZlclZpZXcpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGIxMTc0Yjg5YzFiYjFmNzE5MjM5Y2I1
M2ZkYzZkYjYxNTQ0NzVjZWEuLmU3NDJjZWFmMmY4Y2MzOWU2OGIxODIzMzU3YjVmNWMzZjg1ZTI1
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC0zMjU0LDcgKzMyNTQsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAg
ICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb25kaXRpb25hbEF0dHJpYnV0ZSA/ICRj
b2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVl
KCRjb25kaXRpb25hbEF0dHJpYnV0ZSkgOiB1bmRlZjsKICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0
cmluZzsKICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUgPSBHZXRGdW5jdGlvbk5hbWUoJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbik7Ci0gICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25O
YW1lfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oJHtm
dW5jdGlvbk5hbWV9KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNl
bmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICB9CiAKQEAgLTMyNzAsMTAg
KzMyNzAsMTAgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICBteSAkY29uZGl0aW9u
YWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0
cmlidXRlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYgJHtjb25kaXRp
b25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRn
ZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRh
dHRyaWJ1dGUpOwotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2Rl
ZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtnZXR0ZXJ9KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
XG4iKTsKICAgICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAg
ICAgICAgICAgIG15ICRzZXR0ZXIgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICJib29sICR7c2V0dGVyfShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiYm9vbCBKSVRfT1BFUkFUSU9OICR7c2V0dGVyfShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4i
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5k
aWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgfQpAQCAtNDI2Miw3ICs0MjYy
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb25kaXRpb25hbEF0dHJpYnV0ZSA/ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25kaXRpb25hbEF0dHJp
YnV0ZSkgOiB1bmRlZjsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBt
eSAkZnVuY3Rpb25OYW1lID0gR2V0RnVuY3Rpb25OYW1lKCRpbnRlcmZhY2UsICRjbGFzc05hbWUs
ICRvcGVyYXRpb24pOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtmdW5jdGlvbk5hbWV9KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIkpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oJHtmdW5jdGlvbk5hbWV9KTtcbiIpOwogICAg
ICAgICAgICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0RPTUpJVH0pIHsK
ICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01KSVRJRExUeXBlLmgifSA9IDE7CiAg
ICAgICAgICAgICAgICAgbXkgJG5hbWVPZkZ1bmN0aW9uV2l0aG91dFR5cGVDaGVjayA9ICRjb2Rl
R2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRmdW5jdGlvbk5hbWUpIC4gIldpdGhvdXRUeXBlQ2hlY2si
OwpAQCAtNDI4NiwxMCArNDI4NiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAg
ICAgICAgIGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAg
ICAgICAgIG15ICRjb25zdHJ1Y3RvckdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJD
b25zdHJ1Y3RvciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2Rl
ZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckdldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtjb25z
dHJ1Y3RvckdldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOwogCiAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JT
ZXR0ZXIgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y29uc3RydWN0b3JTZXR0ZXJ9KEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpJVF9PUEVSQVRJ
T04gJHtjb25zdHJ1Y3RvclNldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0KIAogICAgICAg
ICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAg
LTQyOTksNyArNDI5OSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkYXR0cmlidXRlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
I2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAg
ICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAk
Y2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtnZXR0
ZXJ9KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7XG4iKTsKICAgICAgICAgICAgIGlmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkg
ewogICAgICAgICAgICAgICAgIG15ICRyZWFkV3JpdGVDb25kaXRpb25hbCA9ICRhdHRyaWJ1dGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsbHlSZWFkV3JpdGV9OwogICAgICAgICAg
ICAgICAgIGlmICgkcmVhZFdyaXRlQ29uZGl0aW9uYWwpIHsKQEAgLTQzMDcsNyArNDMwNyw3IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiI2lmICR7cmVhZFdyaXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNl
dHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7c2V0dGVyfShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgSklUX09QRVJBVElPTiAke3Nl
dHRlcn0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIj
ZW5kaWZcbiIpIGlmICRyZWFkV3JpdGVDb25kaXRpb25hbDsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJp
bmc7CkBAIC00ODcwLDcgKzQ4NzAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
IGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAgICAgbXkg
JGNvbnN0cnVjdG9yR2V0dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3Ry
dWN0b3JHZXR0ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gJHtjb25zdHJ1Y3RvckdldHRl
cn0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7XG4iKTsKQEAg
LTQ4OTAsNyArNDg5MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAg
bXkgJGNvbnN0cnVjdG9yU2V0dGVyID0gInNldEpTIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0
cnVjdG9yIjsKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjb25zdHJ1Y3Rv
clNldHRlcn0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBKSVRfT1BFUkFUSU9OICR7Y29uc3RydWN0b3JTZXR0
ZXJ9KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpO1xuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pO1xuIik7CkBAIC01MzM4LDcgKzUzMzgsNyBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVH
ZXR0ZXJUcmFtcG9saW5lRGVmaW5pdGlvbgogICAgICAgICBwdXNoKEB0ZW1wbGF0ZVBhcmFtZXRl
cnMsICJDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Iik7CiAgICAgfQogICAgIAotICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIkVuY29kZWRKU1ZhbHVlICR7YXR0cmlidXRlR2V0dGVyTmFt
ZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAke2F0dHJpYnV0ZUdldHRlck5hbWV9KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSlcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSURMQXR0cmlidXRlPCR7Y2xhc3NOYW1lfT46
OiR7Y2FsbEF0dHJpYnV0ZUdldHRlck5hbWV9PCIgLiBqb2luKCIsICIsIEB0ZW1wbGF0ZVBhcmFt
ZXRlcnMpIC4gIj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgXCIiIC4gJGF0dHJp
YnV0ZS0+bmFtZSAuICAiXCIpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4i
KTsKQEAgLTU1MjcsNyArNTUyNyw3IEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlclRyYW1w
b2xpbmVEZWZpbml0aW9uCiAgICAgcHVzaChAdGVtcGxhdGVQYXJhbWV0ZXJzLCAkYXR0cmlidXRl
U2V0dGVyQm9keU5hbWUpOwogICAgIHB1c2goQHRlbXBsYXRlUGFyYW1ldGVycywgIkNhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJseSIpIGlmICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0xlZ2FjeUxlbmllbnRUaGlzfTsKICAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICJib29sICR7YXR0cmlidXRlU2V0dGVyTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCBKSVRfT1BFUkFU
SU9OICR7YXR0cmlidXRlU2V0dGVyTmFtZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHJldHVybiBJRExBdHRyaWJ1dGU8JHtjbGFzc05hbWV9Pjo6JHtjYWxs
QXR0cmlidXRlU2V0dGVyTmFtZX08IiAuIGpvaW4oIiwgIiwgQHRlbXBsYXRlUGFyYW1ldGVycykg
LiAiPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsIFwiIiAu
ICRhdHRyaWJ1dGUtPm5hbWUgLiAiXCIpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
fVxuXG4iKTsKQEAgLTU1NzgsNyArNTU3OCw3IEBAIHN1YiBHZW5lcmF0ZU9wZXJhdGlvblRyYW1w
b2xpbmVEZWZpbml0aW9uCiAgICAgcHVzaChAY2FsbEZ1bmN0aW9uVGVtcGxhdGVBcmd1bWVudHMs
ICRmdW5jdGlvbkJvZHlOYW1lKTsKICAgICBwdXNoKEBjYWxsRnVuY3Rpb25UZW1wbGF0ZUFyZ3Vt
ZW50cywgIkNhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQiKSBpZiAoJG9wZXJhdGlvbi0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHJpdmF0ZUlkZW50aWZpZXJ9IGFuZCBub3QgJG9wZXJhdGlv
bi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHVibGljSWRlbnRpZmllcn0pOwogCi0gICAgcHVzaChA
JG91dHB1dEFycmF5LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2Z1bmN0aW9uTmFt
ZX0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKCR7ZnVuY3Rpb25OYW1lfSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7aWRsT3BlcmF0aW9u
VHlwZX08JHtjbGFzc05hbWV9Pjo6JHtjYWxsRnVuY3Rpb25OYW1lfTwiIC4gam9pbigiLCAiLCBA
Y2FsbEZ1bmN0aW9uVGVtcGxhdGVBcmd1bWVudHMpIC4gIj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsIFwiIiAuICRvcGVyYXRpb24tPm5hbWUgLiAiXCIpO1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKQEAgLTU4NzksNyArNTg3OSw3IEBAIHN1YiBHZW5l
cmF0ZURlZmF1bHRUb0pTT05PcGVyYXRpb25EZWZpbml0aW9uCiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiXG4iKTsKIAogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+dHlwZS0+
bmFtZTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMICR7ZnVuY3Rpb25OYW1lfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oJHtmdW5jdGlvbk5hbWV9LCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSlcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTJHtpbnRlcmZhY2VOYW1lfT46OmNhbGw8JHtmdW5jdGlvbk5hbWV9
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsIFwidG9KU09OXCIpO1xuIik7
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuIik7CkBAIC01OTI3LDcgKzU5MjcsNyBAQCBz
dWIgR2VuZXJhdGVMZWdhY3lDYWxsZXJEZWZpbml0aW9ucwogCiAgICAgICAgIG15ICRvdmVybG9h
ZEZ1bmN0aW9uUHJlZml4ID0gImNhbGwke2NsYXNzTmFtZX0iOwogCi0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtvdmVybG9hZEZ1bmN0
aW9uUHJlZml4fShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKCR7b3ZlcmxvYWRGdW5jdGlvblByZWZpeH0sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKVxuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTtcbiIpOwogICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7XG4iKTsKQEAgLTU5NTgsNyArNTk1OCw4IEBAIHN1YiBHZW5lcmF0ZUxlZ2Fj
eUNhbGxlckRlZmluaXRpb24KICAgICBpZiAoJGlzT3ZlcmxvYWRlZCkgewogICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVlIGNhbGwke2NsYXNz
TmFtZX0kb3BlcmF0aW9uLT57b3ZlcmxvYWRJbmRleH0oSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAic3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY2FsbCR7Y2xhc3NOYW1lfShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAic3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbCR7Y2xhc3NOYW1lfSk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGNhbGwke2NsYXNzTmFtZX0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKVxuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAie1xuIik7CkBAIC02ODY2LDYgKzY4NjcsNyBAQCBzdWIgR2VuZXJhdGVJdGVyYWJsZURl
ZmluaXRpb24KIH07CiAKIHVzaW5nICR7aXRlcmF0b3JQcm90b3R5cGVOYW1lfSA9IEpTRE9NSXRl
cmF0b3JQcm90b3R5cGU8JHtjbGFzc05hbWV9LCAke2l0ZXJhdG9yVHJhaXRzTmFtZX0+OworSlND
X0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oJHtpdGVyYXRvclByb3RvdHlwZU5hbWV9TmV4dCwgJHtp
dGVyYXRvclByb3RvdHlwZU5hbWV9OjpuZXh0KTsKIAogdGVtcGxhdGU8PgogY29uc3QgSlNDOjpD
bGFzc0luZm8gJHtpdGVyYXRvck5hbWV9QmFzZTo6c19pbmZvID0geyAiJHt2aXNpYmxlSW50ZXJm
YWNlTmFtZX0gSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVB
VEVfTUVUSE9EX1RBQkxFKCR7aXRlcmF0b3JOYW1lfUJhc2UpIH07CkBAIC02OTA2LDcgKzY5MDgs
NyBAQCBFTkQKICAgICAgICAgfQogCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAgPDxFTkQp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKCR7ZnVuY3Rpb25OYW1lfSwgKEpTQzo6
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248JHtjbGFzc05hbWV9Pjo6Y2FsbDwk
e2Z1bmN0aW9uTmFtZX1DYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
JHtwcm9wZXJ0eU5hbWV9Iik7CiB9CkBAIC03Njk4LDcgKzc3MDAsNyBAQCBzdWIgR2VuZXJhdGVD
b25zdHJ1Y3RvckRlZmluaXRpb25zCiAKICAgICAgICAgICAgIG15ICRvdmVybG9hZEZ1bmN0aW9u
UHJlZml4ID0gImNvbnN0cnVjdCR7Y2xhc3NOYW1lfSI7CiAKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAidGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7Y2xh
c3NOYW1lfUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgInRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRS
SUJVVEVTICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKVxuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTtcbiIpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7XG4iKTsKQEAgLTc3MDYsNyArNzcwOCw4IEBAIHN1YiBHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbnMKIAogICAgICAgICAgICAgR2VuZXJhdGVPdmVybG9hZERp
c3BhdGNoZXIoQHskaW50ZXJmYWNlLT5jb25zdHJ1Y3RvcnN9WzBdLCAkaW50ZXJmYWNlLCAkb3Zl
cmxvYWRGdW5jdGlvblByZWZpeCwgIiIsICJsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUi
KTsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oJHtjbGFzc05hbWV9Q29uc3RydWN0b3JD
b25zdHJ1Y3QsICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpO1xuXG4iKTsKICAg
ICAgICAgfSBlbHNpZiAoQGNvbnN0cnVjdG9ycyA9PSAxKSB7CiAgICAgICAgICAgICBHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbigkb3V0cHV0QXJyYXksICRjbGFzc05hbWUsICRwcm90b0Ns
YXNzTmFtZSwgJHZpc2libGVJbnRlcmZhY2VOYW1lLCAkaW50ZXJmYWNlLCAkZ2VuZXJhdGluZ0xl
Z2FjeUZhY3RvcnlGdW5jdGlvbiwgJGNvbnN0cnVjdG9yc1swXSk7CiAgICAgICAgIH0gZWxzZSB7
CkBAIC03NzI4LDE3ICs3NzMxLDE4IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlv
bgogCiAgICAgaWYgKElzQ29uc3RydWN0YWJsZSgkaW50ZXJmYWNlKSkgewogICAgICAgICBpZiAo
SGFzQ3VzdG9tQ29uc3RydWN0b3IoJGludGVyZmFjZSkpIHsKLSAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgInRlbXBsYXRlPD4gSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
ICR7Y29uc3RydWN0b3JDbGFzc05hbWV9Ojpjb25zdHJ1Y3QoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIpOworICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y29u
c3RydWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IntcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVChjYWxs
RnJhbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJu
IGNvbnN0cnVjdCR7Y2xhc3NOYW1lfShsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKTtc
biIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTigke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fUNvbnN0cnVjdCwgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmNvbnN0cnVjdCk7XG5cbiIpOwog
ICAgICAgICAgfSBlbHNpZiAoIUhhc0N1c3RvbUNvbnN0cnVjdG9yKCRpbnRlcmZhY2UpICYmICgh
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TGVnYWN5RmFjdG9yeUZ1bmN0aW9ufSB8
fCAkZ2VuZXJhdGluZ0xlZ2FjeUZhY3RvcnlGdW5jdGlvbikpIHsKICAgICAgICAgICAgIG15ICRp
c092ZXJsb2FkZWQgPSAkb3BlcmF0aW9uLT57b3ZlcmxvYWRzfSAmJiBAeyRvcGVyYXRpb24tPntv
dmVybG9hZHN9fSA+IDE7CiAgICAgICAgICAgICBpZiAoJGlzT3ZlcmxvYWRlZCkgewogICAgICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFs
dWUgY29uc3RydWN0JHtjbGFzc05hbWV9JG9wZXJhdGlvbi0+e292ZXJsb2FkSW5kZXh9KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIp
OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICJ0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtjb25zdHJ1Y3Rv
ckNsYXNzTmFtZX06OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICJ0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklC
VVRFUyAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSlcbiIpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKQEAgLTc3ODMs
NyArNzc4NywxMSBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzZXRTdWJjbGFzc1N0cnVjdHVyZUlmTmVlZGVk
PCR7aW1wbFR5cGV9PihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIGFzT2JqZWN0KGpz
VmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgeyB9KTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7XG4iKTsK
LSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CisgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICJ9XG4iKTsKKyAgICAgICAgICAgIGlmICghJGlzT3ZlcmxvYWRl
ZCkgeworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkpTQ19BTk5PVEFURV9I
T1NUX0ZVTkNUSU9OKCR7Y29uc3RydWN0b3JDbGFzc05hbWV9Q29uc3RydWN0LCAke2NvbnN0cnVj
dG9yQ2xhc3NOYW1lfTo6Y29uc3RydWN0KTtcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiXG4iKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNET01XaW5k
b3cuY3BwCmluZGV4IDY3YTRjNjUwYTg0YThkNDYwOTQwNWJmNWZkY2Q1ZGFmNmRiNWJmNDAuLmJl
ZTM2ODU4MTI5Y2JkMmMwNDA2NzBmZTBkNjg2MGY3YmMzNmM2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0RPTVdpbmRvdy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRE9NV2luZG93LmNwcApA
QCAtNTEsMjAgKzUxLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdy
aXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01X
aW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3ROb2Rl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNET01XaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTRE9NV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtl
ckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzRE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93VGVzdE5vZGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0
T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRv
d1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5nIEpTRE9NV2luZG93Q29uc3RydWN0
b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU0RPTVdpbmRvdz47CiAKQEAg
LTE2Niw3ICsxNjYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU0RPTVdpbmRvdyogSURMQXR0cmli
dXRlPEpTRE9NV2luZG93Pjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTRE9NV2luZG93Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNET01X
aW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzRE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzYsNyArMTc2LDcgQEAg
RW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTRE9N
V2luZG93OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBw
cm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNET01XaW5kb3dDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5
NSw3ICsxOTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dFeHBvc2VkVG9X
b3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHRlcihKU0dsbwogICAgIHJldHVybiBKU0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNET01XaW5k
b3dFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRE9NV2luZG93RXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dFeHBvc2VkVG9Xb3JrZXJB
bmRXaW5kb3dDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpOwogfQpAQCAtMjA3LDcgKzIwNyw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU0RPTVdpbmRvd0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0Nv
bnN0cnVjdG9yU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpLCBzdHJsZW4oIkV4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvdyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29y
a2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRE9NV2luZG93RXhwb3NlZFRvV29ya2VyQW5kV2lu
ZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8c2V0SlNET01XaW5kb3dFeHBv
c2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Iik7
CiB9CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzRE9NV2luZG93
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvckdldHRlcihKU0cKICAgICByZXR1
cm4gSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNET01XaW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2luZG93Pjo6Z2V0PGpzRE9NV2luZG93
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlIik7CiB9CkBA
IC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTRE9NV2luZG93VGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvclNldHRlcihKU0cKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKSwgc3Ry
bGVuKCJUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNl
dEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01X
aW5kb3dUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTRE9NV2lu
ZG93Pjo6c2V0PHNldEpTRE9NV2luZG93VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUiKTsKIH0KQEAgLTI0MSw3ICsyNDEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkQ29uc3RydWN0b3JHZQogICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09ORmls
dGVyZWRCeUV4cG9zZWQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCAmdGhpc09iamVjdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93VGVz
dERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNET01XaW5kb3dUZXN0RGVmYXVs
dFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkIik7CiB9CkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
RE9NV2luZG93VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yU2UK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZCIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4
cG9zZWQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU0RPTVdpbmRvd1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8
c2V0SlNET01XaW5kb3dUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKIH0KQEAgLTI2NCw3ICsyNjQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9y
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiBKU1Rlc3ROb2RlOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgJnRoaXNPYmplY3Qp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RPTVdpbmRv
d1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpnZXQ8anNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5vZGUiKTsK
IH0KQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dU
ZXN0Tm9kZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Tm9kZSIpLCBzdHJsZW4oIlRlc3ROb2Rl
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU0RPTVdpbmRvd1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNET01XaW5kb3c+OjpzZXQ8
c2V0SlNET01XaW5kb3dUZXN0Tm9kZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Tm9kZSIpOwogfQpAQCAtMjg3LDcg
KzI4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc0RPTVdpbmRvd1Rlc3RPYmplY3RDb25z
dHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgcmV0dXJuIEpTVGVzdE9iajo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2Jq
ZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RP
TVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RPTVdpbmRvd1Rlc3RPYmpl
Y3RDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3RPYmplY3QiKTsKIH0KQEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNET01XaW5kb3dUZXN0T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T2JqZWN0IiksIHN0
cmxlbigiVGVzdE9iamVjdCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTRE9NV2luZG93VGVz
dE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU0RPTVdpbmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3RPYmplY3RDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE9iamVjdCIpOwogfQpAQCAtMzEwLDcgKzMxMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldHRlcihKU0ds
CiAgICAgcmV0dXJuIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksICZ0aGlzT2JqZWN0KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNET01XaW5kb3dUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RP
TVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdpbmRvdz46OmdldDxqc0RP
TVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQiKTsK
IH0KQEAgLTMyMiw3ICszMjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNET01XaW5kb3dU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3JTZXR0ZXIoSlNHbAogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Iiks
IHN0cmxlbigiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTRE9NV2luZG93VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU0RP
TVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU0RPTVdp
bmRvdz46OnNldDxzZXRKU0RPTVdpbmRvd1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGZhZDNkMjdmZmVmYmEwMWNhNjQxOWYyMzA0
MDBiYjFlNDcxMDUyNDYuLmYyMjQwNGY5M2Q2NjM5NGQ2YWJiMGM4NWNmYmZkNjc3YTU4MzMxNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTQ0
LDggKzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzRGVkaWNhdGVkV29ya2Vy
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5nIEpTRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlPEpTRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+OwogCkBAIC0xMDYsNyAr
MTA2LDcgQEAgSlNWYWx1ZSBKU0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1
Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gZ2V0RE9NQ29uc3Ry
dWN0b3I8SlNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2Fz
dDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTYsNyArMTE2LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTRGVkaWNhdGVkV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3cuY3BwCmluZGV4IDBiODNmYjY1M2U4OTRkY2M1YjFhZGNmN2E5NTkx
YzQ3ZDJmMDA4NzMuLjU4OWY2YzAwODcwZjJjNWNhMTVmOTMzMDBhODFiZWRmMGIxODljMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0V4cG9z
ZWRUb1dvcmtlckFuZFdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93LmNwcApAQCAtODcsMTIgKzg3
LDEyIEBAIEpTQzo6SlNPYmplY3QqIGNvbnZlcnREaWN0aW9uYXJ5VG9KUyhKU0M6OkpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKCiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90
b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc0V4cG9zZWRUb1dvcmtlckFuZFdp
bmRvd1Byb3RvdHlwZUZ1bmN0aW9uRG9Tb21ldGhpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc0V4cG9zZWRUb1dvcmtlckFu
ZFdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0xMjgsNyArMTI4LDcgQEAgU1RBVElDX0FTU0VSVF9JU09fU1VC
U1BBQ0VfU0hBUkFCTEUoSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dQcm90b3R5cGUsIEpTRXhw
b3MKIAogdXNpbmcgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvciA9IEpTRE9N
Q29uc3RydWN0b3I8SlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c+OwogCi10ZW1wbGF0ZTw+IEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTF9BVFRSSUJVVEVTIEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3I6OmNv
bnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE0Myw2ICsx
NDMsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNFeHBvc2Vk
VG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rvcjo6YwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwog
fQorSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dD
b25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3Rv
cjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93Q29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29u
c3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAgLTIxOCw3ICsyMTksNyBA
QCB0ZW1wbGF0ZTw+IGlubGluZSBKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyogSURMT3BlcmF0
aW9uPEpTRXhwb3NlZFRvV29ya2VyQW5kVwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTRXhw
b3NlZFRvV29ya2VyQW5kV2luZG93Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzRXhwb3NlZFRv
V29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjI4LDcgKzIyOSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvdzo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0yNTEsNyArMjUyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25Eb1MKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRGlj
dGlvbmFyeTxFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3c6OkRpY3Q+PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmRvU29tZXRoaW5nKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3dQcm90b3R5cGVGdW5jdGlvbkRvU29tZXRoaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc0V4cG9zZWRUb1dvcmtlckFuZFdpbmRvd1Byb3RvdHlwZUZ1bmN0aW9uRG9Tb21ldGhp
bmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3c+OjpjYWxsPGpzRXhwb3NlZFRvV29ya2VyQW5kV2luZG93UHJvdG90eXBlRnVuY3Rpb25E
b1NvbWV0aGluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZG9Tb21l
dGhpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU01hcExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTTWFwTGlrZS5jcHAKaW5kZXggM2NjNzM4MDdkMjIxYmRiM2Y1NTg0Yjc4MjdhZDlj
MDFiYzhiNjBiZi4uMTdhYzAwYzc4MmIzYzgzNmY2NTllODBkOTJjZjFlZDdlNTUxNTFjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlr
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFw
TGlrZS5jcHAKQEAgLTUwLDE1ICs1MCwxNSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBG
dW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uR2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25EZWxldGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
R2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25IYXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5
cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKTsKIAogLy8gQXR0cmlidXRlcwog
CkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keShKU0M6OkpTR2xvYmEKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3
YXJkR2V0VG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVk
VGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7CiB9CkBAIC0yNTcs
NyArMjU3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uSGFzQm9keShKU0M6OkpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9N
YXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RG
TW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNNYXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0yNzEsNyArMjcxLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllc0JvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1RvTWFwTGlr
ZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25FbnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46
OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0yODUsNyArMjg1LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5c0JvZHkoSlNDOjpKU0dsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvTWFwTGlrZSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJrZXlzIik7CiB9CkBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6
OkpTR2wKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2Rl
KHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZh
bHVlcyIpOwogfQpAQCAtMzE4LDcgKzMxOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZEZvckVhY2hUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2gsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNNYXBMaWtlPjo6Y2FsbDxqc01h
cExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXRCb2R5
KEpTQzo6SlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRTZXRUb01hcExpa2UoKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSksIFdURk1vdmUodmFs
dWUpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc01hcExpa2VQcm90
b3R5cGVGdW5jdGlvblNldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25TZXQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNNYXBM
aWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvblNldEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic2V0Iik7CiB9CkBAIC0zNTYsNyArMzU2LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzTWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Q2xlYXJCb2R5KEpTQzo6SlNHbG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzTWFwTGlrZVByb3Rv
dHlwZUZ1bmN0aW9uQ2xlYXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uQ2xlYXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNN
YXBMaWtlPjo6Y2FsbDxqc01hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGVhciIpOwogfQpAQCAtMzc1LDcgKzM3NSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc01hcExpa2VQcm90b3R5cGVG
dW5jdGlvbkRlbGV0ZUJvZHkoSlNDOjpKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZERlbGV0ZVRvTWFwTGlr
ZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUo
a2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25EZWxldGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzTWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTTWFwTGlrZT46OmNhbGw8anNNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImRlbGV0ZSIpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUuY3BwCmluZGV4IDYyNWFkYmMyNzQ1ZGEzOWZlOTNm
YzhmZGYwMDg4Zjk1MjlhNjVjYzkuLjk4YjUzNjRmZDJiZmJlNzM0NTliZjJjYmJiNTk3MDJkNzVk
OWUwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1BhaW50V29ya2xldEdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZS5jcHAKQEAgLTQ0
LDggKzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotYm9vbCBzZXRKU1BhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzUGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5nIEpTUGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpT
UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGU+OwogCkBAIC0xMDYsNyArMTA2LDcgQEAgSlNWYWx1ZSBK
U1BhaW50V29ya2xldEdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpT
R2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1BhaW50V29ya2xl
dEdsb2JhbFNjb3BlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2Jq
ZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzUGFpbnRXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTExNiw3ICsxMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1BhaW50V29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNQYWludFdvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi1ib29sIHNldEpTUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVh
ZE9ubHlNYXBMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ0
NmJhMzkwN2Y3OWY5Yzk5ODU0MmM4ODkxNzUyZGY5MjdhYWZkMGUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQx
MCArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBz
b3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVy
YXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0g
ICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJKU1JlYWRPbmx5TWFwTGlrZS5oIgotCi0jaW5jbHVkZSAiQWN0aXZlRE9NT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCi0jaW5jbHVkZSAiSlNET01BdHRy
aWJ1dGUuaCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydEFueS5oIgot
I2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKLSNpbmNsdWRlICJKU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmgiCi0jaW5jbHVkZSAiSlNET01NYXBMaWtlLmgiCi0jaW5jbHVkZSAiSlNET01P
cGVyYXRpb24uaCIKLSNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+Ci0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9IZWFwQW5hbHl6ZXIuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5
cGUuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdWJzcGFjZUlubGluZXMuaD4KLSNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4K
LSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKLQotLy8gRnVuY3Rpb25zCi0KLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLQotLy8gQXR0cmlidXRlcwotCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotCi1jbGFzcyBKU1JlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewotcHVi
bGljOgotICAgIHVzaW5nIEJhc2UgPSBKU0M6OkpTTm9uRmluYWxPYmplY3Q7Ci0gICAgc3RhdGlj
IEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAg
ewotICAgICAgICBKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSogcHRyID0gbmV3IChOb3ROdWxs
LCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZT4odm0uaGVhcCkp
IEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7
Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICByZXR1cm4gcHRyOwot
ICAgIH0KLQotICAgIERFQ0xBUkVfSU5GTzsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlw
ZSwgSlNDOjpTdWJzcGFjZUFjY2Vzcz4KLSAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vi
c3BhY2VGb3IoSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBTVEFUSUNfQVNTRVJUX0lTT19T
VUJTUEFDRV9TSEFSQUJMRShKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSwgQmFzZSk7Ci0gICAg
ICAgIHJldHVybiAmdm0ucGxhaW5PYmplY3RTcGFjZTsKLSAgICB9Ci0gICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygp
KTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGUoSlND
OjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgICAgICA6IEpTQzo6SlNOb25GaW5hbE9iamVjdCh2bSwgc3RydWN0dXJlKQotICAgIHsK
LSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLX07Ci1TVEFUSUNf
QVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZSwg
SlNSZWFkT25seU1hcExpa2VQcm90b3R5cGU6OkJhc2UpOwotCi11c2luZyBKU1JlYWRPbmx5TWFw
TGlrZUNvbnN0cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNSZWFk
T25seU1hcExpa2U+OwotCi10ZW1wbGF0ZTw+IEpTVmFsdWUgSlNSZWFkT25seU1hcExpa2VDb25z
dHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0gICAg
cmV0dXJuIGdsb2JhbE9iamVjdC5mdW5jdGlvblByb3RvdHlwZSgpOwotfQotCi10ZW1wbGF0ZTw+
IHZvaWQgSlNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMo
Vk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1JlYWRPbmx5TWFwTGlrZTo6cHJv
dG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVs
ZXRlIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5u
YW1lLCBqc05vbnRyaXZpYWxTdHJpbmcodm0sICJSZWFkT25seU1hcExpa2UiX3MpLCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1i
ZXIoMCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RG9udEVudW0pOwotfQotCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Jl
YWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJSZWFkT25seU1hcExpa2UiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUmVh
ZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IpIH07Ci0KLS8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNSZWFkT25seU1hcExpa2VQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRpY19jYXN0
PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNS
ZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJv
cGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTUmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3Ip
IH0gfSwKLSAgICB7ICJzaXplIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNSZWFkT25s
eU1hcExpa2VTaXplKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSB9LAotICAgIHsgImdldCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6
OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2
ZUZ1bmN0aW9uPihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0KSwgKGludHB0
cl90KSAoMSkgfSB9LAotICAgIHsgImhhcyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0
aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0
aW9uPihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKSwgKGludHB0cl90KSAo
MSkgfSB9LAotICAgIHsgImVudHJpZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlv
biksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlv
bj4oanNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpLCAoaW50cHRyX3Qp
ICgwKSB9IH0sCi0gICAgeyAia2V5cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyksIChpbnRwdHJfdCkgKDAp
IH0gfSwKLSAgICB7ICJ2YWx1ZXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiks
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4o
anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyksIChpbnRwdHJfdCkgKDAp
IH0gfSwKLSAgICB7ICJmb3JFYWNoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVy
dHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLX07Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1Jl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZTo6c19pbmZvID0geyAiUmVhZE9ubHlNYXBMaWtlIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1JlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZSkgfTsKLQotdm9pZCBKU1JlYWRPbmx5TWFwTGlrZVByb3RvdHlw
ZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZt
KTsKLSAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTUmVhZE9ubHlNYXBMaWtlOjppbmZv
KCksIEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKLSAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0p
KTsKLSAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKLX0KLQotY29u
c3QgQ2xhc3NJbmZvIEpTUmVhZE9ubHlNYXBMaWtlOjpzX2luZm8gPSB7ICJSZWFkT25seU1hcExp
a2UiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTUmVhZE9ubHlNYXBMaWtlKSB9OwotCi1KU1JlYWRPbmx5TWFwTGlrZTo6SlNSZWFkT25seU1h
cExpa2UoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QsIFJlZjxSZWFkT25seU1hcExpa2U+JiYgaW1wbCkKLSAgICA6IEpTRE9NV3JhcHBlcjxSZWFk
T25seU1hcExpa2U+KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKQotewot
fQotCi12b2lkIEpTUmVhZE9ubHlNYXBMaWtlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCi17Ci0g
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5m
bygpKSk7Ci0KLSAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2Jq
ZWN0LCBSZWFkT25seU1hcExpa2U+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFz
IFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNs
YXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOwotCi19Ci0KLUpTT2JqZWN0KiBKU1JlYWRPbmx5TWFw
TGlrZTo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKLXsKLSAgICByZXR1cm4gSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGU6OmNyZWF0ZSh2
bSwgJmdsb2JhbE9iamVjdCwgSlNSZWFkT25seU1hcExpa2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZSh2bSwgJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSk7
Ci19Ci0KLUpTT2JqZWN0KiBKU1JlYWRPbmx5TWFwTGlrZTo6cHJvdG90eXBlKFZNJiB2bSwgSlNE
T01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NUHJvdG90
eXBlPEpTUmVhZE9ubHlNYXBMaWtlPih2bSwgZ2xvYmFsT2JqZWN0KTsKLX0KLQotSlNWYWx1ZSBK
U1JlYWRPbmx5TWFwTGlrZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1Jl
YWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCkpOwotfQotCi12b2lkIEpTUmVhZE9ubHlNYXBMaWtlOjpkZXN0
cm95KEpTQzo6SlNDZWxsKiBjZWxsKQotewotICAgIEpTUmVhZE9ubHlNYXBMaWtlKiB0aGlzT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SlNSZWFkT25seU1hcExpa2UqPihjZWxsKTsKLSAgICB0aGlzT2Jq
ZWN0LT5KU1JlYWRPbmx5TWFwTGlrZTo6fkpTUmVhZE9ubHlNYXBMaWtlKCk7Ci19Ci0KLXRlbXBs
YXRlPD4gaW5saW5lIEpTUmVhZE9ubHlNYXBMaWtlKiBJRExBdHRyaWJ1dGU8SlNSZWFkT25seU1h
cExpa2U+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25s
eU1hcExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1JlYWRPbmx5TWFwTGlr
ZSogSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJu
IGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25seU1hcExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUg
anNSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBq
c0R5bmFtaWNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNSZWFkT25seU1hcExpa2U6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFs
T2JqZWN0KCkpKTsKLX0KLQotYm9vbCBzZXRKU1JlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNS
ZWFkT25seU1hcExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwotICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCi0gICAg
cmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1
Y3RvciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi1zdGF0aWMgaW5saW5l
IEpTVmFsdWUganNSZWFkT25seU1hcExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1JlYWRPbmx5TWFwTGlrZSYgdGhpc09iamVjdCkKLXsKLSAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGZvcndhcmRTaXplVG9NYXBMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qp
KSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVNpemUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNSZWFkT25seU1hcExpa2U+
OjpnZXQ8anNSZWFkT25seU1hcExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAic2l6ZSIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldEJvZHkoSlNDOjpKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
dHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUp
OwotICAgIGlmIChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAg
ICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRB
cmd1bWVudCgwKTsKLSAgICBhdXRvIGtleSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEdldFRvTWFw
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1v
dmUoa2V5KSkpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkdldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1JlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkdldEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVBy
b3RvdHlwZUZ1bmN0aW9uSGFzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248
SlNSZWFkT25seU1hcExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1
dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dT
Y29wZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgaWYgKFVOTElLRUxZKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1l
bnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29w
ZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8g
a2V5ID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVu
dDAudmFsdWUoKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKLX0KLQotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlNYXBMaWtlPjo6
Y2FsbDxqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
Qm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxG
cmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNSZWFkT25seU1hcExpa2U+
OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNUb01hcExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKLX0KLQotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46
OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKLX0KLQotc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25LZXlzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6
OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNSZWFkT25seU1h
cExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNUb01hcExpa2UoKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKLX0KLQotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46
OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKLX0KLQotc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzUmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlr
ZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVT
RURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7Ci19Ci0KLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlv
blZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46
OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7Ci19Ci0KLXN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaEJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTUmVhZE9ubHlN
YXBMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAg
IFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIGlmIChVTkxJS0VMWShjYWxsRnJhbWUtPmFy
Z3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQw
ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICBhdXRvIGNhbGxiYWNrID0g
Y29udmVydDxJRExBbnk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBhcmd1bWVudDAudmFsdWUoKSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
LSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8
SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKLX0KLQotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRPbmx5TWFwTGlrZT46
OmNhbGw8anNSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKLX0KLQotSlNDOjpJc29T
dWJzcGFjZSogSlNSZWFkT25seU1hcExpa2U6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkK
LXsKLSAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
dm0uY2xpZW50RGF0YSk7Ci0gICAgYXV0byYgc3BhY2VzID0gY2xpZW50RGF0YS5zdWJzcGFjZXMo
KTsKLSAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclJlYWRPbmx5TWFw
TGlrZS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHNwYWNlOwotICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNSZWFkT25seU1hcExp
a2U+IHx8ICFKU1JlYWRPbmx5TWFwTGlrZTo6bmVlZHNEZXN0cnVjdGlvbik7Ci0gICAgaWYgY29u
c3RleHByIChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Jl
YWRPbmx5TWFwTGlrZT4pCi0gICAgICAgIHNwYWNlcy5tX3N1YnNwYWNlRm9yUmVhZE9ubHlNYXBM
aWtlID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0uaGVhcCwg
dm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1JlYWRPbmx5TWFwTGlr
ZSk7Ci0gICAgZWxzZQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclJlYWRPbmx5TWFwTGlr
ZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9JTklUKHZtLmhlYXAsIHZt
LmNlbGxIZWFwQ2VsbFR5cGUuZ2V0KCksIEpTUmVhZE9ubHlNYXBMaWtlKTsKLSAgICBhdXRvKiBz
cGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yUmVhZE9ubHlNYXBMaWtlLmdldCgpOwotSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKLUlHTk9SRV9XQVJOSU5HU19CRUdJ
TigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQotICAgIGlmICgmSlNSZWFkT25seU1hcExpa2U6OnZp
c2l0T3V0cHV0Q29uc3RyYWludHMgIT0gJkpTQzo6SlNDZWxsOjp2aXNpdE91dHB1dENvbnN0cmFp
bnRzKQotICAgICAgICBjbGllbnREYXRhLm91dHB1dENvbnN0cmFpbnRTcGFjZXMoKS5hcHBlbmQo
c3BhY2UpOwotSUdOT1JFX1dBUk5JTkdTX0VORAotSUdOT1JFX1dBUk5JTkdTX0VORAotICAgIHJl
dHVybiBzcGFjZTsKLX0KLQotdm9pZCBKU1JlYWRPbmx5TWFwTGlrZTo6YW5hbHl6ZUhlYXAoSlND
ZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFuYWx5emVyKQotewotICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNSZWFkT25seU1hcExpa2UqPihjZWxsKTsKLSAgICBhbmFseXplci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKLSAgICBp
ZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBhbmFseXpl
ci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7Ci0gICAgQmFzZTo6YW5hbHl6ZUhlYXAoY2Vs
bCwgYW5hbHl6ZXIpOwotfQotCi1ib29sIEpTUmVhZE9ubHlNYXBMaWtlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IsIGNvbnN0IGNoYXIqKiByZWFzb24pCi17Ci0gICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwotICAgIFVOVVNF
RF9QQVJBTShyZWFzb24pOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBKU1JlYWRPbmx5
TWFwTGlrZU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCogY29udGV4dCkKLXsKLSAgICBhdXRvKiBqc1JlYWRPbmx5TWFwTGlrZSA9IHN0YXRpY19j
YXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwotICAgIGF1
dG8mIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwotICAg
IHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNSZWFkT25seU1hcExpa2UtPndyYXBwZWQoKSwganNS
ZWFkT25seU1hcExpa2UpOwotfQotCi0jaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotI2lm
IFBMQVRGT1JNKFdJTikKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NDgzKQotZXh0ZXJuICJD
IiB7IGV4dGVybiB2b2lkICgqY29uc3QgX19pZGVudGlmaWVyKCI/P183UmVhZE9ubHlNYXBMaWtl
QFdlYkNvcmVAQDZCQCIpW10pKCk7IH0KLSNlbHNlCi1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQq
IF9aVFZON1dlYkNvcmUxNVJlYWRPbmx5TWFwTGlrZUVbXTsgfQotI2VuZGlmCi0jZW5kaWYKLQot
SlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxSZWFkT25seU1hcExpa2U+JiYgaW1wbCkK
LXsKLQotI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICBjb25zdCB2b2lkKiBhY3R1
YWxWVGFibGVQb2ludGVyID0gZ2V0VlRhYmxlUG9pbnRlcihpbXBsLnB0cigpKTsKLSNpZiBQTEFU
Rk9STShXSU4pCi0gICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gX19pZGVudGlmaWVy
KCI/P183UmVhZE9ubHlNYXBMaWtlQFdlYkNvcmVAQDZCQCIpOwotI2Vsc2UKLSAgICB2b2lkKiBl
eHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43V2ViQ29yZTE1UmVhZE9ubHlNYXBMaWtlRVsy
XTsKLSNlbmRpZgotCi0gICAgLy8gSWYgdGhpcyBmYWlscyBSZWFkT25seU1hcExpa2UgZG9lcyBu
b3QgaGF2ZSBhIHZ0YWJsZSwgc28geW91IG5lZWQgdG8gYWRkIHRoZQotICAgIC8vIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUgYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgZGVmaW5pdGlvbgot
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2x5bW9ycGhpYzxSZWFkT25seU1hcExpa2U+Ojp2
YWx1ZSwgIlJlYWRPbmx5TWFwTGlrZSBpcyBub3QgcG9seW1vcnBoaWMiKTsKLQotICAgIC8vIElm
IHlvdSBoaXQgdGhpcyBhc3NlcnRpb24geW91IGVpdGhlciBoYXZlIGEgdXNlIGFmdGVyIGZyZWUg
YnVnLCBvcgotICAgIC8vIFJlYWRPbmx5TWFwTGlrZSBoYXMgc3ViY2xhc3Nlcy4gSWYgUmVhZE9u
bHlNYXBMaWtlIGhhcyBzdWJjbGFzc2VzIHRoYXQgZ2V0IHBhc3NlZAotICAgIC8vIHRvIHRvSlMo
KSB3ZSBjdXJyZW50bHkgcmVxdWlyZSBSZWFkT25seU1hcExpa2UgeW91IHRvIG9wdCBvdXQgb2Yg
YmluZGluZyBoYXJkZW5pbmcKLSAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0
aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCi0gICAgUkVMRUFT
RV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwot
I2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8UmVhZE9ubHlNYXBMaWtlPihnbG9iYWxP
YmplY3QsIFdURk1vdmUoaW1wbCkpOwotfQotCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBSZWFkT25seU1hcExpa2UmIGltcGwpCi17Ci0gICAgcmV0dXJuIHdyYXAobGV4aWNh
bEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKLX0KLQotUmVhZE9ubHlNYXBMaWtl
KiBKU1JlYWRPbmx5TWFwTGlrZTo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUg
dmFsdWUpCi17Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTUmVhZE9u
bHlNYXBMaWtlKj4odm0sIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuICZ3cmFwcGVyLT53cmFwcGVk
KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxZGNkZTA0N2Y1YjViNTFhNWE1MzdmZjVjNTJh
NjZkMGEwNDQ3NjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBM
aWtlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUg
aGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZ
IQotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
LSovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCi0jaW5jbHVk
ZSAiUmVhZE9ubHlNYXBMaWtlLmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNSZWFkT25seU1hcExpa2UgOiBwdWJsaWMg
SlNET01XcmFwcGVyPFJlYWRPbmx5TWFwTGlrZT4gewotcHVibGljOgotICAgIHVzaW5nIEJhc2Ug
PSBKU0RPTVdyYXBwZXI8UmVhZE9ubHlNYXBMaWtlPjsKLSAgICBzdGF0aWMgSlNSZWFkT25seU1h
cExpa2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8UmVhZE9ubHlNYXBMaWtlPiYmIGltcGwpCi0gICAgewotICAg
ICAgICBKU1JlYWRPbmx5TWFwTGlrZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDxKU1JlYWRPbmx5TWFwTGlrZT4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1JlYWRP
bmx5TWFwTGlrZShzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwotICAg
ICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgICAgIHJl
dHVybiBwdHI7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3Rv
dHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKLSAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogcHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0YXRp
YyBSZWFkT25seU1hcExpa2UqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKLSAg
ICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7Ci0KLSAgICBERUNMQVJFX0lORk87
Ci0KLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCksIEpTQzo6Tm9uQXJyYXkpOwotICAgIH0KLQotICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBt
b2RlPiBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCi0g
ICAgewotICAgICAgICBpZiBjb25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6
Q29uY3VycmVudGx5KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVy
biBzdWJzcGFjZUZvckltcGwodm0pOwotICAgIH0KLSAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFj
ZSogc3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKTsKLSAgICBzdGF0aWMgdm9pZCBhbmFseXpl
SGVhcChKU0NlbGwqLCBKU0M6OkhlYXBBbmFseXplciYpOwotcHJvdGVjdGVkOgotICAgIEpTUmVh
ZE9ubHlNYXBMaWtlKEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8UmVh
ZE9ubHlNYXBMaWtlPiYmKTsKLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwot
fTsKLQotY2xhc3MgSlNSZWFkT25seU1hcExpa2VPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5k
bGVPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xv
dFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwotICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKLX07Ci0KLWlubGluZSBKU0M6
OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFJlYWRPbmx5
TWFwTGlrZSopCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTUmVhZE9ubHlNYXBMaWtl
T3duZXI+IG93bmVyOwotICAgIHJldHVybiAmb3duZXIuZ2V0KCk7Ci19Ci0KLWlubGluZSB2b2lk
KiB3cmFwcGVyS2V5KFJlYWRPbmx5TWFwTGlrZSogd3JhcHBhYmxlT2JqZWN0KQotewotICAgIHJl
dHVybiB3cmFwcGFibGVPYmplY3Q7Ci19Ci0KLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCosIFJlYWRPbmx5TWFwTGlrZSYpOwotaW5saW5l
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlYWRPbmx5TWFwTGlrZSogaW1w
bCkgeyByZXR1cm4gaW1wbCA/IHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LCAqaW1wbCkgOiBKU0M6OmpzTnVsbCgpOyB9Ci1KU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRl
ZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8UmVhZE9ubHlN
YXBMaWtlPiYmKTsKLWlubGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWZQdHI8UmVhZE9ubHlNYXBMaWtlPiYmIGltcGwpIHsgcmV0dXJuIGltcGwg
PyB0b0pTTmV3bHlDcmVhdGVkKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgaW1w
bC5yZWxlYXNlTm9uTnVsbCgpKSA6IEpTQzo6anNOdWxsKCk7IH0KLQotdGVtcGxhdGU8PiBzdHJ1
Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFJlYWRPbmx5TWFwTGlrZT4gewotICAgIHVz
aW5nIFdyYXBwZXJDbGFzcyA9IEpTUmVhZE9ubHlNYXBMaWtlOwotICAgIHVzaW5nIFRvV3JhcHBl
ZFJldHVyblR5cGUgPSBSZWFkT25seU1hcExpa2UqOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTUmVhZE9ubHlTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1JlYWRPbmx5U2V0TGlrZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVjNDQ0ZjU2ZGY1OWYyZWY5YWI4MjVhNjcyYzcxNjU1OTUwZDdmNDAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlTZXRMaWtlLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDM4OSArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQg
b3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5
IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBz
ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJKU1JlYWRPbmx5U2V0TGlrZS5oIgotCi0jaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiRE9NSXNvU3Vic3BhY2VzLmgiCi0jaW5jbHVkZSAiSlNE
T01BdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RP
TUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydEFu
eS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKLSNpbmNsdWRlICJKU0RPTUV4
Y2VwdGlvbkhhbmRsaW5nLmgiCi0jaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKLSNpbmNsdWRl
ICJKU0RPTVNldExpa2UuaCIKLSNpbmNsdWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKLSNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnRE
YXRhLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQnVpbHRpbk5hbWVzLmg+Ci0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KLSNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9IZWFwQW5hbHl6ZXIuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxp
bmVzLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNEZXN0cnVjdGlibGVPYmplY3RIZWFw
Q2VsbFR5cGUuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdWJzcGFjZUlubGluZXMuaD4K
LSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1BvaW50ZXJQcmVwYXJhdGlv
bnMuaD4KLSNpbmNsdWRlIDx3dGYvVVJMLmg+Ci0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotLy8gRnVuY3Rpb25zCi0KLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVh
Y2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci0KLS8vIEF0dHJpYnV0
ZXMKLQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLQotY2xhc3MgSlNSZWFk
T25seVNldExpa2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKLXB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0gSlNDOjpKU05vbkZpbmFsT2JqZWN0OwotICAg
IHN0YXRpYyBKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
KQotICAgIHsKLSAgICAgICAgSlNSZWFkT25seVNldExpa2VQcm90b3R5cGUqIHB0ciA9IG5ldyAo
Tm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNSZWFkT25seVNldExpa2VQcm90b3R5cGU+KHZt
LmhlYXApKSBKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAgICAgcmV0dXJu
IHB0cjsKLSAgICB9Ci0KLSAgICBERUNMQVJFX0lORk87Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2VsbFR5cGUsIEpTQzo6U3Vic3BhY2VBY2Nlc3M+Ci0gICAgc3RhdGljIEpTQzo6SXNvU3Vic3Bh
Y2UqIHN1YnNwYWNlRm9yKEpTQzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgU1RBVElDX0FTU0VS
VF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNSZWFkT25seVNldExpa2VQcm90b3R5cGUsIEJhc2Up
OwotICAgICAgICByZXR1cm4gJnZtLnBsYWluT2JqZWN0U3BhY2U7Ci0gICAgfQotICAgIHN0YXRp
YyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewot
ICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBw
cm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90
eXBlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKLSAgICAgICAgOiBKU0M6OkpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkK
LSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci19Owot
U1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNSZWFkT25seVNldExpa2VQcm90
b3R5cGUsIEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlOjpCYXNlKTsKLQotdXNpbmcgSlNSZWFk
T25seVNldExpa2VDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTUmVhZE9ubHlTZXRMaWtlPjsKLQotdGVtcGxhdGU8PiBKU1ZhbHVlIEpTUmVhZE9ubHlTZXRM
aWtlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3Qg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0odm0p
OwotICAgIHJldHVybiBnbG9iYWxPYmplY3QuZnVuY3Rpb25Qcm90b3R5cGUoKTsKLX0KLQotdGVt
cGxhdGU8PiB2b2lkIEpTUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9w
ZXJ0aWVzKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNSZWFkT25seVNldExp
a2U6OnByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udERlbGV0ZSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+bmFtZSwganNOb250cml2aWFsU3RyaW5nKHZtLCAiUmVhZE9ubHlTZXRMaWtlIl9zKSwg
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgs
IGpzTnVtYmVyKDApLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLX0KLQotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0lu
Zm8gSlNSZWFkT25seVNldExpa2VDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiUmVhZE9ubHlTZXRM
aWtlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShKU1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKSB9OwotCi0vKiBIYXNoIHRhYmxlIGZvciBw
cm90b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTUmVhZE9ubHlTZXRM
aWtlUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAgeyAiY29uc3RydWN0b3IiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzUmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1JlYWRPbmx5U2V0TGlrZUNvbnN0
cnVjdG9yKSB9IH0sCi0gICAgeyAic2l6ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRP
bmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3VzdG9tQWNjZXNzb3IpLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
UmVhZE9ubHlTZXRMaWtlU2l6ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLSAgICB7ICJoYXMiLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0
cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxS
YXdOYXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyks
IChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJlbnRyaWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3
TmF0aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVz
KSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImtleXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmli
dXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdO
YXRpdmVGdW5jdGlvbj4oanNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktleXMpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0
aXZlRnVuY3Rpb24+KGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpLCAo
aW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAiZm9yRWFjaCIsIHN0YXRpY19jYXN0PHVuc2lnbmVk
PihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCks
IChpbnRwdHJfdCkgKDEpIH0gfSwKLX07Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1JlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZTo6c19pbmZvID0geyAiUmVhZE9ubHlTZXRMaWtlIiwgJkJhc2U6OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1JlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZSkgfTsKLQotdm9pZCBKU1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZTo6ZmluaXNo
Q3JlYXRpb24oVk0mIHZtKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTUmVhZE9ubHlTZXRMaWtlOjppbmZvKCksIEpTUmVh
ZE9ubHlTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKLSAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3ltYm9sLCBnZXREaXJlY3Qodm0sIHZtLnBy
b3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJpZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICBK
U0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJT04oKTsKLX0KLQotY29uc3QgQ2xhc3NJ
bmZvIEpTUmVhZE9ubHlTZXRMaWtlOjpzX2luZm8gPSB7ICJSZWFkT25seVNldExpa2UiLCAmQmFz
ZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUmVhZE9u
bHlTZXRMaWtlKSB9OwotCi1KU1JlYWRPbmx5U2V0TGlrZTo6SlNSZWFkT25seVNldExpa2UoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIFJlZjxS
ZWFkT25seVNldExpa2U+JiYgaW1wbCkKLSAgICA6IEpTRE9NV3JhcHBlcjxSZWFkT25seVNldExp
a2U+KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKQotewotfQotCi12b2lk
IEpTUmVhZE9ubHlTZXRMaWtlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCi17Ci0gICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEFTU0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7Ci0K
LSAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6OmlzX2Jhc2Vfb2Y8QWN0aXZlRE9NT2JqZWN0LCBSZWFk
T25seVNldExpa2U+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVE
T01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0
aXZlRE9NT2JqZWN0LiIpOwotCi19Ci0KLUpTT2JqZWN0KiBKU1JlYWRPbmx5U2V0TGlrZTo6Y3Jl
YXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsK
LSAgICByZXR1cm4gSlNSZWFkT25seVNldExpa2VQcm90b3R5cGU6OmNyZWF0ZSh2bSwgJmdsb2Jh
bE9iamVjdCwgSlNSZWFkT25seVNldExpa2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwg
Jmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSk7Ci19Ci0KLUpT
T2JqZWN0KiBKU1JlYWRPbmx5U2V0TGlrZTo6cHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxP
YmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpTUmVh
ZE9ubHlTZXRMaWtlPih2bSwgZ2xvYmFsT2JqZWN0KTsKLX0KLQotSlNWYWx1ZSBKU1JlYWRPbmx5
U2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQotewotICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1JlYWRPbmx5U2V0
TGlrZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCkpOwotfQotCi12b2lkIEpTUmVhZE9ubHlTZXRMaWtlOjpkZXN0cm95KEpTQzo6
SlNDZWxsKiBjZWxsKQotewotICAgIEpTUmVhZE9ubHlTZXRMaWtlKiB0aGlzT2JqZWN0ID0gc3Rh
dGljX2Nhc3Q8SlNSZWFkT25seVNldExpa2UqPihjZWxsKTsKLSAgICB0aGlzT2JqZWN0LT5KU1Jl
YWRPbmx5U2V0TGlrZTo6fkpTUmVhZE9ubHlTZXRMaWtlKCk7Ci19Ci0KLXRlbXBsYXRlPD4gaW5s
aW5lIEpTUmVhZE9ubHlTZXRMaWtlKiBJRExBdHRyaWJ1dGU8SlNSZWFkT25seVNldExpa2U+Ojpj
YXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25seVNldExpa2Uq
PihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1JlYWRPbmx5U2V0TGlrZSogSURMT3Bl
cmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Y2FzdChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lJiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNSZWFkT25seVNldExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNSZWFkT25s
eVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWND
YXN0PEpTUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNSZWFkT25seVNldExpa2U6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKLX0KLQotYm9vbCBzZXRKU1JlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Nhc3Q8SlNSZWFkT25seVNl
dExpa2VQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCi0gICAgcmV0dXJuIHBy
b3RvdHlwZS0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNSZWFkT25seVNldExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1JlYWRPbmx5U2V0TGlrZSYgdGhpc09iamVjdCkKLXsKLSAgICBhdXRvJiB2bSA9
IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndh
cmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwotfQot
Ci1FbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQotewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNSZWFkT25seVNldExpa2U+OjpnZXQ8anNS
ZWFkT25seVNldExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAic2l6ZSIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFk
T25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUg
SURMT3BlcmF0aW9uPEpTUmVhZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0g
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIGlm
IChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVT
dGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KTsKLSAgICBhdXRvIGtleSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkp
KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1JlYWRP
bmx5U2V0TGlrZT46OmNhbGw8anNSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRW50cmllc0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTUmVh
ZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUp
OwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9T
ZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFk
T25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRy
aWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9u
PEpTUmVhZE9ubHlTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBh
dXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93
U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlz
VG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykp
KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFk
T25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlz
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1JlYWRPbmx5U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNS
ZWFkT25seVNldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29w
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1Rv
U2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkp
OwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzUmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFk
T25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1
ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVlcyIpOwotfQot
Ci1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1JlYWRPbmx5U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAg
YXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJv
d1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBpZiAoVU5MSUtFTFko
Y2FsbEZyYW1lLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNj
b3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0
byBjYWxsYmFjayA9IGNvbnZlcnQ8SURMQW55PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1l
bnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNSZWFk
T25seVNldExpa2U+OjpjYWxsPGpzUmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7Ci19
Ci0KLUpTQzo6SXNvU3Vic3BhY2UqIEpTUmVhZE9ubHlTZXRMaWtlOjpzdWJzcGFjZUZvckltcGwo
SlNDOjpWTSYgdm0pCi17Ci0gICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZN
Q2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpOwotICAgIGF1dG8mIHNwYWNlcyA9IGNsaWVudERh
dGEuc3Vic3BhY2VzKCk7Ci0gICAgaWYgKGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VG
b3JSZWFkT25seVNldExpa2UuZ2V0KCkpCi0gICAgICAgIHJldHVybiBzcGFjZTsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpT
UmVhZE9ubHlTZXRMaWtlPiB8fCAhSlNSZWFkT25seVNldExpa2U6Om5lZWRzRGVzdHJ1Y3Rpb24p
OwotICAgIGlmIGNvbnN0ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJs
ZU9iamVjdCwgSlNSZWFkT25seVNldExpa2U+KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZv
clJlYWRPbmx5U2V0TGlrZSA9IG1ha2VVbmlxdWU8SXNvU3Vic3BhY2U+IElTT19TVUJTUEFDRV9J
TklUKHZtLmhlYXAsIHZtLmRlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNS
ZWFkT25seVNldExpa2UpOwotICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JS
ZWFkT25seVNldExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5J
VCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1JlYWRPbmx5U2V0TGlrZSk7
Ci0gICAgYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJzcGFjZUZvclJlYWRPbmx5U2V0TGlrZS5n
ZXQoKTsKLUlHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIpCi1JR05PUkVf
V0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKLSAgICBpZiAoJkpTUmVhZE9u
bHlTZXRMaWtlOjp2aXNpdE91dHB1dENvbnN0cmFpbnRzICE9ICZKU0M6OkpTQ2VsbDo6dmlzaXRP
dXRwdXRDb25zdHJhaW50cykKLSAgICAgICAgY2xpZW50RGF0YS5vdXRwdXRDb25zdHJhaW50U3Bh
Y2VzKCkuYXBwZW5kKHNwYWNlKTsKLUlHTk9SRV9XQVJOSU5HU19FTkQKLUlHTk9SRV9XQVJOSU5H
U19FTkQKLSAgICByZXR1cm4gc3BhY2U7Ci19Ci0KLXZvaWQgSlNSZWFkT25seVNldExpa2U6OmFu
YWx5emVIZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikKLXsKLSAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTUmVhZE9ubHlTZXRMaWtlKj4oY2VsbCk7Ci0gICAg
YW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBw
ZWQoKSk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAg
ICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwotICAgIEJhc2U6OmFu
YWx5emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKLX0KLQotYm9vbCBKU1JlYWRPbmx5U2V0TGlrZU93
bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25zdCBjaGFyKiogcmVhc29u
KQotewotICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwotICAgIFVOVVNFRF9QQVJBTSh2aXNpdG9y
KTsKLSAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZv
aWQgSlNSZWFkT25seVNldExpa2VPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgYXV0byoganNSZWFkT25seVNldExp
a2UgPSBzdGF0aWNfY2FzdDxKU1JlYWRPbmx5U2V0TGlrZSo+KGhhbmRsZS5zbG90KCktPmFzQ2Vs
bCgpKTsKLSAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihj
b250ZXh0KTsKLSAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzUmVhZE9ubHlTZXRMaWtlLT53
cmFwcGVkKCksIGpzUmVhZE9ubHlTZXRMaWtlKTsKLX0KLQotI2lmIEVOQUJMRShCSU5ESU5HX0lO
VEVHUklUWSkKLSNpZiBQTEFURk9STShXSU4pCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4
MykKLWV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCAoKmNvbnN0IF9faWRlbnRpZmllcigiPz9fN1Jl
YWRPbmx5U2V0TGlrZUBXZWJDb3JlQEA2QkAiKVtdKSgpOyB9Ci0jZWxzZQotZXh0ZXJuICJDIiB7
IGV4dGVybiB2b2lkKiBfWlRWTjdXZWJDb3JlMTVSZWFkT25seVNldExpa2VFW107IH0KLSNlbmRp
ZgotI2VuZGlmCi0KLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8UmVhZE9ubHlTZXRM
aWtlPiYmIGltcGwpCi17Ci0KLSNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgY29u
c3Qgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IGdldFZUYWJsZVBvaW50ZXIoaW1wbC5wdHIo
KSk7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9
IF9faWRlbnRpZmllcigiPz9fN1JlYWRPbmx5U2V0TGlrZUBXZWJDb3JlQEA2QkAiKTsKLSNlbHNl
Ci0gICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZON1dlYkNvcmUxNVJlYWRP
bmx5U2V0TGlrZUVbMl07Ci0jZW5kaWYKLQotICAgIC8vIElmIHRoaXMgZmFpbHMgUmVhZE9ubHlT
ZXRMaWtlIGRvZXMgbm90IGhhdmUgYSB2dGFibGUsIHNvIHlvdSBuZWVkIHRvIGFkZCB0aGUKLSAg
ICAvLyBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNl
IGRlZmluaXRpb24KLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9seW1vcnBoaWM8UmVhZE9u
bHlTZXRMaWtlPjo6dmFsdWUsICJSZWFkT25seVNldExpa2UgaXMgbm90IHBvbHltb3JwaGljIik7
Ci0KLSAgICAvLyBJZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVz
ZSBhZnRlciBmcmVlIGJ1Zywgb3IKLSAgICAvLyBSZWFkT25seVNldExpa2UgaGFzIHN1YmNsYXNz
ZXMuIElmIFJlYWRPbmx5U2V0TGlrZSBoYXMgc3ViY2xhc3NlcyB0aGF0IGdldCBwYXNzZWQKLSAg
ICAvLyB0byB0b0pTKCkgd2UgY3VycmVudGx5IHJlcXVpcmUgUmVhZE9ubHlTZXRMaWtlIHlvdSB0
byBvcHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVuaW5nCi0gICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lw
VlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlv
bgotICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFi
bGVQb2ludGVyKTsKLSNlbmRpZgotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFJlYWRPbmx5U2V0
TGlrZT4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKLX0KLQotSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUmVhZE9ubHlTZXRMaWtlJiBpbXBsKQotewotICAgIHJldHVy
biB3cmFwKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgaW1wbCk7Ci19Ci0KLVJl
YWRPbmx5U2V0TGlrZSogSlNSZWFkT25seVNldExpa2U6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwg
SlNDOjpKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWlj
Q2FzdDxKU1JlYWRPbmx5U2V0TGlrZSo+KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiAmd3Jh
cHBlci0+d3JhcHBlZCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi19CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seVNldExp
a2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5
U2V0TGlrZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNmQ3MGE4Mzc0Mzg4YzVh
NGU5ZmNkZGRlMjgyMzIyMmUyMzY0ZTBkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1JlYWRPbmx5U2V0TGlrZS5oCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoKLSAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0g
ICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4g
RE8gTk9UIE1PRElGWSEKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0qLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ci5oIgotI2luY2x1ZGUgIlJlYWRPbmx5U2V0TGlrZS5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTUmVhZE9ubHlTZXRM
aWtlIDogcHVibGljIEpTRE9NV3JhcHBlcjxSZWFkT25seVNldExpa2U+IHsKLXB1YmxpYzoKLSAg
ICB1c2luZyBCYXNlID0gSlNET01XcmFwcGVyPFJlYWRPbmx5U2V0TGlrZT47Ci0gICAgc3RhdGlj
IEpTUmVhZE9ubHlTZXRMaWtlKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFJlYWRPbmx5U2V0TGlrZT4mJiBpbXBs
KQotICAgIHsKLSAgICAgICAgSlNSZWFkT25seVNldExpa2UqIHB0ciA9IG5ldyAoTm90TnVsbCwg
SlNDOjphbGxvY2F0ZUNlbGw8SlNSZWFkT25seVNldExpa2U+KGdsb2JhbE9iamVjdC0+dm0oKS5o
ZWFwKSkgSlNSZWFkT25seVNldExpa2Uoc3RydWN0dXJlLCAqZ2xvYmFsT2JqZWN0LCBXVEZNb3Zl
KGltcGwpKTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkp
OwotICAgICAgICByZXR1cm4gcHRyOwotICAgIH0KLQotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0
KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0gICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3Qm
KTsKLSAgICBzdGF0aWMgUmVhZE9ubHlTZXRMaWtlKiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwotCi0gICAg
REVDTEFSRV9JTkZPOwotCi0gICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpK
U1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9i
amVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpLCBKU0M6Ok5vbkFycmF5KTsKLSAgICB9
Ci0KLSAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUsIEpTQzo6U3Vi
c3BhY2VBY2Nlc3MgbW9kZT4gc3RhdGljIEpTQzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKEpT
Qzo6Vk0mIHZtKQotICAgIHsKLSAgICAgICAgaWYgY29uc3RleHByIChtb2RlID09IEpTQzo6U3Vi
c3BhY2VBY2Nlc3M6OkNvbmN1cnJlbnRseSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICByZXR1cm4gc3Vic3BhY2VGb3JJbXBsKHZtKTsKLSAgICB9Ci0gICAgc3RhdGljIEpT
Qzo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSk7Ci0gICAgc3RhdGlj
IHZvaWQgYW5hbHl6ZUhlYXAoSlNDZWxsKiwgSlNDOjpIZWFwQW5hbHl6ZXImKTsKLXByb3RlY3Rl
ZDoKLSAgICBKU1JlYWRPbmx5U2V0TGlrZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0JiwgUmVmPFJlYWRPbmx5U2V0TGlrZT4mJik7Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTQzo6Vk0mKTsKLX07Ci0KLWNsYXNzIEpTUmVhZE9ubHlTZXRMaWtlT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJiwgY29uc3QgY2hhcioqKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7Ci19Owot
Ci1pbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29y
bGQmLCBSZWFkT25seVNldExpa2UqKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Jl
YWRPbmx5U2V0TGlrZU93bmVyPiBvd25lcjsKLSAgICByZXR1cm4gJm93bmVyLmdldCgpOwotfQot
Ci1pbmxpbmUgdm9pZCogd3JhcHBlcktleShSZWFkT25seVNldExpa2UqIHdyYXBwYWJsZU9iamVj
dCkKLXsKLSAgICByZXR1cm4gd3JhcHBhYmxlT2JqZWN0OwotfQotCi1KU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWFkT25seVNldExp
a2UmKTsKLWlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWFkT25s
eVNldExpa2UqIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTKGxleGljYWxHbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdCwgKmltcGwpIDogSlNDOjpqc051bGwoKTsgfQotSlNDOjpKU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0Kiwg
UmVmPFJlYWRPbmx5U2V0TGlrZT4mJik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNy
ZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmUHRyPFJlYWRPbmx5U2V0TGlrZT4mJiBpbXBsKSB7
IHJldHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9i
YWxPYmplY3QsIGltcGwucmVsZWFzZU5vbk51bGwoKSkgOiBKU0M6OmpzTnVsbCgpOyB9Ci0KLXRl
bXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxSZWFkT25seVNldExp
a2U+IHsKLSAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1JlYWRPbmx5U2V0TGlrZTsKLSAgICB1
c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gUmVhZE9ubHlTZXRMaWtlKjsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUu
Y3BwCmluZGV4IDQ0NGM2YTNkY2M5NGIwMDY5MTBjMzkwN2NiNWNlM2QwYmRhZjI0NDMuLmJmNDIy
MTZiNDFhZmI4ZGU4ZmUxNGNlYWI4ZjNkYWE4ZmQ5ODdkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIHVzaW5nIEpTU2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Ig
PSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZT47CiAKQEAgLTEwNiw3ICsxMDYsNyBAQCBKU1ZhbHVlIEpTU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KgogICAg
IHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVj
dCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExNiw3ICsxMTYs
NyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9v
bCBzZXRKU1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTU2V0TGlrZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXRMaWtlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE2ZjA4ODIzYWZkMTlkN2YyYzQzZTY4OTU2Mjhk
MDU0ODBiNGQxMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNTZXRMaWtlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDQ0OSArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJl
ZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1NldExpa2UuaCIKLQotI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgotI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgotI2luY2x1
ZGUgIkpTRE9NQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVk
ZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNv
bnZlcnRBbnkuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVkZSAi
SlNET01FeGNlcHRpb25IYW5kbGluZy5oIgotI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCi0j
aW5jbHVkZSAiSlNET01TZXRMaWtlLmgiCi0jaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIK
LSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0J1aWx0aW5OYW1lcy5oPgot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+Ci0jaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSGVhcEFuYWx5emVyLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVzdHJ1Y3RpYmxlT2Jq
ZWN0SGVhcENlbGxUeXBlLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Vic3BhY2VJbmxp
bmVzLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0Zi9Qb2ludGVyUHJl
cGFyYXRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLS8vIEZ1bmN0aW9ucwotCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1NldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExp
a2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25BZGQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25DbGVhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkRl
bGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLQotLy8gQXR0cmli
dXRlcwotCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzU2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTU2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNTZXRMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotCi1jbGFzcyBKU1NldExpa2VQcm90b3R5cGUgZmluYWwgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0g
SlNDOjpKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBKU1NldExpa2VQcm90b3R5cGUqIGNy
ZWF0ZShKU0M6OlZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgICAgIEpTU2V0TGlrZVByb3RvdHlwZSog
cHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1NldExpa2VQcm90b3R5cGU+
KHZtLmhlYXApKSBKU1NldExpa2VQcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
KTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIHJldHVybiBwdHI7
Ci0gICAgfQotCi0gICAgREVDTEFSRV9JTkZPOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxU
eXBlLCBKU0M6OlN1YnNwYWNlQWNjZXNzPgotICAgIHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBz
dWJzcGFjZUZvcihKU0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIFNUQVRJQ19BU1NFUlRfSVNP
X1NVQlNQQUNFX1NIQVJBQkxFKEpTU2V0TGlrZVByb3RvdHlwZSwgQmFzZSk7Ci0gICAgICAgIHJl
dHVybiAmdm0ucGxhaW5PYmplY3RTcGFjZTsKLSAgICB9Ci0gICAgc3RhdGljIEpTQzo6U3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlND
OjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgSlNTZXRMaWtlUHJvdG90eXBlKEpTQzo6Vk0mIHZtLCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBK
U0M6OkpTTm9uRmluYWxPYmplY3Qodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotCi0gICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci19OwotU1RBVElDX0FTU0VSVF9JU09fU1VC
U1BBQ0VfU0hBUkFCTEUoSlNTZXRMaWtlUHJvdG90eXBlLCBKU1NldExpa2VQcm90b3R5cGU6OkJh
c2UpOwotCi11c2luZyBKU1NldExpa2VDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlPEpTU2V0TGlrZT47Ci0KLXRlbXBsYXRlPD4gSlNWYWx1ZSBKU1NldExpa2VD
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0g
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC5mdW5jdGlvblByb3RvdHlwZSgpOwotfQotCi10ZW1wbGF0
ZTw+IHZvaWQgSlNTZXRMaWtlQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9wZXJ0aWVzKFZNJiB2
bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBwdXREaXJlY3Qodm0s
IHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNTZXRMaWtlOjpwcm90b3R5cGUodm0sIGds
b2JhbE9iamVjdCksIEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBKU0M6OlBy
b3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRF
bnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJp
dmlhbFN0cmluZyh2bSwgIlNldExpa2UiX3MpLCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKTsKLSAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwot
fQotCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1NldExpa2VDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiU2V0TGlrZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNTZXRMaWtlQ29uc3RydWN0b3IpIH07Ci0KLS8qIEhhc2ggdGFibGUg
Zm9yIHByb3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNTZXRMaWtl
UHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAgeyAiY29uc3RydWN0b3IiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCBOb0ludHJp
bnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzU2V0TGlrZUNvbnN0cnVjdG9yKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNTZXRMaWtlQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7
ICJzaXplIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRv
bnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5
QXR0cmlidXRlOjpDdXN0b21BY2Nlc3NvciksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNTZXRMaWtlU2l6ZSksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwK
LSAgICB7ICJoYXMiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0
ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25IYXMpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAiZW50cmll
cyIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAia2V5cyIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMpLCAoaW50cHRyX3QpICgwKSB9IH0sCi0gICAgeyAidmFsdWVzIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtIHwgSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UmF3TmF0aXZlRnVuY3Rpb24+KGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKSwgKGlu
dHB0cl90KSAoMCkgfSB9LAotICAgIHsgImZvckVhY2giLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
SlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0gfCBKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxSYXdOYXRp
dmVGdW5jdGlvbj4oanNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKSwgKGludHB0cl90
KSAoMSkgfSB9LAotICAgIHsgImFkZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3Bl
cnR5QXR0cmlidXRlOjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9u
KSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9u
Pihqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAg
ICB7ICJjbGVhciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQ
cm90b3R5cGVGdW5jdGlvbkNsZWFyKSwgKGludHB0cl90KSAoMCkgfSB9LAotICAgIHsgImRlbGV0
ZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51
bSB8IEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFJhd05hdGl2ZUZ1bmN0aW9uPihqc1NldExpa2VQcm90b3R5cGVG
dW5jdGlvbkRlbGV0ZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKLX07Ci0KLWNvbnN0IENsYXNzSW5m
byBKU1NldExpa2VQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlNldExpa2UiLCAmQmFzZTo6c19pbmZv
LCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTU2V0TGlrZVByb3RvdHlw
ZSkgfTsKLQotdm9pZCBKU1NldExpa2VQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkK
LXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcmVpZnlTdGF0aWNQcm9wZXJ0
aWVzKHZtLCBKU1NldExpa2U6OmluZm8oKSwgSlNTZXRMaWtlUHJvdG90eXBlVGFibGVWYWx1ZXMs
ICp0aGlzKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPml0ZXJhdG9yU3lt
Ym9sLCBnZXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLmVudHJp
ZXNQdWJsaWNOYW1lKCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udEVudW0pKTsKLSAgICBKU0NfVE9fU1RSSU5HX1RBR19XSVRIT1VUX1RSQU5TSVRJ
T04oKTsKLX0KLQotY29uc3QgQ2xhc3NJbmZvIEpTU2V0TGlrZTo6c19pbmZvID0geyAiU2V0TGlr
ZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUo
SlNTZXRMaWtlKSB9OwotCi1KU1NldExpa2U6OkpTU2V0TGlrZShTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVmPFNldExpa2U+JiYgaW1wbCkK
LSAgICA6IEpTRE9NV3JhcHBlcjxTZXRMaWtlPihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RG
TW92ZShpbXBsKSkKLXsKLX0KLQotdm9pZCBKU1NldExpa2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2
bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJUKGluaGVyaXRz
KHZtLCBpbmZvKCkpKTsKLQotICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9vZjxBY3Rp
dmVET01PYmplY3QsIFNldExpa2U+Ojp2YWx1ZSwgIkludGVyZmFjZSBpcyBub3QgbWFya2VkIGFz
IFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVudGF0aW9uIGNsYXNzIHN1YmNs
YXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOwotCi19Ci0KLUpTT2JqZWN0KiBKU1NldExpa2U6OmNy
ZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17
Ci0gICAgcmV0dXJuIEpTU2V0TGlrZVByb3RvdHlwZTo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0
LCBKU1NldExpa2VQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgJmdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSk7Ci19Ci0KLUpTT2JqZWN0KiBKU1NldExp
a2U6OnByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17
Ci0gICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1NldExpa2U+KHZtLCBnbG9iYWxPYmplY3Qp
OwotfQotCi1KU1ZhbHVlIEpTU2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBnZXRET01Db25zdHJ1
Y3RvcjxKU1NldExpa2VDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpKTsKLX0KLQotdm9pZCBKU1NldExpa2U6OmRlc3Ryb3koSlND
OjpKU0NlbGwqIGNlbGwpCi17Ci0gICAgSlNTZXRMaWtlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8SlNTZXRMaWtlKj4oY2VsbCk7Ci0gICAgdGhpc09iamVjdC0+SlNTZXRMaWtlOjp+SlNTZXRM
aWtlKCk7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIEpTU2V0TGlrZSogSURMQXR0cmlidXRlPEpT
U2V0TGlrZT46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKLXsKLSAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1NldExp
a2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1NldExpa2UqIElETE9wZXJhdGlv
bjxKU1NldExpa2U+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUmIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1NldExp
a2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQotewotICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1NldExpa2VQcm90b3R5cGUqPih2bSwg
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBl
KSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1NldExpa2U6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKLX0KLQotYm9vbCBzZXRKU1NldExpa2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTU2V0TGlr
ZVByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVO
TElLRUxZKCFwcm90b3R5cGUpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKLSAgICByZXR1cm4gcHJvdG90
eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9yLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Nl
dExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Nl
dExpa2UmIHRoaXNPYmplY3QpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvU2V0TGlrZShsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNT
ZXRMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1NldExpa2U+OjpnZXQ8anNTZXRMaWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
LXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIGlmIChV
TkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVTdGls
bEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsK
LSAgICBhdXRvIGtleSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7
Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25IYXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Y2FsbDxq
c1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiaGFzIik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVu
YW1lIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQot
ewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFS
QU0odGhyb3dTY29wZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEVudHJpZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExp
a2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNTZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKLX0KLQotc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5
c0JvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OkNsYXNz
UGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0o
Y2FsbEZyYW1lKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5c1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwot
fQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25WYWx1ZXNCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Nl
dExpa2U+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzKQotewotICAgIGF1dG8mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvU2V0TGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwotfQotCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInZhbHVlcyIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lLCB0eXBl
bmFtZSBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcykK
LXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUpOwotICAgIGlmIChV
TkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4g
dGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVTdGls
bEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsK
LSAgICBhdXRvIGNhbGxiYWNrID0gY29udmVydDxJRExBbnk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCBhcmd1bWVudDAudmFsdWUoKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJh
Y2spKSkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1NldExpa2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNTZXRM
aWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKLX0KLQotc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkQm9keShK
U0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSog
Y2FsbEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0
ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJh
bWUpOwotICAgIGlmIChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQot
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsK
LSAgICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNr
ZWRBcmd1bWVudCgwKTsKLSAgICBhdXRvIGtleSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEFkZFRv
U2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdU
Rk1vdmUoa2V5KSkpKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25BZGQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNT
ZXRMaWtlPjo6Y2FsbDxqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZEJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYWRkIik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keShKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2Fs
bEZyYW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNTZXRMaWtlPjo6Q2xhc3NQYXJhbWV0ZXIg
Y2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShjYWxsRnJhbWUp
OwotICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwotICAgIGZvcndhcmRDbGVhclRvU2V0TGlrZSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpOwotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCi17Ci0gICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1NldExpa2U+OjpjYWxsPGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0
aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsZWFyIik7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1NldExpa2VQcm90b3R5
cGVGdW5jdGlvbkRlbGV0ZUJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpT
U2V0TGlrZT46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAg
ICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBpZiAoVU5MSUtFTFkoY2FsbEZyYW1lLT5h
cmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50
MCA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBrZXkgPSBjb252
ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgp
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwotICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExBbnk+KGZvcndhcmREZWxldGVUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwotfQotCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzU2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKLXsK
LSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTU2V0TGlrZT46OmNhbGw8anNTZXRMaWtlUHJvdG90
eXBlRnVuY3Rpb25EZWxldGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImRlbGV0ZSIpOwotfQotCi1KU0M6Oklzb1N1YnNwYWNlKiBKU1NldExpa2U6OnN1YnNwYWNlRm9y
SW1wbChKU0M6OlZNJiB2bSkKLXsKLSAgICBhdXRvJiBjbGllbnREYXRhID0gKnN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSk7Ci0gICAgYXV0byYgc3BhY2VzID0gY2xp
ZW50RGF0YS5zdWJzcGFjZXMoKTsKLSAgICBpZiAoYXV0byogc3BhY2UgPSBzcGFjZXMubV9zdWJz
cGFjZUZvclNldExpa2UuZ2V0KCkpCi0gICAgICAgIHJldHVybiBzcGFjZTsKLSAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfYmFzZV9vZl92PEpTQzo6SlNEZXN0cnVjdGlibGVPYmplY3QsIEpTU2V0
TGlrZT4gfHwgIUpTU2V0TGlrZTo6bmVlZHNEZXN0cnVjdGlvbik7Ci0gICAgaWYgY29uc3RleHBy
IChzdGQ6OmlzX2Jhc2Vfb2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1NldExpa2U+
KQotICAgICAgICBzcGFjZXMubV9zdWJzcGFjZUZvclNldExpa2UgPSBtYWtlVW5pcXVlPElzb1N1
YnNwYWNlPiBJU09fU1VCU1BBQ0VfSU5JVCh2bS5oZWFwLCB2bS5kZXN0cnVjdGlibGVPYmplY3RI
ZWFwQ2VsbFR5cGUuZ2V0KCksIEpTU2V0TGlrZSk7Ci0gICAgZWxzZQotICAgICAgICBzcGFjZXMu
bV9zdWJzcGFjZUZvclNldExpa2UgPSBtYWtlVW5pcXVlPElzb1N1YnNwYWNlPiBJU09fU1VCU1BB
Q0VfSU5JVCh2bS5oZWFwLCB2bS5jZWxsSGVhcENlbGxUeXBlLmdldCgpLCBKU1NldExpa2UpOwot
ICAgIGF1dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JTZXRMaWtlLmdldCgpOwotSUdO
T1JFX1dBUk5JTkdTX0JFR0lOKCJ1bnJlYWNoYWJsZS1jb2RlIikKLUlHTk9SRV9XQVJOSU5HU19C
RUdJTigidGF1dG9sb2dpY2FsLWNvbXBhcmUiKQotICAgIGlmICgmSlNTZXRMaWtlOjp2aXNpdE91
dHB1dENvbnN0cmFpbnRzICE9ICZKU0M6OkpTQ2VsbDo6dmlzaXRPdXRwdXRDb25zdHJhaW50cykK
LSAgICAgICAgY2xpZW50RGF0YS5vdXRwdXRDb25zdHJhaW50U3BhY2VzKCkuYXBwZW5kKHNwYWNl
KTsKLUlHTk9SRV9XQVJOSU5HU19FTkQKLUlHTk9SRV9XQVJOSU5HU19FTkQKLSAgICByZXR1cm4g
c3BhY2U7Ci19Ci0KLXZvaWQgSlNTZXRMaWtlOjphbmFseXplSGVhcChKU0NlbGwqIGNlbGwsIEhl
YXBBbmFseXplciYgYW5hbHl6ZXIpCi17Ci0gICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1NldExpa2UqPihjZWxsKTsKLSAgICBhbmFseXplci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKLSAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBhbmFseXplci5zZXRMYWJlbEZvckNlbGwoY2Vs
bCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKSk7Ci0gICAgQmFzZTo6YW5hbHl6ZUhlYXAoY2VsbCwgYW5hbHl6ZXIpOwotfQotCi1i
b29sIEpTU2V0TGlrZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBjb25z
dCBjaGFyKiogcmVhc29uKQotewotICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwotICAgIFVOVVNF
RF9QQVJBTSh2aXNpdG9yKTsKLSAgICBVTlVTRURfUEFSQU0ocmVhc29uKTsKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLXZvaWQgSlNTZXRMaWtlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQotewotICAgIGF1dG8qIGpzU2V0TGlr
ZSA9IHN0YXRpY19jYXN0PEpTU2V0TGlrZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKLSAg
ICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsK
LSAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzU2V0TGlrZS0+d3JhcHBlZCgpLCBqc1NldExp
a2UpOwotfQotCi0jaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotI2lmIFBMQVRGT1JNKFdJ
TikKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NDgzKQotZXh0ZXJuICJDIiB7IGV4dGVybiB2
b2lkICgqY29uc3QgX19pZGVudGlmaWVyKCI/P183U2V0TGlrZUBXZWJDb3JlQEA2QkAiKVtdKSgp
OyB9Ci0jZWxzZQotZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkKiBfWlRWTjdXZWJDb3JlN1NldExp
a2VFW107IH0KLSNlbmRpZgotI2VuZGlmCi0KLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVk
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBS
ZWY8U2V0TGlrZT4mJiBpbXBsKQotewotCi0jaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQot
ICAgIGNvbnN0IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBnZXRWVGFibGVQb2ludGVyKGlt
cGwucHRyKCkpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBv
aW50ZXIgPSBfX2lkZW50aWZpZXIoIj8/XzdTZXRMaWtlQFdlYkNvcmVAQDZCQCIpOwotI2Vsc2UK
LSAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43V2ViQ29yZTdTZXRMaWtl
RVsyXTsKLSNlbmRpZgotCi0gICAgLy8gSWYgdGhpcyBmYWlscyBTZXRMaWtlIGRvZXMgbm90IGhh
dmUgYSB2dGFibGUsIHNvIHlvdSBuZWVkIHRvIGFkZCB0aGUKLSAgICAvLyBJbXBsZW1lbnRhdGlv
bkxhY2tzVlRhYmxlIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIGRlZmluaXRpb24KLSAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9seW1vcnBoaWM8U2V0TGlrZT46OnZhbHVlLCAiU2V0TGlr
ZSBpcyBub3QgcG9seW1vcnBoaWMiKTsKLQotICAgIC8vIElmIHlvdSBoaXQgdGhpcyBhc3NlcnRp
b24geW91IGVpdGhlciBoYXZlIGEgdXNlIGFmdGVyIGZyZWUgYnVnLCBvcgotICAgIC8vIFNldExp
a2UgaGFzIHN1YmNsYXNzZXMuIElmIFNldExpa2UgaGFzIHN1YmNsYXNzZXMgdGhhdCBnZXQgcGFz
c2VkCi0gICAgLy8gdG8gdG9KUygpIHdlIGN1cnJlbnRseSByZXF1aXJlIFNldExpa2UgeW91IHRv
IG9wdCBvdXQgb2YgYmluZGluZyBoYXJkZW5pbmcKLSAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBW
VGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9u
Ci0gICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIpOwotI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8U2V0TGlrZT4oZ2xv
YmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKLX0KLQotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU2V0TGlrZSYgaW1wbCkKLXsKLSAgICByZXR1cm4gd3JhcChsZXhpY2FsR2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGltcGwpOwotfQotCi1TZXRMaWtlKiBKU1NldExpa2U6
OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmIChh
dXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1NldExpa2UqPih2bSwgdmFsdWUpKQotICAg
ICAgICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0K
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTU2V0TGlrZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
U2V0TGlrZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWVhZmI2NGMyZGJlNjJl
ZjNlM2FmNjBlYTQ1ZjY1MGI0ZDJmZDA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1NldExpa2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLS8qCi0gICAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgotICAgIFRoaXMg
ZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBN
T0RJRlkhCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKLSNp
bmNsdWRlICJTZXRMaWtlLmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNTZXRMaWtlIDogcHVibGljIEpTRE9NV3JhcHBl
cjxTZXRMaWtlPiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxTZXRM
aWtlPjsKLSAgICBzdGF0aWMgSlNTZXRMaWtlKiBjcmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmPFNldExpa2U+JiYgaW1w
bCkKLSAgICB7Ci0gICAgICAgIEpTU2V0TGlrZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFs
bG9jYXRlQ2VsbDxKU1NldExpa2U+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNTZXRMaWtl
KHN0cnVjdHVyZSwgKmdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Ci0gICAgICAgIHB0ci0+
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKLSAgICAgICAgcmV0dXJuIHB0cjsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBwcm90
b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0gICAgc3RhdGljIFNldExpa2Uq
IHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0
cm95KEpTQzo6SlNDZWxsKik7Ci0KLSAgICBERUNMQVJFX0lORk87Ci0KLSAgICBzdGF0aWMgSlND
OjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90
eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZv
KCksIEpTQzo6Tm9uQXJyYXkpOwotICAgIH0KLQotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0
Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSwgSlNDOjpTdWJzcGFjZUFjY2VzcyBtb2RlPiBzdGF0aWMgSlNDOjpJ
c29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlNDOjpWTSYgdm0pCi0gICAgewotICAgICAgICBpZiBj
b25zdGV4cHIgKG1vZGUgPT0gSlNDOjpTdWJzcGFjZUFjY2Vzczo6Q29uY3VycmVudGx5KQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBzdWJzcGFjZUZvckltcGwo
dm0pOwotICAgIH0KLSAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBs
KEpTQzo6Vk0mIHZtKTsKLSAgICBzdGF0aWMgdm9pZCBhbmFseXplSGVhcChKU0NlbGwqLCBKU0M6
OkhlYXBBbmFseXplciYpOwotcHJvdGVjdGVkOgotICAgIEpTU2V0TGlrZShKU0M6OlN0cnVjdHVy
ZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFNldExpa2U+JiYpOwotCi0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0M6OlZNJik7Ci19OwotCi1jbGFzcyBKU1NldExpa2VPd25lciA6IHB1Ymxp
YyBKU0M6OldlYWtIYW5kbGVPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNv
bnRleHQsIEpTQzo6U2xvdFZpc2l0b3ImLCBjb25zdCBjaGFyKiopOwotICAgIHZpcnR1YWwgdm9p
ZCBmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKLX07
Ci0KLWlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJX
b3JsZCYsIFNldExpa2UqKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1NldExpa2VP
d25lcj4gb3duZXI7Ci0gICAgcmV0dXJuICZvd25lci5nZXQoKTsKLX0KLQotaW5saW5lIHZvaWQq
IHdyYXBwZXJLZXkoU2V0TGlrZSogd3JhcHBhYmxlT2JqZWN0KQotewotICAgIHJldHVybiB3cmFw
cGFibGVPYmplY3Q7Ci19Ci0KLUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0RPTUdsb2JhbE9iamVjdCosIFNldExpa2UmKTsKLWlubGluZSBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTZXRMaWtlKiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsICppbXBsKSA6IEpTQzo6anNOdWxsKCk7
IH0KLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0RPTUdsb2JhbE9iamVjdCosIFJlZjxTZXRMaWtlPiYmKTsKLWlubGluZSBKU0M6OkpTVmFsdWUg
dG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWZQdHI8U2V0TGlrZT4mJiBpbXBs
KSB7IHJldHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChsZXhpY2FsR2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QsIGltcGwucmVsZWFzZU5vbk51bGwoKSkgOiBKU0M6OmpzTnVsbCgpOyB9Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxTZXRMaWtlPiB7
Ci0gICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNTZXRMaWtlOwotICAgIHVzaW5nIFRvV3JhcHBl
ZFJldHVyblR5cGUgPSBTZXRMaWtlKjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RB
Y3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZkZmM0MmZmZGNmNDg0NDMzMWFlOTVkYjk3NDE3OTNjYzljZDc2NjMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw0MzEgKzAsMCBAQAotLyoKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2Vi
S2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRl
ZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKLQotICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAg
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmgiCi0KLSNpbmNsdWRl
ICJBY3RpdmVET01PYmplY3QuaCIKLSNpbmNsdWRlICJDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1
ZS5oIgotI2luY2x1ZGUgIkRPTUlzb1N1YnNwYWNlcy5oIgotI2luY2x1ZGUgIkpTRE9NQXR0cmli
dXRlLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5n
U2VjdXJpdHkuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5o
IgotI2luY2x1ZGUgIkpTRE9NQ29udmVydEludGVyZmFjZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29u
dmVydE51bWJlcnMuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVk
ZSAiSlNET01FeGNlcHRpb25IYW5kbGluZy5oIgotI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgi
Ci0jaW5jbHVkZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlICJKU05vZGUuaCIKLSNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViQ29yZUpTQ2xp
ZW50RGF0YS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0Z1bmN0aW9uUHJvdG90eXBlLmg+
Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGVhcEFuYWx5emVyLmg+Ci0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRGVz
dHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
U3Vic3BhY2VJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9Qb2ludGVyUHJlcGFyYXRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1VSTC5oPgotCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLS8vIEZ1bmN0aW9ucwotCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJv
dG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEFj
dGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotCi0vLyBBdHRyaWJ1dGVz
Ci0KLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLQotY2xhc3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTQzo6
SlNOb25GaW5hbE9iamVjdDsKLSAgICBzdGF0aWMgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90
eXBlKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgewotICAgICAgICBKU1Rlc3RBY3RpdmVE
T01PYmplY3RQcm90b3R5cGUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8
SlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlPih2bS5oZWFwKSkgSlNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7Ci0gICAgICAgIHB0
ci0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICByZXR1cm4gcHRyOwotICAgIH0KLQotICAg
IERFQ0xBUkVfSU5GTzsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgSlNDOjpTdWJz
cGFjZUFjY2Vzcz4KLSAgICBzdGF0aWMgSlNDOjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoSlND
OjpWTSYgdm0pCi0gICAgewotICAgICAgICBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFS
QUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUsIEJhc2UpOwotICAgICAgICByZXR1
cm4gJnZtLnBsYWluT2JqZWN0U3BhY2U7Ci0gICAgfQotICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVy
ZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6
VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAg
fQotCi1wcml2YXRlOgotICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZShKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0g
ICAgICAgIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAg
IH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotfTsKLVNUQVRJQ19BU1NF
UlRfSVNPX1NVQlNQQUNFX1NIQVJBQkxFKEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSwg
SlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpCYXNlKTsKLQotdXNpbmcgSlNUZXN0QWN0
aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZTxKU1Rlc3RBY3RpdmVET01PYmplY3Q+OwotCi0vKiBIYXNoIHRhYmxlICovCi0KLXN0YXRpYyBj
b25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RBY3RpdmVET01PYmplY3RUYWJsZUlu
ZGV4WzJdID0gewotICAgIHsgMCwgLTEgfSwKLSAgICB7IC0xLCAtMSB9LAotfTsKLQotCi1zdGF0
aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0QWN0aXZlRE9NT2JqZWN0VGFibGVWYWx1ZXNb
XSA9Ci17Ci0gICAgeyAiZXhjaXRpbmdBdHRyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6
UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6Q3Vz
dG9tQWNjZXNzb3IgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpET01BdHRyaWJ1dGUpLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0ciksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSwKLX07Ci0KLXN0YXRp
YyBjb25zdCBIYXNoVGFibGUgSlNUZXN0QWN0aXZlRE9NT2JqZWN0VGFibGUgPSB7IDEsIDEsIHRy
dWUsIEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6aW5mbygpLCBKU1Rlc3RBY3RpdmVET01PYmplY3RU
YWJsZVZhbHVlcywgSlNUZXN0QWN0aXZlRE9NT2JqZWN0VGFibGVJbmRleCB9OwotdGVtcGxhdGU8
PiBKU1ZhbHVlIEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICByZXR1cm4gZ2xvYmFsT2JqZWN0LmZ1
bmN0aW9uUHJvdG90eXBlKCk7Ci19Ci0KLXRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RBY3RpdmVET01P
YmplY3RDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnByb3RvdHlwZSh2bSwgZ2xv
YmFsT2JqZWN0KSwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IEpTQzo6UHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVu
dW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFtZSwganNOb250cml2
aWFsU3RyaW5nKHZtLCAiVGVzdEFjdGl2ZURPTU9iamVjdCJfcyksIEpTQzo6UHJvcGVydHlBdHRy
aWJ1dGU6OlJlYWRPbmx5IHwgSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pOwotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgSlND
OjpQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSk7Ci19Ci0KLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEFjdGl2ZURP
TU9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0QWN0aXZlRE9NT2JqZWN0IiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RB
Y3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcikgfTsKLQotLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90
eXBlICovCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RBY3RpdmVET01PYmpl
Y3RQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJjb25zdHJ1Y3RvciIsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSksIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RBY3RpdmVET01PYmpl
Y3RDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgImV4Y2l0aW5nRnVuY3Rpb24iLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0dHJpYnV0ZTo6RnVuY3Rpb24pLCBOb0ludHJpbnNp
YywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UmF3TmF0aXZlRnVuY3Rpb24+KGpzVGVzdEFjdGl2
ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbiksIChpbnRwdHJfdCkg
KDEpIH0gfSwKLSAgICB7ICJwb3N0TWVzc2FnZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6
OlByb3BlcnR5QXR0cmlidXRlOjpGdW5jdGlvbiksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClz
dGF0aWNfY2FzdDxSYXdOYXRpdmVGdW5jdGlvbj4oanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90
eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJvdmVy
bG9hZGVkTWV0aG9kIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1
dGU6OkZ1bmN0aW9uKSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFJhd05h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvbk92ZXJs
b2FkZWRNZXRob2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCi19OwotCi1jb25zdCBDbGFzc0luZm8g
SlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0QWN0aXZlRE9N
T2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUpIH07Ci0KLXZvaWQgSlNUZXN0QWN0
aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0pCi17Ci0gICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0OjppbmZvKCksIEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlw
ZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci0gICAgSlNDX1RPX1NUUklOR19UQUdfV0lUSE9VVF9UUkFO
U0lUSU9OKCk7Ci19Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnNf
aW5mbyA9IHsgIlRlc3RBY3RpdmVET01PYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmSlNUZXN0QWN0
aXZlRE9NT2JqZWN0VGFibGUsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0QWN0
aXZlRE9NT2JqZWN0KSB9OwotCi1KU1Rlc3RBY3RpdmVET01PYmplY3Q6OkpTVGVzdEFjdGl2ZURP
TU9iamVjdChTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKLSAgICA6IEpTRE9NV3JhcHBl
cjxUZXN0QWN0aXZlRE9NT2JqZWN0PihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShp
bXBsKSkKLXsKLX0KLQotdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJUKGlu
aGVyaXRzKHZtLCBpbmZvKCkpKTsKLQotICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfYmFzZV9v
ZjxBY3RpdmVET01PYmplY3QsIFRlc3RBY3RpdmVET01PYmplY3Q+Ojp2YWx1ZSwgIkludGVyZmFj
ZSBpcyBub3QgbWFya2VkIGFzIFtBY3RpdmVET01PYmplY3RdIGV2ZW4gdGhvdWdoIGltcGxlbWVu
dGF0aW9uIGNsYXNzIHN1YmNsYXNzZXMgQWN0aXZlRE9NT2JqZWN0LiIpOwotCi19Ci0KLUpTT2Jq
ZWN0KiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9N
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTVGVzdEFjdGl2ZURP
TU9iamVjdFByb3RvdHlwZTo6Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCBKU1Rlc3RBY3RpdmVE
T01PYmplY3RQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgJmdsb2JhbE9iamVjdCwgZ2xv
YmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSk7Ci19Ci0KLUpTT2JqZWN0KiBKU1Rlc3RBY3Rp
dmVET01PYmplY3Q6OnByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxP
YmplY3QpCi17Ci0gICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q+KHZtLCBnbG9iYWxPYmplY3QpOwotfQotCi1KU1ZhbHVlIEpTVGVzdEFjdGl2ZURPTU9iamVj
dDo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotewotICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1Rlc3RBY3RpdmVET01PYmpl
Y3RDb25zdHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9i
YWxPYmplY3QpKTsKLX0KLQotdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmRlc3Ryb3koSlND
OjpKU0NlbGwqIGNlbGwpCi17Ci0gICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiB0aGlzT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oY2VsbCk7Ci0gICAgdGhpc09i
amVjdC0+SlNUZXN0QWN0aXZlRE9NT2JqZWN0Ojp+SlNUZXN0QWN0aXZlRE9NT2JqZWN0KCk7Ci19
Ci0KLXRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogSURMQXR0cmlidXRl
PEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKLXsKLSAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotfQotCi10ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RBY3RpdmVET01PYmplY3QqIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01P
YmplY3Q+OjpjYXN0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUmIGNhbGxGcmFtZSkKLXsKLSAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVE
T01PYmplY3QqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RB
Y3RpdmVET01PYmplY3RQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwotICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsK
LX0KLQotYm9vbCBzZXRKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2
ZURPTU9iamVjdFByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0g
ICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICB9Ci0gICAgLy8gU2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKLSAgICByZXR1
cm4gcHJvdG90eXBlLT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmNvbnN0cnVjdG9y
LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVGVzdEFjdGl2ZURPTU9iamVjdCYgdGhpc09iamVj
dCkKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpOwot
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIGJvb2wg
c2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9E
T01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBlZCgpLndpbmRv
dygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpOwotICAgIEVYQ0VQVElPTl9BU1NFUlRfVU5VU0VEKHRo
cm93U2NvcGUsICF0aHJvd1Njb3BlLmV4Y2VwdGlvbigpIHx8ICFzaG91bGRBbGxvd0FjY2Vzcyk7
Ci0gICAgaWYgKCFzaG91bGRBbGxvd0FjY2VzcykKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwotICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmV4Y2l0aW5nQXR0cigpKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQot
ewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Z2V0PGpz
VGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVo
YXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImV4Y2l0aW5n
QXR0ciIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0
aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25FeGNpdGluZ0Z1bmN0aW9uQm9keShKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShj
YWxsRnJhbWUpOwotICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6
OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVk
VGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpOwotICAgIEVYQ0VQ
VElPTl9BU1NFUlRfVU5VU0VEKHRocm93U2NvcGUsICF0aHJvd1Njb3BlLmV4Y2VwdGlvbigpIHx8
ICFzaG91bGRBbGxvd0FjY2Vzcyk7Ci0gICAgaWYgKCFzaG91bGRBbGxvd0FjY2VzcykKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBhdXRvJiBpbXBs
ID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIGlmIChVTkxJS0VMWShjYWxsRnJhbWUtPmFy
Z3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVTdGlsbEFsaXZlU2NvcGUgYXJndW1lbnQw
ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgwKTsKLSAgICBhdXRvIG5leHRDaGlsZCA9
IGNvbnZlcnQ8SURMSW50ZXJmYWNlPE5vZGU+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1l
bnQwLnZhbHVlKCksIFtdKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6VGhyb3dTY29wZSYgc2NvcGUpIHsgdGhyb3dBcmd1bWVudFR5cGVFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzY29wZSwgMCwgIm5leHRDaGlsZCIsICJUZXN0QWN0aXZlRE9NT2JqZWN0
IiwgImV4Y2l0aW5nRnVuY3Rpb24iLCAiTm9kZSIpOyB9KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHRocm93U2NvcGUucmVsZWFz
ZSgpOwotICAgIGltcGwuZXhjaXRpbmdGdW5jdGlvbigqbmV4dENoaWxkKTsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdG
dW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmpl
Y3Q+OjpjYWxsPGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdG
dW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZXhjaXRpbmdG
dW5jdGlvbiIpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZUJvZHkoSlNDOjpKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFt
ZSwgdHlwZW5hbWUgSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OkNsYXNzUGFy
YW1ldGVyIGNhc3RlZFRoaXMpCi17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2Fs
bEZyYW1lKTsKLSAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIGlm
IChVTkxJS0VMWShjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5v
dEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICBFbnN1cmVT
dGlsbEFsaXZlU2NvcGUgYXJndW1lbnQwID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KTsKLSAgICBhdXRvIG1lc3NhZ2UgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9i
YWxPYmplY3QsIGFyZ3VtZW50MC52YWx1ZSgpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRo
cm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAgIHRocm93U2NvcGUucmVsZWFzZSgpOwot
ICAgIGltcGwucG9zdE1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
LXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OmNhbGw8
anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZUJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAicG9zdE1lc3NhZ2UiKTsKLX0KLQotc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDFCb2R5KEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUsIHR5cGVuYW1lIElE
TE9wZXJhdGlvbjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzKQotewotICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
LSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBVTlVT
RURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGNhbGxGcmFtZSk7Ci0gICAg
Q3VzdG9tRWxlbWVudFJlYWN0aW9uU3RhY2sgY3VzdG9tRWxlbWVudFJlYWN0aW9uU3RhY2soKmxl
eGljYWxHbG9iYWxPYmplY3QpOwotICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVk
KCk7Ci0gICAgRW5zdXJlU3RpbGxBbGl2ZVNjb3BlIGFyZ3VtZW50MCA9IGNhbGxGcmFtZS0+dW5j
aGVja2VkQXJndW1lbnQoMCk7Ci0gICAgYXV0byBwYXJhbSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5n
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgYXJndW1lbnQwLnZhbHVlKCkpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgdGhyb3dTY29w
ZS5yZWxlYXNlKCk7Ci0gICAgaW1wbC5vdmVybG9hZGVkTWV0aG9kKFdURk1vdmUocGFyYW0pKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi1zdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMkJvZHkoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVjdD46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMp
Ci17Ci0gICAgYXV0byYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwotICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFVOVVNFRF9Q
QVJBTSh0aHJvd1Njb3BlKTsKLSAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKLSAgICBhdXRv
JiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIEVuc3VyZVN0aWxsQWxpdmVTY29w
ZSBhcmd1bWVudDAgPSBjYWxsRnJhbWUtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIGF1dG8g
cGFyYW0xID0gY29udmVydDxJRExJbnRlcmZhY2U8Tm9kZT4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCBhcmd1bWVudDAudmFsdWUoKSwgW10oSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSkgeyB0aHJvd0FyZ3VtZW50VHlwZUVycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAwLCAicGFyYW0xIiwgIlRlc3RBY3RpdmVET01P
YmplY3QiLCAib3ZlcmxvYWRlZE1ldGhvZCIsICJOb2RlIik7IH0pOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgRW5zdXJlU3RpbGxB
bGl2ZVNjb3BlIGFyZ3VtZW50MSA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoMSk7Ci0g
ICAgYXV0byBwYXJhbTIgPSBjb252ZXJ0PElETEludGVyZmFjZTxOb2RlPj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIGFyZ3VtZW50MS52YWx1ZSgpLCBbXShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXJndW1lbnRU
eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIDEsICJwYXJhbTIiLCAiVGVzdEFj
dGl2ZURPTU9iamVjdCIsICJvdmVybG9hZGVkTWV0aG9kIiwgIk5vZGUiKTsgfSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKLSAgICB0aHJv
d1Njb3BlLnJlbGVhc2UoKTsKLSAgICBpbXBsLm92ZXJsb2FkZWRNZXRob2QoKnBhcmFtMSwgKnBh
cmFtMik7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQot
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdFBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZE92ZXJsb2FkRGlzcGF0Y2hlcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZy
YW1lLCB0eXBlbmFtZSBJRExPcGVyYXRpb248SlNUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6Q2xhc3NQ
YXJhbWV0ZXIgY2FzdGVkVGhpcykKLXsKLSAgICBhdXRvJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIFVOVVNFRF9QQVJBTShj
YWxsRnJhbWUpOwotICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6
OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVk
VGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpOwotICAgIEVYQ0VQ
VElPTl9BU1NFUlRfVU5VU0VEKHRocm93U2NvcGUsICF0aHJvd1Njb3BlLmV4Y2VwdGlvbigpIHx8
ICFzaG91bGRBbGxvd0FjY2Vzcyk7Ci0gICAgaWYgKCFzaG91bGRBbGxvd0FjY2VzcykKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBzaXplX3QgYXJn
c0NvdW50ID0gc3RkOjptaW48c2l6ZV90PigyLCBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSk7
Ci0gICAgaWYgKGFyZ3NDb3VudCA9PSAxKSB7Ci0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAoanNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZGVkTWV0aG9kMUJvZHkobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBjYXN0ZWRUaGlz
KSkpOwotICAgIH0KLSAgICBpZiAoYXJnc0NvdW50ID09IDIpIHsKLSAgICAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIChqc1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QyQm9keShsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUs
IGNhc3RlZFRoaXMpKSk7Ci0gICAgfQotICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dW
TUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEFjdGl2ZURPTU9iamVj
dD46OmNhbGw8anNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVk
TWV0aG9kT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm92ZXJsb2FkZWRNZXRob2QiKTsKLX0KLQotSlNDOjpJc29TdWJzcGFjZSogSlNUZXN0QWN0
aXZlRE9NT2JqZWN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCi17Ci0gICAgYXV0byYg
Y2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEp
OwotICAgIGF1dG8mIHNwYWNlcyA9IGNsaWVudERhdGEuc3Vic3BhY2VzKCk7Ci0gICAgaWYgKGF1
dG8qIHNwYWNlID0gc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0QWN0aXZlRE9NT2JqZWN0LmdldCgp
KQotICAgICAgICByZXR1cm4gc3BhY2U7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Jhc2Vf
b2ZfdjxKU0M6OkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LCBKU1Rlc3RBY3RpdmVET01PYmplY3Q+IHx8
ICFKU1Rlc3RBY3RpdmVET01PYmplY3Q6Om5lZWRzRGVzdHJ1Y3Rpb24pOwotICAgIGlmIGNvbnN0
ZXhwciAoc3RkOjppc19iYXNlX29mX3Y8SlNDOjpKU0Rlc3RydWN0aWJsZU9iamVjdCwgSlNUZXN0
QWN0aXZlRE9NT2JqZWN0PikKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0QWN0aXZl
RE9NT2JqZWN0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lOSVQodm0u
aGVhcCwgdm0uZGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmdldCgpLCBKU1Rlc3RBY3Rp
dmVET01PYmplY3QpOwotICAgIGVsc2UKLSAgICAgICAgc3BhY2VzLm1fc3Vic3BhY2VGb3JUZXN0
QWN0aXZlRE9NT2JqZWN0ID0gbWFrZVVuaXF1ZTxJc29TdWJzcGFjZT4gSVNPX1NVQlNQQUNFX0lO
SVQodm0uaGVhcCwgdm0uY2VsbEhlYXBDZWxsVHlwZS5nZXQoKSwgSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0KTsKLSAgICBhdXRvKiBzcGFjZSA9IHNwYWNlcy5tX3N1YnNwYWNlRm9yVGVzdEFjdGl2ZURP
TU9iamVjdC5nZXQoKTsKLUlHTk9SRV9XQVJOSU5HU19CRUdJTigidW5yZWFjaGFibGUtY29kZSIp
Ci1JR05PUkVfV0FSTklOR1NfQkVHSU4oInRhdXRvbG9naWNhbC1jb21wYXJlIikKLSAgICBpZiAo
JkpTVGVzdEFjdGl2ZURPTU9iamVjdDo6dmlzaXRPdXRwdXRDb25zdHJhaW50cyAhPSAmSlNDOjpK
U0NlbGw6OnZpc2l0T3V0cHV0Q29uc3RyYWludHMpCi0gICAgICAgIGNsaWVudERhdGEub3V0cHV0
Q29uc3RyYWludFNwYWNlcygpLmFwcGVuZChzcGFjZSk7Ci1JR05PUkVfV0FSTklOR1NfRU5ECi1J
R05PUkVfV0FSTklOR1NfRU5ECi0gICAgcmV0dXJuIHNwYWNlOwotfQotCi12b2lkIEpTVGVzdEFj
dGl2ZURPTU9iamVjdDo6YW5hbHl6ZUhlYXAoSlNDZWxsKiBjZWxsLCBIZWFwQW5hbHl6ZXImIGFu
YWx5emVyKQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0QWN0aXZlRE9N
T2JqZWN0Kj4oY2VsbCk7Ci0gICAgYW5hbHl6ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYW5hbHl6ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
ICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkpOwotICAgIEJhc2U6OmFuYWx5emVIZWFwKGNlbGwsIGFuYWx5emVyKTsKLX0KLQotYm9v
bCBKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlz
aXRvciwgY29uc3QgY2hhcioqIHJlYXNvbikKLXsKLSAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsK
LSAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7Ci0gICAgVU5VU0VEX1BBUkFNKHJlYXNvbik7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyOjpm
aW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkK
LXsKLSAgICBhdXRvKiBqc1Rlc3RBY3RpdmVET01PYmplY3QgPSBzdGF0aWNfY2FzdDxKU1Rlc3RB
Y3RpdmVET01PYmplY3QqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7Ci0gICAgYXV0byYgd29y
bGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7Ci0gICAgdW5jYWNo
ZVdyYXBwZXIod29ybGQsICZqc1Rlc3RBY3RpdmVET01PYmplY3QtPndyYXBwZWQoKSwganNUZXN0
QWN0aXZlRE9NT2JqZWN0KTsKLX0KLQotI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSNp
ZiBQTEFURk9STShXSU4pCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDQ4MykKLWV4dGVybiAi
QyIgeyBleHRlcm4gdm9pZCAoKmNvbnN0IF9faWRlbnRpZmllcigiPz9fN1Rlc3RBY3RpdmVET01P
YmplY3RAV2ViQ29yZUBANkJAIilbXSkoKTsgfQotI2Vsc2UKLWV4dGVybiAiQyIgeyBleHRlcm4g
dm9pZCogX1pUVk43V2ViQ29yZTE5VGVzdEFjdGl2ZURPTU9iamVjdEVbXTsgfQotI2VuZGlmCi0j
ZW5kaWYKLQotSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0QWN0aXZlRE9NT2Jq
ZWN0PiYmIGltcGwpCi17Ci0KLSNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgY29u
c3Qgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IGdldFZUYWJsZVBvaW50ZXIoaW1wbC5wdHIo
KSk7Ci0jaWYgUExBVEZPUk0oV0lOKQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9
IF9faWRlbnRpZmllcigiPz9fN1Rlc3RBY3RpdmVET01PYmplY3RAV2ViQ29yZUBANkJAIik7Ci0j
ZWxzZQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9ICZfWlRWTjdXZWJDb3JlMTlU
ZXN0QWN0aXZlRE9NT2JqZWN0RVsyXTsKLSNlbmRpZgotCi0gICAgLy8gSWYgdGhpcyBmYWlscyBU
ZXN0QWN0aXZlRE9NT2JqZWN0IGRvZXMgbm90IGhhdmUgYSB2dGFibGUsIHNvIHlvdSBuZWVkIHRv
IGFkZCB0aGUKLSAgICAvLyBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlIGF0dHJpYnV0ZSB0byB0
aGUgaW50ZXJmYWNlIGRlZmluaXRpb24KLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9seW1v
cnBoaWM8VGVzdEFjdGl2ZURPTU9iamVjdD46OnZhbHVlLCAiVGVzdEFjdGl2ZURPTU9iamVjdCBp
cyBub3QgcG9seW1vcnBoaWMiKTsKLQotICAgIC8vIElmIHlvdSBoaXQgdGhpcyBhc3NlcnRpb24g
eW91IGVpdGhlciBoYXZlIGEgdXNlIGFmdGVyIGZyZWUgYnVnLCBvcgotICAgIC8vIFRlc3RBY3Rp
dmVET01PYmplY3QgaGFzIHN1YmNsYXNzZXMuIElmIFRlc3RBY3RpdmVET01PYmplY3QgaGFzIHN1
YmNsYXNzZXMgdGhhdCBnZXQgcGFzc2VkCi0gICAgLy8gdG8gdG9KUygpIHdlIGN1cnJlbnRseSBy
ZXF1aXJlIFRlc3RBY3RpdmVET01PYmplY3QgeW91IHRvIG9wdCBvdXQgb2YgYmluZGluZyBoYXJk
ZW5pbmcKLSAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0
ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCi0gICAgUkVMRUFTRV9BU1NFUlQoYWN0
dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwotI2VuZGlmCi0gICAg
cmV0dXJuIGNyZWF0ZVdyYXBwZXI8VGVzdEFjdGl2ZURPTU9iamVjdD4oZ2xvYmFsT2JqZWN0LCBX
VEZNb3ZlKGltcGwpKTsKLX0KLQotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
VGVzdEFjdGl2ZURPTU9iamVjdCYgaW1wbCkKLXsKLSAgICByZXR1cm4gd3JhcChsZXhpY2FsR2xv
YmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIGltcGwpOwotfQotCi1UZXN0QWN0aXZlRE9NT2JqZWN0
KiBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHZhbHVlKQotewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RBY3RpdmVET01PYmplY3QqPih2bSwgdmFsdWUpKQotICAgICAgICByZXR1cm4gJndyYXBwZXIt
PndyYXBwZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTc1MjQxOWU0ZWFm
ZWFmOWVhMGUxM2M2MTQwZGMyZDdlNzVlYThkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAK
LS8qCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9q
ZWN0LgotICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGlu
Z3MucGwuIERPIE5PVCBNT0RJRlkhCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJKU0RP
TVdyYXBwZXIuaCIKLSNpbmNsdWRlICJUZXN0QWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0IDogcHVibGljIEpTRE9NV3JhcHBlcjxUZXN0QWN0aXZlRE9NT2Jq
ZWN0PiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxUZXN0QWN0aXZl
RE9NT2JqZWN0PjsKLSAgICBzdGF0aWMgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBjcmVhdGUoSlND
OjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
UmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYgaW1wbCkKLSAgICB7Ci0gICAgICAgIEpTVGVzdEFj
dGl2ZURPTU9iamVjdCogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rl
c3RBY3RpdmVET01PYmplY3Q+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0QWN0aXZl
RE9NT2JqZWN0KHN0cnVjdHVyZSwgKmdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Ci0gICAg
ICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKLSAgICAgICAgcmV0
dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90
eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0gICAgc3RhdGlj
IFRlc3RBY3RpdmVET01PYmplY3QqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsK
LSAgICBzdGF0aWMgdm9pZCBkb1B1dFByb3BlcnR5U2VjdXJpdHlDaGVjayhKU0M6OkpTT2JqZWN0
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlB1dFByb3Bl
cnR5U2xvdCYpOwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKLQotICAg
IERFQ0xBUkVfSU5GTzsKLQotICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6
OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSwgSlNDOjpOb25BcnJheSk7Ci0gICAg
fQotCi0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lLCBKU0M6OlN1
YnNwYWNlQWNjZXNzIG1vZGU+IHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihK
U0M6OlZNJiB2bSkKLSAgICB7Ci0gICAgICAgIGlmIGNvbnN0ZXhwciAobW9kZSA9PSBKU0M6OlN1
YnNwYWNlQWNjZXNzOjpDb25jdXJyZW50bHkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICAgICAgcmV0dXJuIHN1YnNwYWNlRm9ySW1wbCh2bSk7Ci0gICAgfQotICAgIHN0YXRpYyBK
U0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pOwotICAgIHN0YXRp
YyB2b2lkIGFuYWx5emVIZWFwKEpTQ2VsbCosIEpTQzo6SGVhcEFuYWx5emVyJik7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgSlNDOjpIYXNQdXRQcm9wZXJ0eVNlY3VyaXR5Q2hlY2sgfCBKU0M6Okhh
c1N0YXRpY1Byb3BlcnR5VGFibGU7Ci1wcm90ZWN0ZWQ6Ci0gICAgSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0KEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEFjdGl2ZURP
TU9iamVjdD4mJik7Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLX07Ci0K
LWNsYXNzIEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyIDogcHVibGljIEpTQzo6V2Vha0hhbmRs
ZU93bmVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlNDOjpTbG90
VmlzaXRvciYsIGNvbnN0IGNoYXIqKik7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwotfTsKLQotaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEFjdGl2
ZURPTU9iamVjdCopCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdEFjdGl2ZURP
TU9iamVjdE93bmVyPiBvd25lcjsKLSAgICByZXR1cm4gJm93bmVyLmdldCgpOwotfQotCi1pbmxp
bmUgdm9pZCogd3JhcHBlcktleShUZXN0QWN0aXZlRE9NT2JqZWN0KiB3cmFwcGFibGVPYmplY3Qp
Ci17Ci0gICAgcmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKLX0KLQotSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEFjdGl2ZURPTU9i
amVjdCYpOwotaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RB
Y3RpdmVET01PYmplY3QqIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTKGxleGljYWxHbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdCwgKmltcGwpIDogSlNDOjpqc051bGwoKTsgfQotSlNDOjpKU1Zh
bHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiwgUmVmPFRlc3RBY3RpdmVET01PYmplY3Q+JiYpOwotaW5saW5lIEpTQzo6SlNWYWx1ZSB0
b0pTTmV3bHlDcmVhdGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0cjxUZXN0QWN0aXZlRE9NT2Jq
ZWN0PiYmIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTTmV3bHlDcmVhdGVkKGxleGljYWxHbG9i
YWxPYmplY3QsIGdsb2JhbE9iamVjdCwgaW1wbC5yZWxlYXNlTm9uTnVsbCgpKSA6IEpTQzo6anNO
dWxsKCk7IH0KLQotdGVtcGxhdGU8PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRz
PFRlc3RBY3RpdmVET01PYmplY3Q+IHsKLSAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1Rlc3RB
Y3RpdmVET01PYmplY3Q7Ci0gICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9IFRlc3RBY3Rp
dmVET01PYmplY3QqOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJl
YWN0aW9ucy5jcHAKaW5kZXggNDY3MzNhN2Q1ZTczYWE4Yzc4ZDJhYzlmNDFmNzYwNmM2ODk4OWEz
MS4uNjUyZjFmNWE3ZDk5ZTUyNjBhZDdhOTRhMTZlMDVkMmU0Y2FjMzY2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q0VSZWFjdGlvbnMuY3BwCkBAIC01MiwyNSArNTIsMjUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25zKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENFUmVhY3Rpb25z
Tm90TmVlZGVkKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnND
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25z
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25z
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRl
V2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25z
QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q0VSZWFjdGlvbnNSZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENF
UmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdp
ZmllckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rp
b25zU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVl
ZGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1
dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0
aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rp
b25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckF0dHJpYnV0ZU5vdE5lZWRlZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENF
UmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3RDRVJlYWN0aW9uc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTkyLDcgKzE5Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdENFUmVhY3Rpb25zKiBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlvbnM+OjpjYXN0KEpT
R2xvCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnMqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMDIsNyArMjAyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VS
ZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENFUmVhY3Rpb25zOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMyw3ICsy
MjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnNHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwuYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VSZWFjdGlv
bnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlv
bnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnMiKTsKIH0KQEAgLTI0Miw3ICsyNDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXIoSlNHbG9i
YWxPYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0
cmlidXRlV2l0aENFUmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9u
c0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIik7CiB9CkBA
IC0yNTUsNyArMjU1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25z
UmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc0dldHRlcihKU0cKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2Vi
Q29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0YXR0cmlidXRld2l0aGNlcmVhY3Rpb25zQXR0cikpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdp
dGhDRVJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9ucyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJl
YWN0aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zIik7
CiB9CkBAIC0yNzQsNyArMjc0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENFUmVh
Y3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc1NldHRlcihKU0cKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVX
aXRoQ0VSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJl
YWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9u
c1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFj
dGlvbnMiKTsKIH0KQEAgLTI4Nyw3ICsyODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXI+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdpZmllckF0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OmdldDxqc1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5n
aWZpZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZVNldHRlcihKU0dsb2Jh
bE9iamVjdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTMyMyw3ICszMjMs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRo
Q0VSZWFjdGlvbnNOb3ROZWVkZWRHZXR0ZXIoSgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuYXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90TmVlZGVkKCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlv
bnM+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVk
ZWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsK
IH0KQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFj
dGlvbnNBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRTZXR0ZXIoSgogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zQXR0cmlidXRlV2l0aENFUmVh
Y3Rpb25zTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9u
c05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46OnNldDxzZXRKU1Rlc3RDRVJlYWN0
aW9uc0F0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYXR0cmlidXRlV2l0aENFUmVhY3Rp
b25zTm90TmVlZGVkIik7CiB9CkBAIC0zNTUsNyArMzU1LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0YXR0cmlidXRld2l0
aGNlcmVhY3Rpb25zbm90bmVlZGVkQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVh
Y3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9ucz46
OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3RO
ZWVkZWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0QXR0cmlidXRlV2l0aENFUmVhY3Rpb25zTm90
TmVlZGVkIik7CiB9CkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdENFUmVhY3Rpb25zUmVmbGVjdEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZFMK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RB
dHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zUmVmbGVj
dEF0dHJpYnV0ZVdpdGhDRVJlYWN0aW9uc05vdE5lZWRlZChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0aW9u
cz46OnNldDxzZXRKU1Rlc3RDRVJlYWN0aW9uc1JlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlv
bnNOb3ROZWVkZWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInJlZmxlY3RBdHRyaWJ1dGVXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQiKTsKIH0K
QEAgLTM4Nyw3ICszODcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlv
bnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZEdldHRlcihKU0dsbwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXI+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZCgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmli
dXRlTm90TmVlZGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDRVJlYWN0
aW9ucz46OmdldDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQXR0cmlidXRlTm90TmVlZGVk
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiKTsKIH0KQEAg
LTQxMCw3ICs0MTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllckF0dHJpYnV0ZU5vdE5lZWRlZFNldHRlcihKU0dsbwogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3RO
ZWVkZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q0VSZWFjdGlvbnM+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
ckF0dHJpYnV0ZU5vdE5lZWRlZFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGVOb3ROZWVkZWQiKTsKIH0KQEAg
LTQyOCw3ICs0MjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0
aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9ucywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9ucz46OmNhbGw8anNUZXN0Q0VSZWFjdGlvbnNQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhDRVJlYWN0aW9uc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aENFUmVhY3Rpb25zIik7CiB9CkBAIC00NDYsNyArNDQ2
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25z
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dENFUmVhY3Rpb25zUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVk
ZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENFUmVhY3Rpb25zUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWQsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0Q0VSZWFjdGlvbnM+OjpjYWxsPGpzVGVzdENFUmVhY3Rpb25z
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQ0VSZWFjdGlvbnNOb3ROZWVkZWRCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhDRVJlYWN0aW9uc05vdE5l
ZWRlZCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3Bw
CmluZGV4IGRlMTk0ZDQ1NTM1M2RjY2Q4OTZhODgzNTI3NzY0MDQ3NzNhMGMxYmUuLjMwNTFmNjFl
ZGRkYjVhMjQ2ZGQxYTliZTYzYTM5NzYwYmY3MDUxYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKQEAgLTQ4LDE2ICs0OCwxNiBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3Ry
aW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rp
b25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0
aW9ucyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlvbnMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRo
b3V0UmVhY3Rpb25zKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmll
clByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMTc0LDcgKzE3NCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdENFUmVhY3Rpb25z
U3RyaW5naWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RDRVJlYWN0aW9uc1N0CiAgICAgcmV0dXJu
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcio+KEpTQzo6Z2V0Vk0o
JmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODQsNyArMTg0LDcgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwNSw3ICsyMDUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVl
R2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwudmFsdWUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllclZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXI+OjpnZXQ8anNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAidmFsdWUiKTsKIH0KQEAgLTIyNCw3ICsyMjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXJWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJp
bmdpZmllclZhbHVlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjM3LDcgKzIzNyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25z
R2V0dGVyKEpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERP
TVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC52YWx1ZVdpdGhv
dXRSZWFjdGlvbnMoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllclZhbHVlV2l0aG91dFJlYWN0aW9ucyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1
ZVdpdGhvdXRSZWFjdGlvbnMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllcj46OmdldDxqc1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidmFs
dWVXaXRob3V0UmVhY3Rpb25zIik7CiB9CkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJWYWx1ZVdpdGhvdXRSZWFjdGlv
bnNTZXR0ZXIoSlMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyVmFsdWVXaXRob3V0UmVhY3Rpb25zKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENFUmVhY3Rpb25zU3Ry
aW5naWZpZXI+OjpzZXQ8c2V0SlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllclZhbHVlV2l0aG91
dFJlYWN0aW9uc1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAidmFsdWVXaXRob3V0UmVhY3Rpb25zIik7CiB9CkBAIC0yNzEsNyArMjcxLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJQcm90b3R5cGVGdW5jdGlvblQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgaW1wbC52YWx1ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyPjo6Y2FsbDxqc1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAidG9TdHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAppbmRleCA0
MGMzNDM3MzAyMzQ3MzdhOTc2YTc2ODUxYzE4NGU2Njg2M2Q1NTMwLi40YjYxNjkyODhjYWY2YThi
ODcyMDMwZjg4NDkwYjliOGNhZDAxZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCkBAIC01
NiwyNiArNTYsMjYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25UZXN0T3BlcmF0aW9uSW50ZXJmYWNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25TcGVjaWZpZWQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldp
dGhBcmd1bWVudHMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZUFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoVmFyaWFu
dEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5j
dGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1lbnQoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhP
cHRpb25hbFZhcmlhbnRBcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25J
bnRlcmZhY2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJv
dG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uU3BlY2lmaWVkKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldp
dGhBcmd1bWVudHMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25U
ZXN0T3BlcmF0aW9uV2l0aFZhcmlhbnRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVs
bGFibGVWYXJpYW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RD
YWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFu
dEFyZ3VtZW50KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2FsbFRyYWNlclBy
b3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFyZ3VtZW50KTsK
IAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUlu
dGVyZmFjZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVy
ZmFjZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0
cmlidXRlU3BlY2lmaWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmli
dXRlU3BlY2lmaWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNl
clRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Q2FsbFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVJbnRlcmZhY2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJh
Y2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNp
ZmllZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q2Fs
bFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9u
bHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZSBmaW5h
bCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMjEyLDcgKzIx
Miw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdENhbGxUcmFjZXIqIElETE9wZXJhdGlvbjxK
U1Rlc3RDYWxsVHJhY2VyPjo6Y2FzdChKU0dsb2JhCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0Q2FsbFRyYWNlcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxs
RnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2Vy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMjIsNyArMjIyLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
Q2FsbFRyYWNlcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdENhbGxU
cmFjZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjQ1LDcgKzI0NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RD
YWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVyZmFjZUdldHRlcihKU0dsb2JhbE9iamVjCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudGVzdEF0dHJpYnV0ZUludGVyZmFjZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZUludGVy
ZmFjZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRlcmZhY2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0
cmlidXRlSW50ZXJmYWNlIik7CiB9CkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRlSW50ZXJmYWNlU2V0dGVyKEpTR2xv
YmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2Vy
VGVzdEF0dHJpYnV0ZUludGVyZmFjZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVJbnRl
cmZhY2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2VyVGVz
dEF0dHJpYnV0ZUludGVyZmFjZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAidGVzdEF0dHJpYnV0ZUludGVyZmFjZSIpOwogfQpAQCAtMjgwLDcg
KzI4MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJp
YnV0ZVNwZWNpZmllZEdldHRlcihKU0dsb2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETEJvb2xlYW4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwudGVzdEF0dHJpYnV0ZVNwZWNpZmllZCgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmllZChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0
QXR0cmlidXRlU3BlY2lmaWVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdENhbGxUcmFjZXI+OjpnZXQ8anNUZXN0Q2FsbFRyYWNlclRlc3RBdHRy
aWJ1dGVTcGVjaWZpZWRHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0QXR0cmlidXRlU3BlY2lmaWVkIik7
CiB9CkBAIC0zMDAsNyArMzAwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENhbGxU
cmFjZXJUZXN0QXR0cmlidXRlU3BlY2lmaWVkU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNp
ZmllZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVTcGVjaWZpZWQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q2FsbFRyYWNlcj46OnNldDxzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVNwZWNpZmll
ZFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
dGVzdEF0dHJpYnV0ZVNwZWNpZmllZCIpOwogfQpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50R2V0
dGVyKEpTR2xvYmFsT2JqCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETFVuaW9uPElETEJvb2xlYW4sIElETEZsb2F0LCBJRExET01TdHJpbmc+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50
ZXN0QXR0cmlidXRlV2l0aFZhcmlhbnQoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFyaWFudChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0QXR0cmlidXRl
V2l0aFZhcmlhbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0Q2FsbFRyYWNlcj46OmdldDxqc1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdp
dGhWYXJpYW50R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iik7CiB9
CkBAIC0zMzUsNyArMzM1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENhbGxUcmFj
ZXJUZXN0QXR0cmlidXRlV2l0aFZhcmlhbnRTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJp
YW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RDYWxsVHJhY2VyVGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENhbGxUcmFjZXI+OjpzZXQ8c2V0SlNUZXN0Q2FsbFRyYWNlclRlc3RBdHRyaWJ1dGVXaXRoVmFy
aWFudFNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAidGVzdEF0dHJpYnV0ZVdpdGhWYXJpYW50Iik7CiB9CkBAIC0zNDgsNyArMzQ4LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC50
ZXN0UmVhZG9ubHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2Fs
bFRyYWNlclRlc3RSZWFkb25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENhbGxUcmFjZXJUZXN0UmVhZG9ubHlBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q2FsbFRyYWNlcj46OmdldDxqc1Rlc3RDYWxsVHJhY2VyVGVzdFJlYWRvbmx5QXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAidGVzdFJlYWRvbmx5QXR0cmlidXRlIik7CiB9CkBAIC0zNjcsNyArMzY3
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQ
cm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25JbnRlcmZhY2UoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRl
c3RPcGVyYXRpb25JbnRlcmZhY2UsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVz
dE9wZXJhdGlvbkludGVyZmFjZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidGVzdE9wZXJhdGlvbkludGVyZmFjZSIpOwogfQpAQCAtMzg2LDcgKzM4Niw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVu
Y3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2Vy
UHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uU3BlY2lmaWVkKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9u
U3BlY2lmaWVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFj
ZXI+OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25T
cGVjaWZpZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVy
YXRpb25TcGVjaWZpZWQiKTsKIH0KQEAgLTQxNiw3ICs0MTYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9w
ZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1
bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhBcmd1bWVudHMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoQXJn
dW1lbnRzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+
OjpjYWxsPGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRo
QXJndW1lbnRzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3Bl
cmF0aW9uV2l0aEFyZ3VtZW50cyIpOwogfQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25U
ZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVy
YXRpb25XaXRoTnVsbGFibGVBcmd1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RDYWxsVHJhY2VyPjo6Y2FsbDxqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rp
b25UZXN0T3BlcmF0aW9uV2l0aE51bGxhYmxlQXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVBcmd1bWVudCIpOwog
fQpAQCAtNDY0LDcgKzQ2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9u
V2l0aFZhcmlhbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhWYXJpYW50QXJndW1lbnQs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8
anNUZXN0Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhWYXJpYW50
QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVy
YXRpb25XaXRoVmFyaWFudEFyZ3VtZW50Iik7CiB9CkBAIC00ODgsNyArNDg4LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5j
dGlvblRlc3RPcGVyYXRpb24KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENhbGxUcmFjZXJQ
cm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1lbnQo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENhbGxUcmFjZXJQcm90b3R5cGVGdW5j
dGlvblRlc3RPcGVyYXRpb25XaXRoTnVsbGFibGVWYXJpYW50QXJndW1lbnQsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0Q2FsbFRy
YWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhOdWxsYWJsZVZhcmlhbnRBcmd1
bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdE9wZXJhdGlv
bldpdGhOdWxsYWJsZVZhcmlhbnRBcmd1bWVudCIpOwogfQpAQCAtNTEwLDcgKzUxMCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25UZXN0T3BlcmF0aW9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDYWxsVHJh
Y2VyUHJvdG90eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFyZ3Vt
ZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90eXBl
RnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aE9wdGlvbmFsVmFyaWFudEFyZ3VtZW50LCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENhbGxUcmFjZXI+OjpjYWxsPGpzVGVzdENh
bGxUcmFjZXJQcm90b3R5cGVGdW5jdGlvblRlc3RPcGVyYXRpb25XaXRoT3B0aW9uYWxWYXJpYW50
QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RPcGVy
YXRpb25XaXRoT3B0aW9uYWxWYXJpYW50QXJndW1lbnQiKTsKIH0KQEAgLTUzMiw3ICs1MzIsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2FsbFRyYWNlclByb3Rv
dHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q2Fs
bFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFudEFy
Z3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RDYWxsVHJhY2VyUHJvdG90
eXBlRnVuY3Rpb25UZXN0T3BlcmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQsIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q2FsbFRyYWNlcj46OmNhbGw8anNUZXN0
Q2FsbFRyYWNlclByb3RvdHlwZUZ1bmN0aW9uVGVzdE9wZXJhdGlvbldpdGhEZWZhdWx0VmFyaWFu
dEFyZ3VtZW50Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0T3Bl
cmF0aW9uV2l0aERlZmF1bHRWYXJpYW50QXJndW1lbnQiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0
aW5Db25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCmluZGV4IGJiNDNiNWUy
ODc5MjdmOTZmZmM1YTEyYTllMGU4YjI1MTQ0MGQzYzIuLjM5NGU5YTU1Y2U3ZjlmZGRiOTAzMTJh
MjdmMmE5NDgxODg1NWNjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcApAQCAtNDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9p
ZCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6ZGVzdHJveShKU0M6OkpTQ2Vs
bCogY2VsbCkKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1
Y3Rvcjo6fkpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yKCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY1LDcgKzE2
NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcy5jcHAK
aW5kZXggMjZlMmMzODk1ZjFhNWU2ZjI0MmJjMzM1Yzk0ZDkyNzAxZDM5MjBhNC4uOWI0NTFiMTZh
ZTM5YmZkMzZmOTdhNDdmZjE2YTc0YjBjY2M0NTE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzLmNwcApAQCAtNjMsNDkgKzYzLDQ5IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAvLyBGdW5jdGlvbnMKIAogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShD
b25kaXRpb24yMikpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25N
aXhpbk9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5PcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24x
MikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90
b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uKTsKICNl
bmRpZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMTIpICYmIEVOQUJMRShDb25kaXRpb24yMikpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJh
dGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9u
TWl4aW5DdXN0b21PcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMSkg
JiYgRU5BQkxFKENvbmRpdGlvbjEyKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db25kaXRpb25hbE9wZXJhdGlv
bihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4
aW5Db25kaXRpb25hbE9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxFKENvbmRpdGlvbjEy
KSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29u
ZGl0aW9uYWxPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYg
RU5BQkxFKENvbmRpdGlvbjIyKSkgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVG
dW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb24pOwog
I2VuZGlmCiAjaWYgKEVOQUJMRShDb25kaXRpb24xMikgJiYgRU5BQkxFKENvbmRpdGlvbjIyKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMzMpKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlv
bkZyb21QYXJ0aWFsKTsKICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNUZXN0QXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rlc3RBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKENv
bmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluUmVhZE9ubHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24y
MikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc01peGluQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5B
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkN1c3RvbUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0
aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5O
b2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc01peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFs
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxJbmNsdWRlc1BhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYK
IAogY2xhc3MgSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZSBmaW5hbCA6IHB1Ymxp
YyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewpAQCAtNDkwLDcgKzQ5MCw3IEBAIHRlbXBsYXRlPD4g
aW5saW5lIEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMqIElETE9wZXJhdGlvbjxKU1Rlc3RDb25k
aXRpb25hbEluY2x1CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlcyo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhp
c1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC01MDAsNyAr
NTAwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTUyMSw3ICs1
MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rl
c3RBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwudGVzdEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc1Rlc3RBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rlc3RBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Rlc3RBdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAidGVzdEF0dHIiKTsKIH0KQEAgLTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGVH
ZXR0ZXIoSlNHbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExE
T01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubWl4aW5SZWFk
T25seUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25h
bEluY2x1ZGVzTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpblJl
YWRPbmx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpnZXQ8anNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlc01peGluUmVhZE9ubHlBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpblJlYWRP
bmx5QXR0cmlidXRlIik7CiB9CkBAIC01NTEsNyArNTUxLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZUdldHRlcihKU0dsb2Jh
bE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm1peGluQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhp
bkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1
ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgIm1peGluQXR0cmlidXRlIik7CiB9CkBAIC01NzIsNyArNTcyLDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZVNl
dHRlcihKU0dsb2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNNaXhpbkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzPjo6c2V0PHNl
dEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbkF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5BdHRyaWJ1dGUiKTsK
IH0KQEAgLTU4Niw3ICs1ODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0
aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyKEpTR2xvYgogICAgIHJldHVy
biB0aGlzT2JqZWN0Lm1peGluQ3VzdG9tQXR0cmlidXRlKGxleGljYWxHbG9iYWxPYmplY3QpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21B
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxJ
bmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJtaXhpbkN1c3RvbUF0dHJpYnV0ZSIpOwogfQpAQCAtNjAxLDcg
KzYwMSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVz
TWl4aW5DdXN0b21BdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01peGluQ3VzdG9tQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlcz46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4
aW5DdXN0b21BdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgIm1peGluQ3VzdG9tQXR0cmlidXRlIik7CiB9CkBAIC02MTcsNyArNjE3
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhp
bk5vZGVBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5taXhpbk5vZGVBdHRy
aWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c01peGluTm9kZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcz46OmdldDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2Rl
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5Ob2RlQXR0cmlidXRlIik7CiB9CkBAIC02
MzgsNyArNjM4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsSW5j
bHVkZXNNaXhpbk5vZGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXM+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc01p
eGluTm9kZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ZW5jb2RlZFZhbHVlLCAibWl4aW5Ob2RlQXR0cmlidXRlIik7CiB9CkBAIC02NTQsNyArNjU0LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFs
TWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLnBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9t
UGFydGlhbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFsTWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlh
bChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RD
b25kaXRpb25hbEluY2x1ZGVzPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQYXJ0aWFs
TWl4aW5BdHRyaWJ1dGVGcm9tUGFydGlhbEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInBhcnRpYWxNaXhpbkF0
dHJpYnV0ZUZyb21QYXJ0aWFsIik7CiB9CkBAIC02NzQsNyArNjc0LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVG
dW5jdGlvbk1peGkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVk
ZXNQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbk9wZXJh
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDb25kaXRpb25hbElu
Y2x1ZGVzPjo6Y2FsbDxqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25N
aXhpbk9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4
aW5PcGVyYXRpb24iKTsKIH0KQEAgLTcwMyw3ICs3MDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9u
TWl4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUo
dG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Db21wbGV4T3BlcmF0
aW9uKCpjb250ZXh0LCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVG
dW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3Bl
cmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFs
SW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlv
bk1peGluQ29tcGxleE9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWl4aW5Db21wbGV4T3BlcmF0aW9uIik7CiB9CkBAIC03MjAsNyArNzIwLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbk1peGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KEpTVmFsdWU6OmVuY29kZShjYXN0ZWRUaGlzLT5taXhpbkN1c3RvbU9wZXJhdGlvbigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5D
dXN0b21PcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlv
bmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdENvbmRpdGlvbmFsSW5jbHVkZXM+OjpjYWxs
PGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkN1c3Rv
bU9wZXJhdGlvbiIpOwogfQpAQCAtNzQwLDcgKzc0MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25N
aXhpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90
eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNv
bmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dENvbmRpdGlvbmFsSW5jbHVkZXM+OjpjYWxsPGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90
b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KQEAg
LTc2MCw3ICs3NjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aQogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0
aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0
aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Q29u
ZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlw
ZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRp
b24iKTsKIH0KQEAgLTc3OSw3ICs3NzksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uTWl4aQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExT
ZXF1ZW5jZTxJRExJbnRlcmZhY2U8Tm9kZT4+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3Rl
ZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKGltcGxSZXN1bHQubm9kZXMpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQ
cm90b3R5cGVGdW5jdGlvbk1peGluUmVzdWx0RmllbGRPcGVyYXRpb24oSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdENvbmRpdGlvbmFsSW5jbHVkZXNQcm90b3R5cGVGdW5jdGlvbk1p
eGluUmVzdWx0RmllbGRPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
c1Byb3RvdHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbiIpOwog
fQpAQCAtNzk5LDcgKzc5OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RDb25kaXRpb25hbEluY2x1ZGVzUHJvdG90eXBlRnVuY3Rpb25QYXJ0
aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3RvdHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3Bl
cmF0aW9uRnJvbVBhcnRpYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
Q29uZGl0aW9uYWxJbmNsdWRlcz46OmNhbGw8anNUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc1Byb3Rv
dHlwZUZ1bmN0aW9uUGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWxCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0
aWFsIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZS5jcHAK
aW5kZXggNWE4NDUzMjJkYzRkOGNhM2EyOTYxNjM1ZjE4OGEzNGMwMzQ2N2M3My4uOWRhMGNjMjY0
OGY4ZjYzMDA2MDVlMTk4ZjI0ZGIwNzJjOWM5YmZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlLmNwcApAQCAtNTQsMzQgKzU0LDM0IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKENPTkRJVElP
TikKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDT05ESVRJT04yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogI2lmIEVOQUJMRShDT05ESVRJT04pCi1ib29sIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogI2VuZGlmCiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0Q29uZGl0
aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJv
bWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRX
cml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGlu
Z3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5
UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRp
bWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRp
bmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI3NCw3ICsyNzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlKiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0
aW9uYWxseQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yODQsNyArMjg0LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRX
cml0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2wKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTMwNSw3ICszMDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dAogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxl
eGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLmNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpAQCAtMzI0LDcgKzMyNCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5k
Q29uZGl0aW9uYWxseVJlYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25k
aXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUiKTsKIH0KQEAgLTM2Miw3ICszNjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJl
YQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OnNldDxzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTM3OSw3ICszNzksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Nj
b3BlLCBpbXBsLnJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29u
ZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0
PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlIik7CiB9CkBAIC0zOTcsNyArMzk3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6c2V0PHNldEpTVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQxMCw3ICs0MTAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRp
bWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJ1bnRpbWVDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Pjo6Z2V0PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZSIpOwogfQpAQCAtNDI4LDcgKzQy
OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
UnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVS
dW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUiKTsKIH0KQEAg
LTQ0MSw3ICs0NDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50
aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVu
Zm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0PGpzVGVzdENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlUHJpdmF0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlIik7
CiB9CkBAIC00NTksNyArNDU5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGlt
ZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
Pjo6c2V0PHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUiKTsKIH0KQEAgLTQ3Miw3ICs0NzIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1
bnRpbWVDb25kaXRpb25hbGx5UmVhZFdyaXRlQQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExQcm9taXNlPElETERvdWJsZT4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnJ1bnRpbWVDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlPjo6Z2V0
PGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1lQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVByb21pc2VHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZWplY3RQ
cm9taXNlPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicnVudGltZUNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIik7CiB9CkBAIC00OTAsNyArNDkwLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVSdW50aW1l
Q29uZGl0aW9uYWxseVJlYWRXcml0ZUEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlUnVudGltZUNvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFs
bHlSZWFkV3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVJ1bnRpbWVD
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicnVudGltZUNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIik7CiB9CkBAIC01MDMsNyArNTAzLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRp
dGlvbmFsbHlSZWFkV3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFk
V3JpdGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29u
ZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0
dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC01MjEsNyArNTIx
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVT
ZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVh
ZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGU+OjpzZXQ8c2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlIik7CiB9CkBAIC01MzQsNyArNTM0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5v
ZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhy
b3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZv
cmdlYWJsZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDb25kaXRpb25hbGx5UmVh
ZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RD
b25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmli
dXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVVbmZvcmdlYWJsZSIpOwogfQpAQCAtNTUyLDcgKzU1Miw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Q29uZGl0aW9u
YWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9y
Z2VhYmxlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJl
YWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25k
aXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlIik7CiB9CkBAIC01NjUsNyArNTY1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5n
c0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZhdGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3Jp
dGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVVbmZvcmdlYWJsZVByaXZh
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRl
U2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRl
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2V0dGluZ3NDb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlIik7CiB9CkBAIC01ODMs
NyArNTgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFk
V3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RDb25kaXRpb25h
bGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlVW5mb3Jn
ZWFibGVQcml2YXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGU+OjpzZXQ8c2V0
SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxseVJlYWRXcml0
ZUF0dHJpYnV0ZVVuZm9yZ2VhYmxlUHJpdmF0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlVW5mb3JnZWFibGVQcml2YXRlIik7CiB9CkBAIC01OTYsNyArNTk2LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMUHJvbWlzZTxJRExEb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0aW9uYWxs
eVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZT46OmdldDxqc1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlUHJvbWlzZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21p
c2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXR0aW5nc0NvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVQcm9taXNlIik7CiB9CkBAIC02MTQsNyArNjE0LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdENvbmRpdGlvbmFsbHlSZWFkV3JpdGVTZXR0aW5nc0Nv
bmRpdGlvbmFsbHlSZWFkV3JpdGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3NDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0
cmlidXRlUHJvbWlzZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0Q29uZGl0aW9uYWxseVJlYWRXcml0ZVNldHRpbmdzQ29uZGl0
aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZVByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0Q29uZGl0aW9uYWxs
eVJlYWRXcml0ZT46OnNldDxzZXRKU1Rlc3RDb25kaXRpb25hbGx5UmVhZFdyaXRlU2V0dGluZ3ND
b25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZVNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic2V0dGluZ3NDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlUHJvbWlzZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAppbmRleCA1OTdm
NzZmNGUzODIyZmZiOTU4YjY5YjY4YzcxOWVmMjE1MmMxOTcyLi5kM2YxYjM1NmZmYWZiNzgxMDhl
NDY2NmM3Mjc5OGZhMjJmMjRlMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcApAQCAtNTksNTYgKzU5LDU2
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0QXR0cmlidXRl
KTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5
cGVGdW5jdGlvbkdldEF0dHJpYnV0ZVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTVGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMRE9NU3RyaW5n
Pik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJvdG90
eXBlRnVuY3Rpb25JdGVtKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0
ZW0pOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3Rv
dHlwZUZ1bmN0aW9uSXRlbVdpdGhvdXRUeXBlQ2hlY2soSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
VGVzdERPTUpJVCosIERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4s
IERPTUpJVDo6SURMSlNBcmd1bWVudFR5cGU8SURMVW5zaWduZWRTaG9ydD4pOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFz
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJp
YnV0ZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU1Rlc3RET01KSVQqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkKTsKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEVs
ZW1lbnRCeUlkV2l0aG91dFR5cGVDaGVjayhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNUZXN0RE9N
SklUKiwgRE9NSklUOjpJRExKU0FyZ3VtZW50VHlwZTxJRExSZXF1aXJlc0V4aXN0aW5nQXRvbVN0
cmluZ0FkYXB0b3I8SURMRE9NU3RyaW5nPj4pOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudHNCeU5hbWUpOwog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1
bmN0aW9uR2V0RWxlbWVudHNCeU5hbWVXaXRob3V0VHlwZUNoZWNrKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU1Rlc3RET01KSVQqLCBET01KSVQ6OklETEpTQXJndW1lbnRUeXBlPElETEF0b21TdHJp
bmdBZGFwdG9yPElETERPTVN0cmluZz4+KTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERPTUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERP
TUpJVENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
QW55QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFuQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlQXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRPY3RldEF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVExvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJ
VFVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERP
TUpJVEZsb2F0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJl
c3RyaWN0ZWRGbG9hdEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklU
RG91YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3Ry
aWN0ZWREb3VibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERv
bVN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5n
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVROb2RlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxl
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTnVsbGFibGVB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2lnbmVkTG9uZ051
bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTG9u
Z051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNp
Z25lZExvbmdMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVEZsb2F0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5nTnVsbGFi
bGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJs
ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01K
SVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERPTUpJVENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVRBbnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RET01KSVRCeXRlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVE9jdGV0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ0F0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRV
bnNpZ25lZExvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRGbG9hdEF0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVREb3VibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvbVN0cmluZ0F0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlU3RyaW5nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVzdlN0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVROb2RlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRTaG9y
dE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25n
TnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUTG9uZ0xvbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURmxvYXRO
dWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVRVbnJlc3RyaWN0ZWRGbG9hdE51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVFVucmVzdHJp
Y3RlZERvdWJsZU51bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxhYmxlQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRV
c3ZTdHJpbmdOdWxsYWJsZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVROb2RlTnVsbGFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIHN0YXRpYyBjb25zdCBK
U0M6OkRPTUpJVDo6U2lnbmF0dXJlIERPTUpJVFNpZ25hdHVyZUZvclRlc3RET01KSVRHZXRBdHRy
aWJ1dGUoanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRBdHRyaWJ1dGVXaXRob3V0VHlw
ZUNoZWNrLCBKU1Rlc3RET01KSVQ6OmluZm8oKSwgSlNDOjpET01KSVQ6OkVmZmVjdDo6Zm9yUmVh
ZChET01KSVQ6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkRPTSksIERPTUpJVDo6SURMUmVzdWx0
VHlwZUZpbHRlcjxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pjo6dmFsdWUsIERPTUpJVDo6SURM
QXJndW1lbnRUeXBlRmlsdGVyPElETERPTVN0cmluZz46OnZhbHVlKTsKIApAQCAtNjE1LDcgKzYx
NSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdERPTUpJVCogSURMT3BlcmF0aW9uPEpTVGVz
dERPTUpJVD46OmNhc3QoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8
SlNUZXN0RE9NSklUKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFt
ZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVENvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC02MjUsNyArNjI1LDcgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY28KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdERPTUpJVDo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5n
bG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdERPTUpJVENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RET01KSVRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY0Niw3ICs2NDYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQW55QXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuYW55QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRBbnlBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RE9NSklUQW55QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUQW55QXR0ckdldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImFueUF0dHIiKTsKIH0KQEAgLTY1OSw3ICs2NTks
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQm9vbGVhbkF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBpbXBsLmJvb2xlYW5BdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJ
VEJvb2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEJvb2xl
YW5BdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYm9vbGVhbkF0
dHIiKTsKIH0KQEAgLTY3Miw3ICs2NzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RE9NSklUQnl0ZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCeXRlPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5dGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdERPTUpJVEJ5dGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVEJ5dGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Ynl0ZUF0dHIiKTsKIH0KQEAgLTY4NSw3ICs2ODUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklUT2N0ZXRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExPY3RldD4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5vY3RldEF0dHIoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUT2N0ZXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUT2N0ZXRBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46
OmdldDxqc1Rlc3RET01KSVRPY3RldEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJvY3RldEF0dHIiKTsKIH0KQEAgLTY5OCw3ICs2OTgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5zaG9ydEF0dHIo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnRBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUU2hv
cnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRTaG9ydEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaG9ydEF0dHIiKTsKIH0KQEAgLTcxMSw3ICs3MTEsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExVbnNpZ25lZFNob3J0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Nj
b3BlLCBpbXBsLnVuc2lnbmVkU2hvcnRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydEF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVFVuc2lnbmVkU2hvcnRBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTcyNCw3ICs3MjQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0F0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmxvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVExvbmdBdHRyR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibG9uZ0F0dHIiKTsKIH0KQEAgLTczNyw3
ICs3MzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25n
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZExvbmc+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwudW5zaWduZWRMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01K
SVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0F0dHIiKTsKIH0KQEAgLTc1MCw3ICs3
NTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5sb25nTG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
RE9NSklUTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01K
SVRMb25nTG9uZ0F0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJs
b25nTG9uZ0F0dHIiKTsKIH0KQEAgLTc2Myw3ICs3NjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25l
ZExvbmdMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVk
TG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVuc2ln
bmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVFVuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KQEAgLTc3Niw3ICs3NzYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklURmxvYXRBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExGbG9hdD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5mbG9hdEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURmxvYXRB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklURmxvYXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRGbG9hdEF0dHJHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmbG9hdEF0dHIiKTsKIH0KQEAgLTc4
OSw3ICs3ODksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmlj
dGVkRmxvYXRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnJlc3RyaWN0ZWRGbG9hdD4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnJlc3RyaWN0ZWRGbG9hdEF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXRBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
VW5yZXN0cmljdGVkRmxvYXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWRG
bG9hdEF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1bnJlc3Ry
aWN0ZWRGbG9hdEF0dHIiKTsKIH0KQEAgLTgwMiw3ICs4MDIsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklURG91YmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3Vi
bGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG91YmxlQXR0cigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb3VibGVBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG91Ymxl
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURG91YmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvdWJsZUF0dHIiKTsKIH0KQEAgLTgxNSw3ICs4MTUsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0
ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwudW5yZXN0cmljdGVkRG91YmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5yZXN0cmlj
dGVkRG91YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlQXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVucmVzdHJpY3RlZERv
dWJsZUF0dHIiKTsKIH0KQEAgLTgyOCw3ICs4MjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklURG9tU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
bwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG9tU3RyaW5nQXR0cigpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVREb21TdHJpbmdBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklURG9t
U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURG9tU3RyaW5nQXR0ckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImRvbVN0cmluZ0F0dHIiKTsKIH0KQEAgLTg0
MSw3ICs4NDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUQnl0ZVN0cmlu
Z0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbAogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCeXRlU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmJ5dGVTdHJpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUQnl0ZVN0cmluZ0F0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6
Z2V0PGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAiYnl0ZVN0cmluZ0F0dHIiKTsKIH0KQEAgLTg1NCw3ICs4NTQsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwudXN2U3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRV
c3ZTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUVXN2U3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVXN2
U3RyaW5nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdlN0
cmluZ0F0dHIiKTsKIH0KQEAgLTg2Nyw3ICs4NjcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklUTm9kZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRlcmZhY2U8
Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLm5vZGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dERPTUpJVE5vZGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0RE9NSklUTm9kZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVE5vZGVB
dHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibm9kZUF0dHIiKTsK
IH0KQEAgLTg4MCw3ICs4ODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklU
Qm9vbGVhbk51bGxhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExCb29sZWFuPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ib29sZWFuTnVsbGFibGVBdHRy
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVEJvb2xlYW5OdWxsYWJsZUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RET01KSVRCb29sZWFuTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRCb29sZWFu
TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYm9v
bGVhbk51bGxhYmxlQXR0ciIpOwogfQpAQCAtODkzLDcgKzg5Myw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51
bGxhYmxlPElETEJ5dGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5
dGVOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUQnl0
ZU51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJ
VEJ5dGVOdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJieXRlTnVsbGFibGVBdHRyIik7CiB9CkBAIC05MDYsNyArOTA2LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE9jdGV0TnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TnVsbGFibGU8SURMT2N0ZXQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
Lm9jdGV0TnVsbGFibGVBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJ
VE9jdGV0TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RE9NSklUT2N0ZXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVz
dERPTUpJVE9jdGV0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAib2N0ZXROdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTkxOSw3ICs5MTksNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExOdWxsYWJsZTxJRExTaG9ydD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuc2hvcnROdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRTaG9ydE51bGxhYmxlQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+Ojpn
ZXQ8anNUZXN0RE9NSklUU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJzaG9ydE51bGxhYmxlQXR0ciIpOwogfQpAQCAtOTMyLDcgKzkzMiw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZFNob3J0TnVsbGFi
bGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETFVuc2lnbmVkU2hvcnQ+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRTaG9ydE51bGxhYmxlQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERPTUpJVFVuc2lnbmVkU2hvcnROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVu
c2lnbmVkU2hvcnROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJ1bnNpZ25lZFNob3J0TnVsbGFibGVBdHRyIik7CiB9CkBAIC05NDUsNyArOTQ1LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVExvbmdOdWxsYWJsZUF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwubG9uZ051bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RET01KSVRMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+
OjpnZXQ8anNUZXN0RE9NSklUTG9uZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImxvbmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTk1OCw3ICs5NTgs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9NSklUVW5zaWduZWRMb25nTnVsbGFi
bGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnNpZ25lZExvbmc+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkTG9uZ051bGxhYmxlQXR0cigpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
T01KSVRVbnNpZ25lZExvbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVuc2ln
bmVkTG9uZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInVuc2lnbmVkTG9uZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtOTcxLDcgKzk3MSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETE51bGxhYmxlPElETExvbmdMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5sb25nTG9uZ051bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVExvbmdMb25nTnVsbGFi
bGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVRMb25nTG9uZ051bGxhYmxlQXR0ckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxvbmdMb25nTnVsbGFibGVBdHRyIik7
CiB9CkBAIC05ODQsNyArOTg0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJ
VFVuc2lnbmVkTG9uZ0xvbmdOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVW5zaWduZWRM
b25nTG9uZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwudW5zaWduZWRM
b25nTG9uZ051bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01K
SVRVbnNpZ25lZExvbmdMb25nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxh
YmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklUVW5zaWduZWRMb25nTG9uZ051bGxhYmxlQXR0
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuc2lnbmVkTG9uZ0xv
bmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTk5Nyw3ICs5OTcsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0RE9NSklURmxvYXROdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxs
YWJsZTxJRExGbG9hdD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZmxv
YXROdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURmxv
YXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RET01KSVRGbG9hdE51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9N
SklURmxvYXROdWxsYWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJmbG9hdE51bGxhYmxlQXR0ciIpOwogfQpAQCAtMTAxMCw3ICsxMDEwLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRy
R2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMTnVsbGFibGU8SURMVW5yZXN0cmljdGVkRmxvYXQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLnVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0RE9NSklUVW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERP
TUpJVFVucmVzdHJpY3RlZEZsb2F0TnVsbGFibGVBdHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAidW5yZXN0cmljdGVkRmxvYXROdWxsYWJsZUF0dHIiKTsKIH0KQEAg
LTEwMjMsNyArMTAyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RET01KSVREb3Vi
bGVOdWxsYWJsZUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERvdWJsZT4+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZG91YmxlTnVsbGFibGVBdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVERvdWJsZU51bGxhYmxlQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJ
VERvdWJsZU51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklURG91YmxlTnVsbGFibGVB
dHRyR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZG91YmxlTnVsbGFi
bGVBdHRyIik7CiB9CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0RE9NSklUVW5yZXN0cmljdGVkRG91YmxlTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFs
TwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJ
RExVbnJlc3RyaWN0ZWREb3VibGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLnVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RET01KSVRVbnJlc3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RET01KSVRVbnJl
c3RyaWN0ZWREb3VibGVOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVFVucmVzdHJp
Y3RlZERvdWJsZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInVucmVzdHJpY3RlZERvdWJsZU51bGxhYmxlQXR0ciIpOwogfQpAQCAtMTA0OSw3ICsx
MDQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVERvbVN0cmluZ051bGxh
YmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kb21TdHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RE9NSklURG9tU3RyaW5nTnVsbGFibGVBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RE9NSklU
RG9tU3RyaW5nTnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdERPTUpJVD46OmdldDxqc1Rlc3RET01KSVREb21TdHJpbmdOdWxs
YWJsZUF0dHJHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkb21TdHJp
bmdOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTEwNjIsNyArMTA2Miw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RET01KSVRCeXRlU3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51
bGxhYmxlPElETEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmJ5dGVTdHJpbmdOdWxsYWJsZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0RE9NSklUQnl0ZVN0cmluZ051bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
RE9NSklUPjo6Z2V0PGpzVGVzdERPTUpJVEJ5dGVTdHJpbmdOdWxsYWJsZUF0dHJHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJieXRlU3RyaW5nTnVsbGFibGVBdHRyIik7
CiB9CkBAIC0xMDc1LDcgKzEwNzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RE9N
SklUVXN2U3RyaW5nTnVsbGFibGVBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExVU1ZTdHJp
bmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVzdlN0cmluZ051bGxh
YmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRVc3ZTdHJpbmdO
dWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RET01KSVRVc3ZTdHJpbmdOdWxsYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RE9NSklUPjo6Z2V0PGpzVGVzdERP
TUpJVFVzdlN0cmluZ051bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInVzdlN0cmluZ051bGxhYmxlQXR0ciIpOwogfQpAQCAtMTA4OCw3ICsxMDg4LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERPTUpJVE5vZGVOdWxsYWJsZUF0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPE5vZGU+Pj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubm9k
ZU51bGxhYmxlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVROb2Rl
TnVsbGFibGVBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RE9NSklUTm9kZU51bGxhYmxlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RET01KSVQ+OjpnZXQ8anNUZXN0RE9NSklU
Tm9kZU51bGxhYmxlQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im5vZGVOdWxsYWJsZUF0dHIiKTsKIH0KQEAgLTExMDgsNyArMTEwOCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0
dHJpYnV0ZUJvZHkoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBpbXBsLmdldEF0dHJpYnV0ZShXVEZNb3ZlKG5hbWUpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVu
Y3Rpb25HZXRBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdldEF0dHJpYnV0ZUJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0QXR0cmlidXRlIik7CiB9
CkBAIC0xMTQ3LDcgKzExNDcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25JdGVtQm9keShKU0M6OkpTRwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJp
bmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLml0ZW0oV1RGTW92ZSh4KSwgV1RGTW92ZSh5
KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RE9NSklUUHJv
dG90eXBlRnVuY3Rpb25JdGVtKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01K
SVRQcm90b3R5cGVGdW5jdGlvbkl0ZW0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0RE9NSklUPjo6Y2FsbDxqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkl0ZW1Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIml0ZW0iKTsKIH0KQEAgLTExODAs
NyArMTE4MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RET01K
SVRQcm90b3R5cGVGdW5jdGlvbkhhc0F0dHJpYnV0ZUJvZHkoCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+KGltcGwuaGFz
QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
RE9NSklUUHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uSGFzQXR0cmlidXRlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklU
UHJvdG90eXBlRnVuY3Rpb25IYXNBdHRyaWJ1dGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgImhhc0F0dHJpYnV0ZSIpOwogfQpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0
aW9uR2V0RWxlbWVudEJ5SWRCb2QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPEVsZW1lbnQ+PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLmdldEVsZW1lbnRCeUlk
KFdURk1vdmUoZWxlbWVudElkKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50QnlJZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50
QnlJZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RET01KSVQ+OjpjYWxs
PGpzVGVzdERPTUpJVFByb3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWRCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldEVsZW1lbnRCeUlkIik7CiB9CkBAIC0xMjUw
LDcgKzEyNTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RE9N
SklUUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50c0J5TmFtZQogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8Tm9kZUxp
c3Q+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBp
bXBsLmdldEVsZW1lbnRzQnlOYW1lKFdURk1vdmUoZWxlbWVudE5hbWUpKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RET01KSVRQcm90b3R5cGVGdW5jdGlvbkdl
dEVsZW1lbnRzQnlOYW1lKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RET01KSVRQ
cm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRzQnlOYW1lLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdERPTUpJVD46OmNhbGw8anNUZXN0RE9NSklUUHJvdG90eXBlRnVuY3Rp
b25HZXRFbGVtZW50c0J5TmFtZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiZ2V0RWxlbWVudHNCeU5hbWUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OLmNwcApp
bmRleCBlYzUwOWRiZGZmYTZmMzJkYTAzOTM3YjZlMjIxYmZlZjE0OTUzY2JkLi40Mzc0NjgxYWI0
NDc0ZGZlNzIwMjIyMWQ1YmM3ZjNjNDE4ZDQ2ZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T04uY3BwCkBAIC03MCw0NSArNzAsNDUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVu
Y3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REZWZhdWx0
VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pT
T05Qcm90b3R5cGVGdW5jdGlvblRvSlNPTik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeVNldHRpbmdzQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0aW5nc0F0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogI2lmIEVOQUJMRShURVNUX0NPTkRJVElPTkFMKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09O
RW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpcnN0U3RyaW5nQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExv
bmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09O
VGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pT
T05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlm
dGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09O
RmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVm
YXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09O
YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRp
b25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVu
Y2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2Vx
dWVuY2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0
VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29y
ZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJl
Y29yZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pT
T05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2Vjb25k
TG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91Ymxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJl
Y3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVp
Z2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9u
YWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJp
YnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVm
YXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNP
TkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJ
bnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05U
aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNjEsNyArMjYxLDcgQEAgdGVtcGxhdGU8PiBpbmxp
bmUgSlNUZXN0RGVmYXVsdFRvSlNPTiogSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT04+
OjpjYXN0KEoKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REZWZhdWx0VG9KU09OKj4o
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI3MSw3ICsyNzEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RGVmYXVsdFRvSlNP
Tjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09OTG9uZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Mb25n
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkxvbmdBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJsb25nQXR0cmlidXRlIik7CiB9CkBAIC0zMDUsNyArMzA1LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FbmFibGVkQnlTZXR0
aW5nc0F0dHJpYnV0ZUdldHRlcihKU0dsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMVW5zaWduZWRTaG9ydD4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgaW1wbC5lbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZh
dWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rl
c3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5U2V0dGluZ3NBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJlbmFibGVkQnlTZXR0aW5nc0F0dHJpYnV0ZSIpOwogfQpAQCAtMzE5LDcgKzMxOSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORW5hYmxlZEJ5Q29uZGl0aW9u
YWxBdHRyaWJ1dGVHZXR0ZXIoSlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEVudW1lcmF0aW9uPFRlc3REZWZhdWx0VG9KU09ORW51bT4+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNv
bmRpdGlvbmFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlvbmFsQXR0cmli
dXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkVuYWJsZWRCeUNvbmRpdGlv
bmFsQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEJ5Q29uZGl0aW9uYWxBdHRyaWJ1
dGUiKTsKIH0KQEAgLTMzMiw3ICszMzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iagogICAg
IHJldHVybiBldmVudEhhbmRsZXJBdHRyaWJ1dGUodGhpc09iamVjdC53cmFwcGVkKCksIGV2ZW50
TmFtZXMoKS5lbnRIYW5kbGVyQXR0cmlidXRlRXZlbnQsIHdvcmxkRm9yRE9NT2JqZWN0KHRoaXNP
YmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFu
ZGxlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
Tj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiZXZlbnRIYW5kbGVyQXR0cmlidXRlIik7CiB9CkBAIC0zNDcsNyArMzQ3LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FdmVudEhhbmRsZXJBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9K
U09ORXZlbnRIYW5kbGVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8
c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkV2ZW50SGFuZGxlckF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZXZlbnRIYW5kbGVyQXR0
cmlidXRlIik7CiB9CkBAIC0zNjAsNyArMzYwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamUK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmZpcnN0U3RyaW5nQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmlu
Z0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6
Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImZpcnN0U3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0zNzgsNyArMzc4LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZVNl
dHRlcihKU0dsb2JhbE9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORmlyc3RTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaXJz
dFN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVz
dERlZmF1bHRUb0pTT05GaXJzdFN0cmluZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmlyc3RTdHJpbmdBdHRyaWJ1dGUiKTsK
IH0KQEAgLTM5MSw3ICszOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVs
dFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNlY29uZExvbmdBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExvbmdBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0
VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRU
b0pTT05TZWNvbmRMb25nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2Vjb25kTG9uZ0F0dHJp
YnV0ZSIpOwogfQpAQCAtNDA5LDcgKzQwOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OU2Vjb25kTG9uZ0F0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExv
bmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZWNvbmRMb25nQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTlNlY29uZExv
bmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInNlY29uZExvbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTQyMiw3ICs0MjIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdEV4Y2VwdGlvbj4+KGxleGljYWxHbG9iYWxPYmplY3Qs
ICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRoaXJkVW5KU09O
YWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9K
U09OVGhpcmRVbkpTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFi
bGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUiKTsK
IH0KQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTlRoaXJkVW5KU09OYWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbAogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcmRV
bkpTT05hYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJ0aGlyZFVuSlNPTmFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ1Myw3
ICs0NTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0
aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZUdldHRlcgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnJlc3RyaWN0ZWREb3VibGU+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuZm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0cmlidXRl
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJl
c3RyaWN0ZWREb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91
YmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZvdXJ0aFVu
cmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImZvdXJ0aFVucmVzdHJp
Y3RlZERvdWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDcxLDcgKzQ3MSw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORm91cnRoVW5yZXN0cmljdGVkRG91YmxlQXR0
cmlidXRlU2V0dGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRv
SlNPTkZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0
VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05Gb3VydGhVbnJlc3RyaWN0ZWREb3Vi
bGVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgImZvdXJ0aFVucmVzdHJpY3RlZERvdWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDg0
LDcgKzQ4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlm
dGhMb25nQ2xhbXBlZEF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExMb25nPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFt
cGVkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgImZpZnRoTG9uZ0NsYW1wZWRBdHRyaWJ1dGUiKTsKIH0KQEAgLTUwMiw3
ICs1MDIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkZpZnRo
TG9uZ0NsYW1wZWRBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORmlmdGhMb25nQ2xhbXBlZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RE
ZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWZ0aExvbmdDbGFtcGVk
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJmaWZ0aExvbmdDbGFtcGVkQXR0cmlidXRlIik7CiB9CkBAIC01MTUsNyArNTE1LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLnNpeHRoVHlwZWRlZkF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVmQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlNpeHRoVHlw
ZWRlZkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5
cGVkZWZBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXh0aFR5cGVkZWZBdHRyaWJ1dGUiKTsK
IH0KQEAgLTUzMyw3ICs1MzMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RGVmYXVs
dFRvSlNPTlNpeHRoVHlwZWRlZkF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05TaXh0aFR5cGVkZWZBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2l4dGhUeXBlZGVm
QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJzaXh0aFR5cGVkZWZBdHRyaWJ1dGUiKTsKIH0KQEAgLTU0Niw3ICs1NDYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRv
SlNPTmFibGVBdHRyaWJ1dGVHZXR0ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExJbnRlcmZhY2U8VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5zZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVs
dFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERpcmVjdGx5VG9KU09OYWJs
ZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRy
aWJ1dGUiKTsKIH0KQEAgLTU2NCw3ICs1NjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlNldmVudGhEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVTZXR0ZQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZlbnRo
RGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OU2V2ZW50aERp
cmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0
PHNldEpTVGVzdERlZmF1bHRUb0pTT05TZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJz
ZXZlbnRoRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC01NzcsNyArNTc3LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVj
dGx5QXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0
YW5jZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0
aHJvd1Njb3BlLCBpbXBsLmVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RE
ZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpz
VGVzdERlZmF1bHRUb0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiZWlnaHRoSW5kaXJlY3RseUF0dHJpYnV0ZSIpOwogfQpAQCAtNTk1LDcgKzU5NSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWlnaHRoSW5kaXJlY3RseUF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRU
b0pTT05FaWdodGhJbmRpcmVjdGx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+
OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkVpZ2h0aEluZGlyZWN0bHlBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVpZ2h0
aEluZGlyZWN0bHlBdHRyaWJ1dGUiKTsKIH0KQEAgLTYwOCw3ICs2MDgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNP
TmFibGVBdHRyaWJ1dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExOdWxsYWJsZTxJRExJbnRlcmZhY2U8VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+Pj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwubmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVj
dGx5VG9KU09OYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05OaW50aE9wdGlvbmFsRGlyZWN0bHlU
b0pTT05hYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTk5p
bnRoT3B0aW9uYWxEaXJlY3RseVRvSlNPTmFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJu
aW50aE9wdGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXRlIik7CiB9CkBAIC02MjYsNyAr
NjI2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05OaW50aE9w
dGlvbmFsRGlyZWN0bHlUb0pTT05hYmxlQXR0cmlidXQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJs
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTk5pbnRoT3B0aW9uYWxEaXJlY3RseVRvSlNP
TmFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNldDxzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09OTmludGhPcHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibmludGhP
cHRpb25hbERpcmVjdGx5VG9KU09OYWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjM5LDcgKzYzOSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5B
cnJheUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETEZyb3plbkFycmF5PElETEJvb2xlYW4+PihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZW50aEZy
b3plbkFycmF5QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1
bHRUb0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVu
QXJyYXlBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVGVudGhG
cm96ZW5BcnJheUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2Vy
dD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlbnRoRnJvemVuQXJyYXlBdHRy
aWJ1dGUiKTsKIH0KQEAgLTY1Nyw3ICs2NTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlRlbnRoRnJvemVuQXJyYXlBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05UZW50aEZy
b3plbkFycmF5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVGVudGhGcm96ZW5BcnJheUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6c2V0PHNldEpTVGVzdERlZmF1bHRU
b0pTT05UZW50aEZyb3plbkFycmF5QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ0ZW50aEZyb3plbkFycmF5QXR0cmlidXRlIik7
CiB9CkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1
bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2VxdWVuY2U8SURMRE9NU3RyaW5n
Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93
U2NvcGUsIGltcGwuZWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1
bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpnZXQ8anNUZXN0
RGVmYXVsdFRvSlNPTkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJl
bGV2ZW50aFNlcXVlbmNlQXR0cmlidXRlIik7CiB9CkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05FbGV2ZW50aFNlcXVlbmNlQXR0cmli
dXRlU2V0dGVyKEpTR2xvYmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RE
ZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkVsZXZlbnRoU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTj46OnNl
dDxzZXRKU1Rlc3REZWZhdWx0VG9KU09ORWxldmVudGhTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZWxldmVudGhT
ZXF1ZW5jZUF0dHJpYnV0ZSIpOwogfQpAQCAtNzAxLDcgKzcwMSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmli
dXRlR2V0dGVyCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNl
cXVlbmNlPElETEludGVyZmFjZTxUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD4+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC50d2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdERlZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRv
SlNPTj46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHdlbGZ0aEludGVyZmFjZVNlcXVlbmNlQXR0cmlidXRl
Iik7CiB9CkBAIC03MTksNyArNzE5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERl
ZmF1bHRUb0pTT05Ud2VsZnRoSW50ZXJmYWNlU2VxdWVuY2VBdHRyaWJ1dGVTZXR0ZXIKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVy
ZmFjZVNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OVHdlbGZ0aEludGVyZmFj
ZVNlcXVlbmNlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTlR3ZWxmdGhJbnRlcmZhY2VTZXF1ZW5jZUF0dHJpYnV0ZVNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidHdlbGZ0aElu
dGVyZmFjZVNlcXVlbmNlQXR0cmlidXRlIik7CiB9CkBAIC03MzIsNyArNzMyLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVjb3JkQXR0cmli
dXRlR2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRv
SlM8SURMUmVjb3JkPElETERPTVN0cmluZywgSURMVW5zaWduZWRTaG9ydD4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRo
aXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
RGVmYXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OVGhpcnRl
ZW50aFJlY29yZEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09OPjo6Z2V0PGpzVGVzdERlZmF1bHRUb0pTT05U
aGlydGVlbnRoUmVjb3JkQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidGhpcnRlZW50aFJlY29y
ZEF0dHJpYnV0ZSIpOwogfQpAQCAtNzUwLDcgKzc1MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3REZWZhdWx0VG9KU09OVGhpcnRlZW50aFJlY29yZEF0dHJpYnV0ZVNldHRlcihKU0ds
b2JhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTlRo
aXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05UaGlydGVlbnRoUmVj
b3JkQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT04+OjpzZXQ8c2V0SlNUZXN0RGVm
YXVsdFRvSlNPTlRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInRoaXJ0ZWVudGhSZWNvcmRBdHRyaWJ1
dGUiKTsKIH0KQEAgLTc4Nyw3ICs3ODcsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoSlNHbAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05Qcm90b3R5cGVGdW5j
dGlvblRvSlNPTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REZWZhdWx0
VG9KU09OPjo6Y2FsbDxqc1Rlc3REZWZhdWx0VG9KU09OUHJvdG90eXBlRnVuY3Rpb25Ub0pTT05C
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNw
cAppbmRleCA2NjRkNzFmMWQzZWM5ODgwNjhhOTU3YjhiYzA2YzliZGNlZGM4YzNmLi42MjQzYWFl
NjVmYzU4MTM3MDI5MTRjMzc4Y2ZhYjBjNzMwYTExOTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVk
QnlFeHBvc2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkLmNwcApAQCAtNDksMTUgKzQ5
LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKTsKIAogLy8gQXR0cmlidXRl
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhw
b3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRl
cmVkQnlFeHBvc2VkV2luZG93QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2VkV29ya2Vy
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlF
eHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE5Miw3ICsxOTIsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQqIElETE9wZXJh
dGlvbjxKU1Rlc3REZWZhdQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3Qp
LCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZh
dWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJl
ZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAyLDcgKzIwMiw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3REZWZhdWx0VG9K
U09ORmlsdGVyZWRCeUV4cG9zZWQ6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMjMsNyArMjIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05GaWx0ZXJlZEJ5RXhwb3NlZE5vcm1hbEF0dHJpYnV0ZUdldHRlcigKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5ub3JtYWxBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkTm9ybWFsQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWROb3JtYWxBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJub3JtYWxBdHRyaWJ1dGUiKTsKIH0K
QEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0RGVmYXVsdFRv
SlNPTkZpbHRlcmVkQnlFeHBvc2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kbwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExEb3VibGU+KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIGltcGwuZmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkRmlsdGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRC
eUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVy
ZWRCeUV4cG9zZWQ+OjpnZXQ8anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkRmls
dGVyZWRCeUV4cG9zZWRXaW5kb3dBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2
aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJmaWx0ZXJlZEJ5
RXhwb3NlZFdpbmRvd0F0dHJpYnV0ZSIpOwogfQpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJl
ZEJ5RXhwb3NlZFdvcmtlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maWx0
ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtl
ckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZEZpbHRlcmVkQnlFeHBvc2Vk
V29ya2VyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmdldDxqc1Rlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRGaWx0ZXJlZEJ5RXhwb3NlZFdvcmtlckF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgImZpbHRlcmVkQnlFeHBvc2VkV29ya2VyQXR0cmlidXRlIik7
CiB9CkBAIC0yNzEsNyArMjcxLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRQcm90b3R5cGVGdW5jdGkKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rp
b25Ub0pTT04oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZD46OmNh
bGw8anNUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkUHJvdG90eXBlRnVuY3Rpb25U
b0pTT05Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvSlNPTiIpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhl
cml0YW5jZS5jcHAKaW5kZXggNGRjMWRjMGQ4MWIxYjg5NmZiMDhhMjZiNWY3ODcwYWU0NWUwMWFh
Mi4uZmRkNjUzNTFjNzIyNDU1NmRjZGM0MTFlMTJmNzNkZjI3MmJlMWViYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T05JbmRpcmVjdEluaGVyaXRhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2UuY3Bw
CkBAIC00Myw4ICs0Myw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0
YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05JbmRpcmVj
dEluaGVyaXRhbmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJl
Y3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE0MSw3ICsxNDEsNyBAQCBKU1ZhbHVlIEpTVGVz
dERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlOjpnZXRDb25zdHJ1Y3RvcihWTSYgdm0s
IGNvbnN0IEpTRwogICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1Rlc3REZWZhdWx0VG9K
U09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yPih2bSwgKmpzQ2FzdDxjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNP
TkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdC5j
cHAKaW5kZXggMDY5NWEzYTFlMWFhZTZlMjA5NWViOGJjNTU4YjdlMGVhOGVkYmUzNS4uOWZjODA0
YjE2OGYzNDViMWE2NDEzNDAyYTZkODg5OThmZjgzMzQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXQuY3BwCkBAIC02NiwxNCArNjYsMTQgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09O
KTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pT
T05Jbmhlcml0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEluaGVy
aXRMb25nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKQEAgLTE4Miw3ICsxODIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdCogSURMT3BlcmF0aW9uPEpTVGVzdERlZmF1bHRUb0pTT05JbgogICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Kj4oSlNDOjpnZXRWTSgm
bGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTkyLDcgKzE5Miw3IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3REZWZhdWx0VG9K
U09OSW5oZXJpdDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExvbmdBdHRyaWJ1
dGVHZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5pbmhlcml0TG9u
Z0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdEluaGVyaXRMb25nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9u
Z0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdEluaGVyaXRMb25nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiaW5oZXJpdExvbmdBdHRy
aWJ1dGUiKTsKIH0KQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZVNldHRlcihKU0dsbwog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
SW5oZXJpdExvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0SW5oZXJpdExv
bmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQ+OjpzZXQ8c2V0SlNU
ZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRJbmhlcml0TG9uZ0F0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiaW5oZXJpdExvbmdBdHRy
aWJ1dGUiKTsKIH0KQEAgLTI2OSw3ICsyNjksNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0UHJvdG90eXBlRnVuY3Rpb25Ub0pTT05Cbwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9u
VG9KU09OKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Pjo6Y2FsbDxqc1Rlc3REZWZhdWx0VG9KU09O
SW5oZXJpdFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJ0b0pTT04iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsLmNwcAppbmRleCBkZDAyYzZlYjU0MWM2NjBlMGYwYjZkMTllYzM3
NmYyYjQ3NDhhZjRlLi4xODFhNTIxMmI1NzExODNjYzU2OTUwN2E1Nzg2NzE0MmEyYjVjNDA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwuY3BwCkBA
IC02NiwxNiArNjYsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REZWZhdWx0VG9KU09OSW5o
ZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGVGdW5jdGlvblRvSlNPTik7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRv
SlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFs
TG9uZ0F0dHJpYnV0ZUJhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJp
dEZpbmFsRmluYWxMb25nQXR0cmlidXRlQmFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb28oSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
RmluYWxMb25nQXR0cmlidXRlRm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRl
QmFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4NSw3ICsxODUsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsKiBJRExPcGVyYXRpb248SlNUZXN0RGVm
YXVsdFRvSgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWwqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRGaW5hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMTk1LDcgKzE5NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5h
bENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMTYsNyArMjE2LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVGb29H
ZXR0ZXIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5maW5hbExvbmdBdHRyaWJ1dGVG
b28oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExv
bmdBdHRyaWJ1dGVGb28oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbD46OmdldDxqc1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
ZmluYWxMb25nQXR0cmlidXRlRm9vIik7CiB9CkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRy
aWJ1dGVGb29TZXR0ZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsRmluYWxMb25nQXR0cmlidXRlRm9vKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWw+OjpzZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUZvb1NldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZmluYWxMb25nQXR0cmlidXRlRm9vIik7CiB9CkBAIC0y
NDcsNyArMjQ3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdERlZmF1bHRUb0pTT05J
bmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJHZXR0ZXIKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5maW5hbExvbmdBdHRyaWJ1dGVCYXIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJh
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RGVmYXVsdFRvSlNP
TkluaGVyaXRGaW5hbD46OmdldDxqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxM
b25nQXR0cmlidXRlQmFyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZmluYWxMb25nQXR0cmlidXRlQmFyIik7
CiB9CkBAIC0yNjUsNyArMjY1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdERlZmF1
bHRUb0pTT05Jbmhlcml0RmluYWxGaW5hbExvbmdBdHRyaWJ1dGVCYXJTZXR0ZXIKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmlu
YWxMb25nQXR0cmlidXRlQmFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsRmluYWxM
b25nQXR0cmlidXRlQmFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw+Ojpz
ZXQ8c2V0SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbEZpbmFsTG9uZ0F0dHJpYnV0ZUJh
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
ZmluYWxMb25nQXR0cmlidXRlQmFyIik7CiB9CkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIGlu
bGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90
eXBlRnVuY3Rpb25Ub0oKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbFByb3RvdHlwZUZ1bmN0aW9uVG9KU09OKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRG
aW5hbD46OmNhbGw8anNUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbFByb3RvdHlwZUZ1bmN0
aW9uVG9KU09OQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b0pTT04i
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RG9tYWluU2VjdXJpdHkuY3BwCmluZGV4IGI1YzU4OTM2ODI3NTEy
Y2I2ZGI4ZmQ0MDI4NDhkMzFkOGFkMTIwZTkuLjBlM2Q5MzkzYTQ5MWExZmMwNDc4YzhhOGIyZjI2
ODBiMTk3OWRhOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3REb21haW5TZWN1cml0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERvbWFpblNlY3VyaXR5LmNwcApAQCAtNTIsMTUg
KzUyLDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RG9tYWluU2VjdXJpdHlQcm90b3R5cGVG
dW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0RG9tYWluU2Vj
dXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uRXhjaXRpbmdGdW5jdGlvbik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBl
RnVuY3Rpb25Qb3N0TWVzc2FnZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERv
bWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKTsKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0RG9tYWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWluU2Vj
dXJpdHlDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdERvbWFp
blNlY3VyaXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpT
VGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xOTEsNyArMTkxLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0RG9tYWluU2VjdXJpdHkqIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46
OmNhc3QKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3REb21haW5TZWN1cml0eSo+KEpT
Qzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWlu
U2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0g
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RG9tYWluU2VjdXJp
dHk6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3REb21haW5TZWN1cml0
eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMjI2LDcgKzIyNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RE
b21haW5TZWN1cml0eUV4Y2l0aW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZXhjaXRpbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdERvbWFpblNlY3VyaXR5RXhjaXRpbmdBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RG9tYWluU2VjdXJpdHlF
eGNpdGluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpnZXQ8anNUZXN0RG9tYWluU2VjdXJpdHlFeGNpdGlu
Z0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsICJleGNpdGluZ0F0dHIiKTsKIH0KQEAgLTI1Miw3ICsyNTIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RG9tYWluU2VjdXJp
dHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
RG9tYWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvbkV4Y2l0aW5nRnVuY3Rpb24oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25F
eGNpdGluZ0Z1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdERv
bWFpblNlY3VyaXR5Pjo6Y2FsbDxqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9u
RXhjaXRpbmdGdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
ZXhjaXRpbmdGdW5jdGlvbiIpOwogfQpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9u
UG9zdE1lc3NhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3REb21haW5TZWN1cml0eVByb3Rv
dHlwZUZ1bmN0aW9uUG9zdE1lc3NhZ2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dERvbWFpblNlY3VyaXR5UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3REb21haW5TZWN1cml0eT46OmNhbGw8anNUZXN0RG9t
YWluU2VjdXJpdHlQcm90b3R5cGVGdW5jdGlvblBvc3RNZXNzYWdlQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJwb3N0TWVzc2FnZSIpOwogfQpAQCAtMzMzLDcgKzMzMyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3REb21haW5TZWN1cml0
eVByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0
aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3REb21haW5TZWN1cml0eVByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRlZE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0RG9tYWluU2VjdXJp
dHlQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0RG9tYWluU2VjdXJpdHk+OjpjYWxsPGpzVGVzdERvbWFpblNlY3Vy
aXR5UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWREaXNwYXRjaGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRob2QiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRleCAyNTU5NDFjY2JmYmVkNDRl
NTk3NzJlZWY1YThmZDAxZWE2MDE0YTJjLi43M2M1NjkwOTliY2NmMDZjNDVjMWUwNDQyMjZmODI2
NzRiMDJjZTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCkBAIC01Miwy
NSArNTIsMjUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIC8vIEZ1bmN0aW9ucwogCiAjaWYgRU5B
QkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXR0aW5nT3BlcmF0
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFi
bGVkQnlTZXR0aW5nT3BlcmF0aW9uKTsKICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0
U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJs
ZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpFbmFi
bGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0
aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVk
QnlTZXR0aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlT
ZXR0aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29T
ZXR0aW5nc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5h
YmxlZEJ5VHdvU2V0dGluZ3NBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRp
bmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVk
QnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAK
IGNsYXNzIEpTVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI2Myw3ICsyNjMsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKiBJRExPcGVyYXRpb248SlNUZXN0RW5h
YmxlZEJ5U2V0dGluZz46OgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEVuYWJsZWRC
eVNldHRpbmcqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjczLDcgKzI3Myw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTIsNyArMjkyLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG8KICAgICByZXR1cm4gSlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3Vi
T2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1Rlc3RTdWJPYmpF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RFbmFi
bGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0
aW5nIik7CiB9CkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG8KICAg
ICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN1Yk9iakVuYWJsZWRCeVNl
dHRpbmciKSwgc3RybGVuKCJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpKSwgdmFsdWUpOwog
fQogCi1ib29sIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0
dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nVGVzdFN1Yk9iakVuYWJsZWRC
eVNldHRpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6c2V0PHNl
dEpTVGVzdEVuYWJsZWRCeVNldHRpbmdUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAtMzE4LDcgKzMxOCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGlu
Z0F0dHJpYnV0ZUdldHRlcihKU0dsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5lbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RW5hYmxlZEJ5U2V0
dGluZ0VuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RW5hYmxlZEJ5U2V0dGluZz46OmdldDxqc1Rlc3RF
bmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKTsKIH0KQEAgLTMzOSw3ICszMzksNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ0VuYWJsZWRCeVNldHRpbmdB
dHRyaWJ1dGVTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nRW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nPjo6c2V0PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlTZXR0aW5nQXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIik7CiB9CkBAIC0zNTUsNyArMzU1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29T
ZXR0aW5nc0F0dHJpYnV0ZUdldHRlcigKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBp
bXBsLmVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVu
YWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5n
Pjo6Z2V0PGpzVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRCeVR3b1NldHRpbmdzQXR0cmlidXRlIik7CiB9CkBA
IC0zNzYsNyArMzc2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEVuYWJsZWRCeVNl
dHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZVNldHRlcigKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nRW5hYmxlZEJ5VHdvU2V0dGlu
Z3NBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nPjo6c2V0PHNldEpTVGVzdEVuYWJs
ZWRCeVNldHRpbmdFbmFibGVkQnlUd29TZXR0aW5nc0F0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEJ5VHdvU2V0dGlu
Z3NBdHRyaWJ1dGUiKTsKIH0KQEAgLTM5MSw3ICszOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZUdldHRlcihKU0ds
b2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJp
bmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RFbmFibGVk
QnlTZXR0aW5nU3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxBdHRyaWJ1dGUoaW1wbCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFsQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRCeVNldHRpbmc+
OjpnZXQ8anNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInN1cHBsZW1lbnRhbEF0dHJpYnV0ZSIpOwogfQpAQCAtNDA5LDcgKzQwOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RFbmFibGVkQnlTZXR0aW5nU3VwcGxlbWVudGFs
QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxl
ZEJ5U2V0dGluZ1N1cHBsZW1lbnRhbEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkQnlTZXR0
aW5nPjo6c2V0PHNldEpTVGVzdEVuYWJsZWRCeVNldHRpbmdTdXBwbGVtZW50YWxBdHRyaWJ1dGVT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN1
cHBsZW1lbnRhbEF0dHJpYnV0ZSIpOwogfQpAQCAtNDMyLDcgKzQzMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVu
Y3Rpb25FbmFibGVkCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RFbmFibGVkQnlTZXR0aW5n
UHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RFbmFibGVkQnlTZXR0aW5nUHJvdG90eXBlRnVuY3Rpb25FbmFi
bGVkQnlTZXR0aW5nT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdEVuYWJsZWRCeVNldHRpbmc+OjpjYWxsPGpzVGVzdEVuYWJsZWRCeVNldHRpbmdQcm90b3R5
cGVGdW5jdGlvbkVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFi
bGVkRm9yQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RW5hYmxlZEZvckNvbnRleHQuY3BwCmluZGV4IDNkZWIwMGM0ZDUzMGYyNTI5ZmU1
MmVlOTRlYTNmZGJhYzBhOGFkNGEuLjcwYzgxMjcyMjg3ZTliYzE3ZGIzZTIwYTg0OTg2Y2JlM2Ex
OGM0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFbmFibGVkRm9yQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRGb3JDb250ZXh0LmNwcApAQCAtNDgsMTAg
KzQ4LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9y
Q29udGV4dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0
VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0
U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dEVuYWJsZWRGb3JDb250ZXh0UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjIsNyArMTYyLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0RW5hYmxlZEZvckNvbnRleHQqIElETEF0dHJpYnV0ZTxKU1Rlc3RFbmFibGVkRm9yQ29u
dGV4dD4KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RFbmFibGVkRm9yQ29udGV4dCo+
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcyLDcgKzE3Miw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RFbmFibGVkRm9yQ29udGV4dDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpT
VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTEsNyArMTkxLDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWMKICAgICByZXR1cm4gSlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmpl
Y3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1
Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJP
YmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0Pjo6Z2V0PGpzVGVz
dEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqRW5hYmxl
ZEZvckNvbnRleHQiKTsKIH0KQEAgLTIwMyw3ICsyMDMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0RW5hYmxlZEZvckNvbnRleHRUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHRDb25z
dHJ1YwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3ViT2JqRW5h
YmxlZEZvckNvbnRleHQiKSwgc3RybGVuKCJUZXN0U3ViT2JqRW5hYmxlZEZvckNvbnRleHQiKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RTdWJPYmpF
bmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RFbmFibGVkRm9yQ29udGV4dFRlc3RT
dWJPYmpFbmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEVuYWJsZWRGb3JD
b250ZXh0Pjo6c2V0PHNldEpTVGVzdEVuYWJsZWRGb3JDb250ZXh0VGVzdFN1Yk9iakVuYWJsZWRG
b3JDb250ZXh0Q29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTdWJPYmpFbmFibGVkRm9yQ29udGV4dCIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDE1MDhkMzVmMGNkY2E0NjliOWNj
MjlmN2JkMjJhOWI5MGY2MmE4ZDguLjljOGY4NTUxYTdmNjg2OGEyNTBmNTgxNWRhMWFlNDQ2NzY0
MjdmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTEyMywxMiAr
MTIzLDEyIEBAIHRlbXBsYXRlPD4gVGVzdEV2ZW50Q29uc3RydWN0b3I6OkluaXQgY29udmVydERp
Y3Rpb25hcnk8VGVzdEV2ZW50Q29uc3RydWN0b3I6OkluCiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
RXZlbnRDb25zdHJ1Y3RvckF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjaWYgRU5BQkxFKFNQRUNJ
QUxfRVZFTlQpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRy
MyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29u
c3RydWN0b3JBdHRyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAKIGNsYXNzIEpTVGVzdEV2ZW50Q29uc3RydWN0
b3JQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTE2
NSw3ICsxNjUsNyBAQCBTVEFUSUNfQVNTRVJUX0lTT19TVUJTUEFDRV9TSEFSQUJMRShKU1Rlc3RF
dmVudENvbnN0cnVjdG9yUHJvdG90eXBlLCBKU1Rlc3RFdmVudAogCiB1c2luZyBKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yPEpTVGVzdEV2ZW50Q29u
c3RydWN0b3I+OwogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQordGVtcGxhdGU8PiBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMX0FUVFJJQlVURVMgSlNUZXN0RXZlbnRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9i
YWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xODgsNiArMTg4LDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Y29uc3QKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdEV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0RXZl
bnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yNjIsNyAr
MjYzLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogSURMQXR0
cmlidXRlPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+OjoKICAgICByZXR1cm4ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjcyLDcgKzI3Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
OTMsNyArMjk0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0
b3JBdHRyMUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHIxKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFdmVudENvbnN0cnVjdG9y
Pjo6Z2V0PGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImF0dHIx
Iik7CiB9CkBAIC0zMDYsNyArMzA3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHIyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMkdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgImF0dHIyIik7CiB9CkBAIC0zMjAsNyArMzIxLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyM0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHIzKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMyhKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV2ZW50Q29uc3Ry
dWN0b3JBdHRyMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPjo6Z2V0PGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRy
M0dldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgImF0dHIzIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApp
bmRleCA3ZTYxNDU0ZmY1OWRlZTg3ZmM5NmIxOTYyMDc4MDg1ZDVjNGY3MzEzLi4wMzIxNzI0NmRk
ZjY1NjE1YjRhODliZTc2MWUyZDlkOTMzMTEyYzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5j
cHAKQEAgLTUwLDEyICs1MCwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlv
bnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50VGFyZ2V0
UHJvdG90eXBlRnVuY3Rpb25JdGVtKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RFdmVudFRhcmdldFByb3RvdHlw
ZUZ1bmN0aW9uSXRlbSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RXZl
bnRUYXJnZXRQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTIyNiw3ICsyMjYsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFdmVu
dFRhcmdldCogSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2FzdChKU0dsbwogICAg
IHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMjM2LDcgKzIzNiw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RFdmVudFRhcmdldDo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEV2ZW50
VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNjQsNyArMjY0LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFyZ2V0UHJvdG90
eXBlRnVuY3Rpb25JdGVtQm9keShKU0MKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLml0ZW0oV1RGTW92ZShp
bmRleCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEV2ZW50
VGFyZ2V0UHJvdG90eXBlRnVuY3Rpb25JdGVtKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZUZ1bmN0aW9uSXRlbSwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RFdmVudFRhcmdldD46OmNhbGw8anNUZXN0RXZlbnRUYXJnZXRQ
cm90b3R5cGVGdW5jdGlvbkl0ZW1Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIml0ZW0iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggZTA3YjRlYTU3ZDVkOGM4
Yjc0MzZkNGRjMDcwM2ZlMTlmYmFjN2RjNy4uYjYxMDAxOGMyOTRiOTEyNGY1NDhiYzYwNGMxM2Mw
ZjQyNjA2NGY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKQEAgLTQ2LDkgKzQ2LDkgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEV4Y2VwdGlv
bkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9u
TmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXhjZXB0
aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0RXhjZXB0aW9uUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0x
NTgsNyArMTU4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXhjZXB0aW9uKiBJRExBdHRy
aWJ1dGU8SlNUZXN0RXhjZXB0aW9uPjo6Y2FzdChKU0dsb2JhbE8KICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY4LDcg
KzE2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RFeGNlcHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7CkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEV4Y2VwdGlvbk5hbWVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm5hbWUoKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uTmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0RXhjZXB0aW9uPjo6
Z2V0PGpzVGVzdEV4Y2VwdGlvbk5hbWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJuYW1lIik7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2Vu
ZXJhdGVJc1JlYWNoYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKaW5kZXggNTY0ZjZmZGNmZDY1YmE4
MGUwYTQwY2E0YjIxZDhkYTU1MGY0MWQxZC4uZGI1ZmRkOTg5ODM5YjM5NDNkMzdiZGY1MTU3MjY5
MmNhNjUwODFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcApA
QCAtNDYsOSArNDYsOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3Jl
dEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0x
NjgsNyArMTY4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSogSURMQXR0cmlidXRlPEpTVGVzdEdlbmVyYXRlSXNSZWFjaGEKICAgICByZXR1cm4ganNEeW5h
bWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTc4LDcgKzE3OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0xOTksNyArMTk5LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRlR2V0dGVyKEpTR2xv
YmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmFTZWNyZXRBdHRyaWJ1
dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUFT
ZWNyZXRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQVNlY3JldEF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlPjo6Z2V0PGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVBU2VjcmV0QXR0cmlidXRl
R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCAiYVNlY3JldEF0dHJpYnV0ZSIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFs
T2JqZWN0LmNwcAppbmRleCBiNDIwODZhMDE1YjU5MDAyNzI0NTM5OWNjNWVmZTM2NTEyMDlkNTlk
Li5hMTY2NDcyNzZhYjFlNTYyYzcxMzZmYWZhN2M4N2QwZTVkOGUzOGVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2xvYmFsT2JqZWN0LmNwcApAQCAtMTM3LDE5MyArMTM3LDE5MyBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25SZWd1bGFyT3BlcmF0aW9uKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhdGlvbik7
CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9w
ZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb24pOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RDb25z
dHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVy
YXRpb25TdGF0aWMpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJs
ZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dv
cmxkV2hlblJ1bnRpbWVGZWF0dXJlc0VuYWJsZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNw
ZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNp
ZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVzRW5hYmxlZCk7CiAjaWYgRU5BQkxFKFRFU1RfRkVB
VFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmpl
Y3RJbnN0YW5jZUZ1bmN0aW9uVGVzdFByaXZhdGVGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rpb24pOwogI2VuZGlmCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RH
bG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rp
b25HZXRTZWNyZXRCb29sZWFuKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rp
b25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4pOwogI2VuZGlmCiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFBy
aXZhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5k
UHJpdmF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmli
dXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0
aW9uYWxBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RE9N
V2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RE9NV2lu
ZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQYWludFdvcmts
ZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdERP
TVdpbmRvd0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0RGVkaWNh
dGVkV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFBhaW50V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RD
RVJlYWN0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5B
QkxFKFRFU1RfQ09ORElUSU9OQUwpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2Fs
bGJhY2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
ICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRp
b25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJp
dGFuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRU
b0pTT05Jbmhlcml0RmluYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3Vy
aXR5Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNvbnRleHRD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZv
ckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRp
dGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1ZGVzQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJ
bmhlcml0YW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVs
dFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJpdHlDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RW5hYmxlZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25D
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRl
cnNjb3JlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9w
ZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJ
dGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9u
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RBdWRpb0Nv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4
ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1l
ZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRT
ZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lm
IEVOQUJMRShDb25kaXRpb25EZXJpdmVkKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1h
cExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVh
ZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJh
TWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtl
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlm
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5v
bnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck5hbWVkT3Bl
cmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
U3RyaW5naWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2Nv
cGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIHVzaW5nIEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVj
dG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0R2xvYmFsT2JqZWN0
PjsKIApAQCAtODI3LDcgKzgyNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEdsb2JhbE9i
amVjdCogSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhc3QoSlNHCiAgICAgcmV0
dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4oSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC04MzcsNyArODM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEdsb2JhbE9iamVjdDo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTg1OCw3ICs4NTgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwucmVndWxhckF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RSZWd1bGFyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZUdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgInJlZ3VsYXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTg3Niw3ICs4NzYsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UmVndWxhckF0dHJpYnV0ZVNldHRl
cihKU0dsb2JhbE9iamVjdCYgbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFJlZ3VsYXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFJlZ3VsYXJB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFJlZ3VsYXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgInJlZ3VsYXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTg4OSw3ICs4ODks
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJp
dmF0ZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwucHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2Jq
ZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0UHVibGljQW5kUHJpdmF0ZUF0dHJpYnV0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTkwNyw3
ICs5MDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGlj
QW5kUHJpdmF0ZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVBdHRy
aWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgInB1YmxpY0FuZFByaXZhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTkyMSw3ICs5MjEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNv
bmRpdGlvbmFsQXR0cmlidXRlR2V0dAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwucHVibGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0UHVibGljQW5kUHJpdmF0ZUNvbmRpdGlv
bmFsQXR0cmlidXRlR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicHVi
bGljQW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlIik7CiB9CkBAIC05NDIsNyArOTQyLDcg
QEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZh
dGVDb25kaXRpb25hbEF0dHJpYnV0ZVNldHQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RQdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxBdHRyaWJ1dGUo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFB1YmxpY0FuZFByaXZhdGVDb25kaXRpb25hbEF0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0UHVibGlj
QW5kUHJpdmF0ZUNvbmRpdGlvbmFsQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJwdWJsaWNBbmRQcml2YXRlQ29uZGl0aW9uYWxB
dHRyaWJ1dGUiKTsKIH0KQEAgLTk1OCw3ICs5NTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZUdldHRlcihKU0dsb2Jh
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEF0UnVudGltZUF0
dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RFbmFi
bGVkQXRSdW50aW1lQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RH
bG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJp
YnV0ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGUiKTsKIH0KQEAgLTk3OSw3ICs5NzksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVNldHRlcihK
U0dsb2JhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdEVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdEVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTk5Miw3ICs5OTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
R2xvYmFsT2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBKU0RPTVdpbmRvdzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RET01XaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdERP
TVdpbmRvd0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RET01X
aW5kb3dDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IkRPTVdpbmRvdyIpOwogfQpAQCAtMTAwNCw3ICsxMDA0LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFs
T2JqZWMKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiRE9NV2luZG93Iiks
IHN0cmxlbigiRE9NV2luZG93IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0RE9NV2luZG93Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdERPTVdpbmRvd0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RET01XaW5kb3dDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiRE9NV2luZG93Iik7CiB9CkBAIC0xMDE1LDcgKzEwMTUs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0RGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldAogICAgIHJldHVybiBKU0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9i
YWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OmdldDxqc1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwMjcsNyArMTAyNyw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0
cnVjdG9yU2V0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkRlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlIiksIHN0cmxlbigiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3Jr
ZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3REZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJE
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSIpOwogfQpAQCAtMTAzOCw3ICsxMDM4LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFBhaW50V29ya2xldEdsb2JhbFNj
b3BlQ29uc3RydWN0b3JHZXR0ZXIKICAgICByZXR1cm4gSlNQYWludFdvcmtsZXRHbG9iYWxTY29w
ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RQYWludFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0UGFpbnRX
b3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIik7CiB9CkBA
IC0xMDUwLDcgKzEwNTAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJQYWludFdvcmtsZXRHbG9iYWxTY29wZSIpLCBzdHJs
ZW4oIlBhaW50V29ya2xldEdsb2JhbFNjb3BlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0UGFpbnRXb3JrbGV0R2xv
YmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiUGFpbnRXb3JrbGV0R2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwNjEs
NyArMTA2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlCiAgICAgcmV0dXJuIEpTU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIik7CiB9CkBAIC0xMDczLDcgKzEwNzMsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0
b3JTZXR0ZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUiKSwgc3RybGVuKCJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEds
b2JhbE9iamVjdFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUiKTsKIH0KQEAgLTEwODQsNyArMTA4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvckdldHRlcihK
U0dsb2JhCiAgICAgcmV0dXJuIEpTVGVzdENFUmVhY3Rpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdENFUmVhY3Rpb25zIik7CiB9
CkBAIC0xMDk2LDcgKzEwOTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdENFUmVhY3Rpb25zQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q0VSZWFjdGlvbnMiKSwgc3RybGVuKCJU
ZXN0Q0VSZWFjdGlvbnMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0Q0VSZWFjdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVh
Y3Rpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Q0VSZWFjdGlvbnMiKTsK
IH0KQEAgLTExMDcsNyArMTEwNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckNvbnN0cnVjdG9yR2V0CiAgICAgcmV0
dXJuIEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdENFUmVhY3Rpb25zU3RyaW5n
aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsICJUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllciIpOwogfQpAQCAtMTExOSw3ICsxMTE5
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0
aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3JTZXQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIiKSwgc3RybGVuKCJUZXN0Q0VS
ZWFjdGlvbnNTdHJpbmdpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyIik7CiB9CkBAIC0x
MTMwLDcgKzExMzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdENhbGxUcmFjZXJDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbAogICAgIHJldHVybiBKU1Rl
c3RDYWxsVHJhY2VyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsVHJhY2VyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiVGVzdENhbGxUcmFjZXIiKTsKIH0KQEAgLTExNDIsNyArMTE0Miw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVj
dG9yU2V0dGVyKEpTR2xvYmFsCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3RDYWxsVHJhY2VyIiksIHN0cmxlbigiVGVzdENhbGxUcmFjZXIiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEds
b2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbFRyYWNlckNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0Q2FsbFRyYWNlciIpOwogfQpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDYWxsYmFja0ludGVyZmFjZUNvbnN0
cnVjdG9yR2V0dGVyKEoKICAgICByZXR1cm4gSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENh
bGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0Q2FsbGJhY2tJbnRlcmZhY2UiKTsKIH0KQEAgLTExNjksNyArMTE2OSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJhY2tJ
bnRlcmZhY2VDb25zdHJ1Y3RvclNldHRlcihKCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RDYWxsYmFja0ludGVyZmFjZSIpLCBzdHJsZW4oIlRlc3RDYWxsYmFja0lu
dGVyZmFjZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RD
YWxsYmFja0ludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2FsbGJh
Y2tJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENhbGxiYWNrSW50ZXJmYWNlQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDYWxs
YmFja0ludGVyZmFjZSIpOwogfQpAQCAtMTE4Miw3ICsxMTgyLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2Jq
ZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KQEAgLTExOTQsNyArMTE5NCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpLCBzdHJsZW4oIlRlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvciIpOwogfQpAQCAtMTIwNSw3ICsxMjA1LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RDb25kaXRpb25hbEluY2x1
ZGVzQ29uc3RydWN0b3JHZXR0ZXIKICAgICByZXR1cm4gSlNUZXN0Q29uZGl0aW9uYWxJbmNsdWRl
czo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0Q29uZGl0aW9uYWxJbmNsdWRlc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdENv
bmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFs
T2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIik7CiB9CkBA
IC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvclNldHRlcgogICAgIHJldHVybiB0
aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0Q29uZGl0aW9uYWxJbmNsdWRlcyIpLCBzdHJs
ZW4oIlRlc3RDb25kaXRpb25hbEluY2x1ZGVzIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFsSW5jbHVkZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdENvbmRpdGlvbmFs
SW5jbHVkZXNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdENvbmRpdGlvbmFsSW5jbHVkZXMiKTsKIH0KQEAgLTEyMjgs
NyArMTIyOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
RE9NSklUQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVGVzdERP
TUpJVDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RET01KSVRDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RET01KSVQi
KTsKIH0KQEAgLTEyNDAsNyArMTI0MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYWxPYmplCiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RET01KSVQiKSwgc3RybGVuKCJU
ZXN0RE9NSklUIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dERPTUpJVENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RE9NSklUQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RET01KSVRDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERPTUpJVCIpOwogfQpAQCAtMTI1MSw3ICsxMjUxLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09O
Q29uc3RydWN0b3JHZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gSlNUZXN0RGVmYXVsdFRvSlNPTjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pT
T05Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1
bHRUb0pTT05Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgIlRlc3REZWZhdWx0VG9KU09OIik7CiB9CkBAIC0xMjYzLDcgKzEyNjMsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1
Y3RvclNldHRlcihKU0dsbwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0RGVmYXVsdFRvSlNPTiIpLCBzdHJsZW4oIlRlc3REZWZhdWx0VG9KU09OIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1
bHRUb0pTT05Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT04iKTsKIH0KQEAgLTEyNzQsNyArMTI3
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVs
dFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRU
b0pTT05JbmRpcmVjdEluaGVyaXRhbmNlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhl
cml0YW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdElu
aGVyaXRhbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdElu
aGVyaXRhbmNlIik7CiB9CkBAIC0xMjg2LDcgKzEyODYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNl
Q29ucwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiKSwgc3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkluZGly
ZWN0SW5oZXJpdGFuY2UiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RGVmYXVsdFRvSlNPTkluZGlyZWN0SW5oZXJpdGFuY2VDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05JbmRpcmVjdEluaGVyaXRhbmNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3REZWZhdWx0VG9KU09OSW5kaXJlY3RJbmhlcml0YW5jZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRv
SlNPTkluZGlyZWN0SW5oZXJpdGFuY2UiKTsKIH0KQEAgLTEyOTcsNyArMTI5Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVy
aXRDb25zdHJ1Y3RvckdldHRlCiAgICAgcmV0dXJuIEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdERl
ZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Iik7CiB9
CkBAIC0xMzA5LDcgKzEzMDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3JTZXR0ZQogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiKSwg
c3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhlcml0Q29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZh
dWx0VG9KU09OSW5oZXJpdENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXQiKTsKIH0K
QEAgLTEzMjAsNyArMTMyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbENvbnN0cnVjdG9yCiAgICAgcmV0dXJu
IEpTVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWw6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERlZmF1bHRUb0pTT05Jbmhl
cml0RmluYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZp
bmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3REZWZh
dWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpOwogfQpAQCAt
MTMzMiw3ICsxMzMyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERlZmF1bHRUb0pTT05Jbmhlcml0RmluYWwiKSwg
c3RybGVuKCJUZXN0RGVmYXVsdFRvSlNPTkluaGVyaXRGaW5hbCIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFs
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3REZWZhdWx0VG9KU09OSW5oZXJpdEZpbmFsQ29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3REZWZhdWx0
VG9KU09OSW5oZXJpdEZpbmFsIik7CiB9CkBAIC0xMzQzLDcgKzEzNDMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3JHZXR0ZXIoSlNHbAogICAgIHJldHVybiBKU1Rlc3REb21haW5TZWN1cml0eTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9t
YWluU2VjdXJpdHlDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWluU2VjdXJp
dHlDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3REb21haW5TZWN1cml0eSIpOwogfQpAQCAtMTM1NSw3ICsxMzU1LDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9y
U2V0dGVyKEpTR2wKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdERv
bWFpblNlY3VyaXR5IiksIHN0cmxlbigiVGVzdERvbWFpblNlY3VyaXR5IikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdERvbWFpblNlY3VyaXR5Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3REb21haW5TZWN1cml0eUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RG9tYWlu
U2VjdXJpdHlDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdERvbWFpblNlY3VyaXR5Iik7CiB9CkBAIC0xMzY2LDcgKzEz
NjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJs
ZWRCeVNldHRpbmdDb25zdHJ1Y3RvckdldHRlcihKUwogICAgIHJldHVybiBKU1Rlc3RFbmFibGVk
QnlTZXR0aW5nOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEVuYWJsZWRCeVNldHRpbmciKTsKIH0KQEAgLTEz
NzgsNyArMTM3OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yU2V0dGVyKEpTCiAgICAgcmV0dXJuIHRoaXNP
YmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJl
dF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RFbmFibGVkQnlTZXR0aW5nIiksIHN0cmxlbigiVGVz
dEVuYWJsZWRCeVNldHRpbmciKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9y
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJU
ZXN0RW5hYmxlZEJ5U2V0dGluZyIpOwogfQpAQCAtMTM4OSw3ICsxMzg5LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFbmFibGVkRm9yQ29udGV4dENvbnN0
cnVjdG9yR2V0dGVyKEoKICAgICByZXR1cm4gSlNUZXN0RW5hYmxlZEZvckNvbnRleHQ6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZvckNv
bnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEVu
YWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0RW5hYmxlZEZvckNvbnRleHQiKTsKIH0KQEAgLTE0MDEsNyArMTQwMSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxlZEZv
ckNvbnRleHRDb25zdHJ1Y3RvclNldHRlcihKCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3RFbmFibGVkRm9yQ29udGV4dCIpLCBzdHJsZW4oIlRlc3RFbmFibGVkRm9y
Q29udGV4dCIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RF
bmFibGVkRm9yQ29udGV4dENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RW5hYmxl
ZEZvckNvbnRleHRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEVuYWJsZWRGb3JDb250ZXh0Q29uc3RydWN0b3JTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RFbmFi
bGVkRm9yQ29udGV4dCIpOwogfQpAQCAtMTQxMiw3ICsxNDEyLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3JH
ZXR0ZXIoSlMKICAgICByZXR1cm4gSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRD
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3Ry
dWN0b3JDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IlRlc3RFdmVudENvbnN0cnVjdG9yIik7CiB9CkBAIC0xNDI0LDcgKzE0MjQsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvclNldHRlcihKUwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0RXZlbnRDb25zdHJ1Y3RvciIpLCBzdHJsZW4oIlRlc3RFdmVudENvbnN0cnVjdG9yIikpLCB2
YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV2ZW50Q29uc3RydWN0b3IiKTsK
IH0KQEAgLTE0MzUsNyArMTQzNSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhCiAgICAgcmV0
dXJuIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEV2ZW50VGFyZ2V0Iik7CiB9CkBAIC0xNDQ3LDcgKzE0
NDcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50
VGFyZ2V0Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1
dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJUZXN0RXZlbnRUYXJnZXQiKSwgc3RybGVuKCJUZXN0RXZlbnRUYXJnZXQi
KSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXZlbnRUYXJn
ZXRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0RXZlbnRUYXJnZXQiKTsKIH0KQEAgLTE0NTgsNyAr
MTQ1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhj
ZXB0aW9uQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIEpTVGVzdEV4Y2Vw
dGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9u
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRp
b25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRl
c3RFeGNlcHRpb24iKTsKIH0KQEAgLTE0NzAsNyArMTQ3MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RFeGNlcHRp
b24iKSwgc3RybGVuKCJUZXN0RXhjZXB0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0
PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEV4Y2VwdGlv
biIpOwogfQpAQCAtMTQ4MSw3ICsxNDgxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEdsb2JhbE9iamVjdFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3JHZXR0ZXIKICAg
ICByZXR1cm4gSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IlRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlIik7CiB9CkBAIC0xNDkzLDcgKzE0OTMsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVDb25zdHJ1Y3RvclNldHRlcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSIpLCBzdHJsZW4oIlRlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRl
SXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEdlbmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvclNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUiKTsKIH0KQEAgLTE1MDQsNyArMTUwNCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JH
ZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJuIEpTVGVzdEdsb2JhbE9iamVjdDo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFs
T2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RHbG9iYWxP
YmplY3QiKTsKIH0KQEAgLTE1MTYsNyArMTUxNiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3JTZXR0ZXIoSlNHbG9i
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RHbG9iYWxPYmplY3Qi
KSwgc3RybGVuKCJUZXN0R2xvYmFsT2JqZWN0IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0R2xvYmFsT2JqZWN0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RHbG9iYWxPYmplY3RDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dEdsb2JhbE9iamVjdCIpOwogfQpAQCAtMTUyNyw3ICsxNTI3LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IKICAgICByZXR1cm4gSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyIik7CiB9CkBAIC0xNTM5LDcgKzE1MzksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1
Y3RvcgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE1NTAsNyAr
MTU1MCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RyCiAgICAgcmV0dXJuIEpTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4
aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24iKTsKIH0KQEAgLTE1NjIsNyArMTU2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RyCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24iKSwgc3RybGVuKCJUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbiIpOwogfQpAQCAtMTU3Myw3ICsxNTczLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3QK
ICAgICByZXR1cm4gSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yR2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllciIpOwogfQpAQCAtMTU4NSw3ICsxNTg1LDcgQEAgc3RhdGljIGlubGluZSBib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3QKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZy
b21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9
CkBAIC0xNTk3LDcgKzE1OTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVy
biBKU1Rlc3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0SW50ZXJmYWNlIik7CiB9CkBAIC0xNjEyLDcgKzE2MTIsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yU2V0dGVyKEpTR2xvYmFsTwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwg
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJUZXN0SW50ZXJmYWNlIiksIHN0cmxlbigiVGVzdEludGVyZmFjZSIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2Jh
bE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3RJbnRlcmZhY2UiKTsKIH0KQEAgLTE2MjUsNyArMTYyNSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVD
b25zdHJ1Y3RvCiAgICAgcmV0dXJuIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9y
R2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdEludGVyZmFjZUxl
YWRpbmdVbmRlcnNjb3JlIik7CiB9CkBAIC0xNjM3LDcgKzE2MzcsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
Q29uc3RydWN0bwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0SW50
ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiKSwgc3RybGVuKCJUZXN0SW50ZXJmYWNlTGVhZGluZ1Vu
ZGVyc2NvcmUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xv
YmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUiKTsKIH0K
QEAgLTE2NDgsNyArMTY0OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvckdldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJu
IEpTVGVzdEl0ZXJhYmxlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVz
dEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3RJdGVyYWJsZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdEl0ZXJhYmxlIik7CiB9CkBAIC0xNjYwLDcgKzE2NjAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3JTZXR0
ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0
SXRlcmFibGUiKSwgc3RybGVuKCJUZXN0SXRlcmFibGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0SXRlcmFibGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RJdGVyYWJsZUNvbnN0cnVjdG9yU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0SXRlcmFi
bGUiKTsKIH0KQEAgLTE2NzEsNyArMTY3MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvckdldHRlCiAg
ICAgcmV0dXJuIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yIik7CiB9CkBAIC0xNjgzLDcgKzE2ODMsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yQ29uc3RydWN0b3JTZXR0ZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKSwgc3RybGVuKCJUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3IiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiKTsKIH0KQEAgLTE2OTQsNyArMTY5NCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5RmFjdG9y
eUZ1bmN0aW9uQ29uc3RydWN0b3JHZXR0CiAgICAgcmV0dXJuIEpTVGVzdDo6Z2V0TGVnYWN5RmFj
dG9yeUZ1bmN0aW9uKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2Fj
eUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIik7CiB9
CkBAIC0xNzA2LDcgKzE3MDYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yU2V0dAogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIiks
IHN0cmxlbigiVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24i
KTsKIH0KQEAgLTE3MTcsNyArMTcxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RBdWRpb0NvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAg
cmV0dXJuIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6Z2V0TGVnYWN5RmFjdG9yeUZ1bmN0
aW9uKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0QXVkaW9Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVz
dEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJBdWRpbyIpOwogfQpAQCAtMTcyOSw3ICsxNzI5LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGwKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50
aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiQXVk
aW8iKSwgc3RybGVuKCJBdWRpbyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdEF1ZGlvQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdEF1ZGlvQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdEF1
ZGlvQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIkF1ZGlvIik7CiB9CkBAIC0xNzQwLDcgKzE3NDAsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvckdldAogICAgIHJldHVybiBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMi
KTsKIH0KQEAgLTE3NTIsNyArMTc1Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yU2V0CiAgICAg
cmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zIiksIHN0cmxlbigiVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKSksIHZhbHVlKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TGVnYWN5T3ZlcnJp
ZGVCdWlsdElucyIpOwogfQpAQCAtMTc2Myw3ICsxNzYzLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9i
YWxPYmoKICAgICByZXR1cm4gSlNUZXN0TWFwTGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0
R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RNYXBMaWtlIik7CiB9CkBAIC0xNzc1LDcgKzE3NzUsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25z
dHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iagogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVj
dCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KCJUZXN0TWFwTGlrZSIpLCBzdHJsZW4oIlRlc3RNYXBMaWtlIikpLCB2YWx1ZSk7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE1hcExpa2VDb25zdHJ1Y3RvclNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVz
dE1hcExpa2UiKTsKIH0KQEAgLTE3ODYsNyArMTc4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0Nv
bnN0CiAgICAgcmV0dXJuIEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6Omdl
dENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpOwogfQpAQCAtMTc5OCw3ICsxNzk4
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3QKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMiKSwgc3RybGVu
KCJUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgIlRlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zIik7CiB9CkBAIC0xODA5
LDcgKzE4MDksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbgogICAgIHJldHVybiBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0xODIxLDcgKzE4MjEsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyIiksIHN0cmxlbigiVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTE4MzIs
NyArMTgzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpCiAgICAgcmV0dXJuIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6
OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6
Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIik7CiB9CkBAIC0x
ODQ0LDcgKzE4NDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aQogICAgIHJldHVybiB0aGlz
T2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24iKSwgc3RybGVuKCJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE4NTUsNyAr
MTg1NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyIik7CiB9CkBAIC0xODY3LDcgKzE4NjcsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyQwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0
Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIiKTsKIH0KQEAgLTE4NzgsNyArMTg3OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JHCiAg
ICAgcmV0dXJuIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxl
dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIiKTsKIH0K
QEAgLTE4OTAsNyArMTg5MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JTCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIi
KSwgc3RybGVuKCJUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkRGVs
ZXRlck5vSWRlbnRpZmllciIpOwogfQpAQCAtMTkwMSw3ICsxOTAxLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnUKICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlz
T2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTE5MTMsNyArMTkxMyw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxl
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpLCBzdHJsZW4oIlRl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RO
YW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbiIpOwogfQpAQCAtMTkyNCw3ICsxOTI0LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJX
aXRoSWRlbnRpZmllckNvbnN0cnVjdG8KICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTE5MzYsNyArMTkzNiw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1l
ZERlbGV0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllciIpOwogfQpAQCAtMTk0Nyw3ICsxOTQ3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0
cnUKICAgICByZXR1cm4gSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmds
b2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3Ry
dWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIiKTsKIH0KQEAgLTE5NTksNyArMTk1OSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXJDb25zdHJ1CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
IlRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlciIpLCBzdHJsZW4oIlRlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEds
b2JhbE9iamVjdFRlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAtMTk3MCw3ICsxOTcwLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29u
c3RydWN0b3JHZXR0ZXIKICAgICByZXR1cm4gSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6Z2V0
Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3Qu
Z2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0
dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZEdldHRlckNhbGxXaXRoIik7CiB9CkBAIC0xOTgy
LDcgKzE5ODIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvclNldHRlcgogICAgIHJldHVybiB0aGlzT2Jq
ZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aCIpLCBzdHJsZW4oIlRl
c3ROYW1lZEdldHRlckNhbGxXaXRoIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9i
YWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGhDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgiKTsKIH0KQEAgLTE5OTMsNyArMTk5
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRH
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdlCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkR2V0
dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5h
bWVkR2V0dGVyTm9JZGVudGlmaWVyIik7CiB9CkBAIC0yMDA1LDcgKzIwMDUsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3JTZQogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0TmFtZWRHZXR0ZXJOb0lk
ZW50aWZpZXIiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIiKTsKIH0KQEAgLTIwMTYsNyAr
MjAxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVk
R2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIpOwogfQpAQCAtMjAyOCw3ICsyMDI4
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIiKSwgc3RybGVuKCJUZXN0
TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3ROYW1lZEdldHRlcldpdGhJZGVu
dGlmaWVyIik7CiB9CkBAIC0yMDM5LDcgKzIwMzksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3JH
ZQogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0
b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2Jq
ZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllciIpOwogfQpA
QCAtMjA1MSw3ICsyMDUxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yU2UKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyIiks
IHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyIik7CiB9CkBAIC0yMDYyLDcgKzIwNjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1YwogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRD
b25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5n
bG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5hbWVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24iKTsKIH0KQEAgLTIwNzQsNyArMjA3NCw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uIiksIHN0cmxlbigiVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb24iKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbiIpOwogfQpAQCAtMjA4NSw3ICsyMDg1LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IKICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29u
c3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xv
YmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyIik7CiB9CkBAIC0yMDk3LDcgKzIwOTcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3Rv
cgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllciIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyIikp
LCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+Ojpz
ZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIiKTsKIH0KQEAgLTIxMDgsNyArMjEw
OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxH
bG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciIpOwogfQpAQCAt
MjEyMCw3ICsyMTIwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWMKICAgICByZXR1cm4gdGhp
c09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIi
KSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlciIpKSwgdmFsdWUpOwog
fQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyIik7CiB9CkBAIC0yMTMxLDcgKzIx
MzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZQogICAgIHJldHVybiBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhJbmRl
eGVkR2V0dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJX
aXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiKTsKIH0KQEAgLTIxNDMsNyArMjE0
Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyIiks
IHN0cmxlbigiVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIiKSksIHZh
bHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckFuZFNldHRlciIpOwogfQpAQCAtMjE1NCw3ICsyMTU0LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZUJ1aWx0SW4KICAgICByZXR1cm4gSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0yMTY2LDcgKzIxNjYsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucyIpLCBzdHJsZW4oIlRlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiti
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMiKTsKIH0KQEAgLTIxNzcsNyArMjE3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wCiAgICAgcmV0dXJuIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCks
IHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RH
bG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3Rv
ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRl
cldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMiKTsKIH0KQEAgLTIxODksNyArMjE4OSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGly
ZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMi
KSwgc3RybGVuKCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
IikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcyIpOwogfQpA
QCAtMjIwMCw3ICsyMjAwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3AKICAgICByZXR1cm4g
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5
T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2Fj
eU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIik7CiB9CkBAIC0yMjEyLDcgKzIyMTIsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2
bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdElucyIpLCBzdHJsZW4oIlRlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zIikpLCB2YWx1ZSk7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2Fj
eVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnND
b25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0Fu
ZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMiKTsKIH0KQEAgLTIyMjQsNyArMjIyNCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9u
YWxDb25zdHJ1Y3RvckdldHRlCiAgICAgcmV0dXJuIEpTVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2Jh
bE9iamVjdFRlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsIik7CiB9
CkBAIC0yMjM5LDcgKzIyMzksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3JTZXR0ZQogICAgIHJldHVy
biB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiKSwg
c3RybGVuKCJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPcGVy
YXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwiKTsKIH0K
QEAgLTIyNTIsNyArMjI1Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvCiAgICAgcmV0dXJu
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0
PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNl
Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIpOwogfQpAQCAtMjI2NCw3ICsyMjY0
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ28KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UiKSwgc3Ry
bGVuKCJUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSIpKSwgdmFsdWUpOwog
fQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
V2l0aFNlcXVlbmNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlIik7CiB9CkBAIC0yMjc1LDcgKzIyNzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yR2V0dGVyKEpTRwog
ICAgIHJldHVybiBKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9i
amVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0
b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UGx1Z2luSW50
ZXJmYWNlIik7CiB9CkBAIC0yMjg3LDcgKzIyODcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yU2V0dGVyKEpT
RwogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0
cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UGx1Z2luSW50ZXJm
YWNlIiksIHN0cmxlbigiVGVzdFBsdWdpbkludGVyZmFjZSIpKSwgdmFsdWUpOwogfQogCi1ib29s
IHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UGx1Z2luSW50ZXJm
YWNlQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgIlRlc3RQbHVnaW5JbnRlcmZhY2UiKTsKIH0KQEAgLTIyOTgsNyArMjI5OCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlN
YXBMaWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHCiAgICAgcmV0dXJuIEpTVGVzdFJlYWRPbmx5TWFw
TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVh
ZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVj
dFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RSZWFkT25seU1hcExpa2UiKTsKIH0KQEAgLTIzMTAsNyArMjMx
MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9u
bHlNYXBMaWtlQ29uc3RydWN0b3JTZXR0ZXIoSlNHCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3RSZWFkT25seU1hcExpa2UiKSwgc3RybGVuKCJUZXN0UmVhZE9ubHlN
YXBMaWtlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJl
YWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlN
YXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVz
dEdsb2JhbE9iamVjdFRlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFJlYWRPbmx5TWFw
TGlrZSIpOwogfQpAQCAtMjMyMSw3ICsyMzIxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvckdldHRlcihKU0cK
ICAgICByZXR1cm4gSlNUZXN0UmVhZE9ubHlTZXRMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVj
dG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFJlYWRPbmx5
U2V0TGlrZSIpOwogfQpAQCAtMjMzMyw3ICsyMzMzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvclNldHRlcihK
U0cKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFJlYWRPbmx5U2V0
TGlrZSIpLCBzdHJsZW4oIlRlc3RSZWFkT25seVNldExpa2UiKSksIHZhbHVlKTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlYWRPbmx5U2V0
TGlrZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJUZXN0UmVhZE9ubHlTZXRMaWtlIik7CiB9CkBAIC0yMzQ0LDcgKzIzNDQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4
dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yR2V0dAogICAgIHJldHVybiBKU1Rlc3RSZXBvcnRFeHRy
YU1lbW9yeUNvc3Q6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFs
T2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46Omdl
dDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0Iik7CiB9CkBAIC0yMzU2LDcgKzIzNTYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9y
U2V0dAogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0UmVwb3J0RXh0
cmFNZW1vcnlDb3N0IiksIHN0cmxlbigiVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdCIpKSwgdmFs
dWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RSZXBvcnRFeHRyYU1lbW9y
eUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFJlcG9ydEV4dHJhTWVtb3J5
Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RH
bG9iYWxPYmplY3RUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3JTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3QiKTsKIH0KQEAgLTIzNjgsNyArMjM2OCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RyCiAgICAgcmV0dXJuIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2Jq
ZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKTsKIH0KQEAgLTIzODMsNyArMjM4
Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RyCiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNv
bnN0IExDaGFyKj4oIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiKSwgc3RybGVu
KCJUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlIikpLCB2YWx1ZSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIpOwogfQpAQCAtMjM5Niw3ICsy
Mzk2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRM
aWtlQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNUZXN0U2V0TGlr
ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNP
YmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxP
YmplY3RUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1
Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTZXRMaWtl
Iik7CiB9CkBAIC0yNDA4LDcgKzI0MDgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iagogICAg
IHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U2V0TGlrZSIpLCBzdHJsZW4o
IlRlc3RTZXRMaWtlIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFNldExpa2VDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFNldExpa2UiKTsKIH0KQEAgLTI0MTksNyArMjQx
OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0CiAgICAgcmV0dXJuIEpTVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucyIpOwogfQpAQCAtMjQzMSw3ICsyNDMxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3QK
ICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFNldExpa2VXaXRoT3Zl
cnJpZGRlbk9wZXJhdGlvbnMiKSwgc3RybGVuKCJUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9ucyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTZXRMaWtl
V2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zIik7CiB9CkBAIC0yNDQyLDcgKzI0NDIsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3JHZXR0ZXIo
SlNHbG9iYQogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVj
dD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllciIpOwog
fQpAQCAtMjQ1NCw3ICsyNDU0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmEKICAgICByZXR1
cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVyIiksIHN0cmxlbigi
VGVzdFN0cmluZ2lmaWVyIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2Jq
ZWN0VGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJp
bmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rl
c3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyIik7
CiB9CkBAIC0yNDY1LDcgKzI0NjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydQogICAgIHJl
dHVybiBKU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbjo6Z2V0Q29uc3RydWN0b3Io
SlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
ckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvbiIpOwogfQpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlv
bkNvbnN0cnUKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyQW5vbnlt
b3VzT3BlcmF0aW9uIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyQW5vbnltb3Vz
T3BlcmF0aW9uIik7CiB9CkBAIC0yNDg4LDcgKzI0ODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1
Y3RvcgogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb24iKTsKIH0KQEAgLTI1MDAsNyArMjUwMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9y
CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIlRlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24iKSks
IHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNl
dDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0
cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbiIpOwogfQpAQCAtMjUxMSw3ICsyNTEx
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb24KICAgICByZXR1cm4gSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yR2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcyIpOwogfQpAQCAtMjUyMyw3ICsyNTIzLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXNDb24KICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcyIpLCBzdHJsZW4oIlRlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXMiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXND
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFs
T2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0
U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzIik7CiB9CkBAIC0yNTM0LDcgKzI1MzQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbgogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRU
b1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3JHZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nIik7CiB9CkBAIC0yNTQ2LDcgKzI1NDYsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0
cmluZ0NvbgogICAgIHJldHVybiB0aGlzT2JqZWN0LnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyh2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyT3Bl
cmF0aW9uTmFtZWRUb1N0cmluZyIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpTVGVzdEdsb2Jh
bE9iamVjdFRlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRKU1Rlc3RHbG9iYWxP
YmplY3RUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3JTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRlc3RT
dHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmciKTsKIH0KQEAgLTI1NTcsNyArMjU1Nyw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVjCiAgICAgcmV0dXJuIEpTVGVzdFN0cmluZ2lmaWVy
UmVhZE9ubHlBdHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0R2xvYmFsT2JqZWN0Pjo6Z2V0PGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJl
YWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSIpOwogfQpAQCAtMjU2
OSw3ICsyNTY5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRl
c3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWMKICAgICByZXR1cm4gdGhpc09i
amVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUiKSwg
c3RybGVuKCJUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5
QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0R2xvYmFsT2JqZWN0Pjo6c2V0PHNldEpT
VGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0
b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwg
IlRlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlIik7CiB9CkBAIC0yNTgwLDcgKzI1ODAs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lm
aWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydQogICAgIHJldHVybiBKU1Rlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEds
b2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZp
ZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIlRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSIpOwogfQpA
QCAtMjU5Miw3ICsyNTkyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEdsb2JhbE9i
amVjdFRlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnUKICAgICByZXR1cm4g
dGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlIiksIHN0cmxlbigiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIikpLCB2YWx1
ZSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0R2xvYmFsT2JqZWN0VGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RTdHJpbmdpZmll
clJlYWRXcml0ZUF0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46
OnNldDxzZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGVDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAiVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlIik7CiB9CkBAIC0y
NjAzLDcgKzI2MDMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3JHZXR0ZXIoSlNHbG9iYWxPYgogICAgIHJldHVybiBKU1Rl
c3RUeXBlZGVmczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxqc1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3RvckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
IlRlc3RUeXBlZGVmcyIpOwogfQpAQCAtMjYxNSw3ICsyNjE1LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTVGVzdEdsb2JhbE9iamVjdFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yU2V0dGVyKEpT
R2xvYmFsT2IKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdFR5cGVk
ZWZzIiksIHN0cmxlbigiVGVzdFR5cGVkZWZzIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0R2xvYmFsT2JqZWN0VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEdsb2JhbE9iamVj
dFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxz
ZXRKU1Rlc3RHbG9iYWxPYmplY3RUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdFR5cGVkZWZzIik7
CiB9CkBAIC0yNjI2LDcgKzI2MjYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0R2xv
YmFsT2JqZWN0V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvckdldHRlcihKU0dsbwogICAgIHJl
dHVybiBKU1dvcmtlckdsb2JhbFNjb3BlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdFdvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RH
bG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OmdldDxq
c1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiV29ya2VyR2xvYmFsU2NvcGUiKTsKIH0KQEAg
LTI2MzgsNyArMjYzOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRo
aXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIldvcmtlckdsb2JhbFNjb3BlIiksIHN0cmxlbigiV29y
a2VyR2xvYmFsU2NvcGUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RHbG9iYWxPYmpl
Y3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJH
bG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEdsb2JhbE9iamVjdD46OnNldDxzZXRK
U1Rlc3RHbG9iYWxPYmplY3RXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJXb3JrZXJHbG9iYWxT
Y29wZSIpOwogfQpAQCAtMjY0OSw3ICsyNjQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yR2V0dGVyKEpTR2wK
ICAgICByZXR1cm4gSlNXb3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxPYmpl
Y3Q+OjpnZXQ8anNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3JH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJXb3JrbGV0R2xvYmFsU2Nv
cGUiKTsKIH0KQEAgLTI2NjEsNyArMjY2MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RHbG9iYWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvclNldHRlcihKU0dsCiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIldvcmtsZXRHbG9iYWxTY29wZSIp
LCBzdHJsZW4oIldvcmtsZXRHbG9iYWxTY29wZSIpKSwgdmFsdWUpOwogfQogCi1ib29sIHNldEpT
VGVzdEdsb2JhbE9iamVjdFdvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RHbG9i
YWxPYmplY3RXb3JrbGV0R2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0R2xvYmFsT2JqZWN0V29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3JTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1
ZSwgIldvcmtsZXRHbG9iYWxTY29wZSIpOwogfQpAQCAtMjY4Myw3ICsyNjgzLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVu
Y3Rpb25SZWd1bGFyT3BlcmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEdsb2JhbE9iamVj
dEluc3RhbmNlRnVuY3Rpb25SZWd1bGFyT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uUmVndWxhck9wZXJhdGlvbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxs
PGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25SZWd1bGFyT3BlcmF0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJyZWd1bGFyT3BlcmF0aW9uIik7CiB9
CkBAIC0yNzQ2LDcgKzI3NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRBdFJ1bgogICAgIHJldHVy
biBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3Qp
KSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1l
T3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9i
amVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRBdFJ1
bnRpbWVPcGVyYXRpb25PdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpOwogfQpAQCAtMjc3MCw3ICsy
NzcwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9i
amVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0
aW9uU3RhdGljKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RD
b25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRpYywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsU3RhdGlj
PGpzVGVzdEdsb2JhbE9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3Bl
cmF0aW9uU3RhdGljQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbmFi
bGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljIik7CiB9CkBAIC0yNzk0LDcgKzI3OTQsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvbkVuYWJsZWRJblNwZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFs
T2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVk
SW5TcGVjaWZpY1dvcmxkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEds
b2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJs
ZWRJblNwZWNpZmljV29ybGRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImVuYWJsZWRJblNwZWNpZmljV29ybGQiKTsKIH0KQEAgLTI4MTYsNyArMjgxNiw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1
bmN0aW9uRW5hYmxlZEluU3BlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmpl
Y3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVy
ZUVuYWJsZWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdElu
c3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5h
YmxlZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+
OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZp
Y1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVu
YWJsZWQiKTsKIH0KQEAgLTI4MzgsNyArMjgzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5hYmxlZEluU3Bl
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9u
RW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uRW5h
YmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGlt
ZUZlYXR1cmVzRW5hYmxlZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
ZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZXNFbmFibGVkIik7CiB9CkBA
IC0yODU2LDcgKzI4NTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RQcml2YXRlRnVu
Y3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEdsb2JhbE9iamVjdEluc3Rh
bmNlRnVuY3Rpb25UZXN0UHJpdmF0ZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xvYmFsT2JqZWN0SW5zdGFu
Y2VGdW5jdGlvblRlc3RQcml2YXRlRnVuY3Rpb25Cb2R5LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcml2YXRl
RnVuY3Rpb24iKTsKIH0KQEAgLTI4NzUsNyArMjg3NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uQ2FsY3VsYXRl
U2VjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0
aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RHbG9iYWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWx0LCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RHbG9iYWxP
YmplY3Q+OjpjYWxsPGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25DYWxjdWxhdGVT
ZWNyZXRSZXN1bHRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNhbGN1
bGF0ZVNlY3JldFJlc3VsdCIpOwogfQpAQCAtMjg5MCw3ICsyODkwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25H
ZXRTZWNyZXRCb28KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5nZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VG
dW5jdGlvbkdldFNlY3JldEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dEdsb2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25HZXRTZWNyZXRCb29sZWFuLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEdsb2JhbE9iamVjdD46OmNhbGw8anNUZXN0R2xv
YmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvbkdldFNlY3JldEJvb2xlYW5Cb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldFNlY3JldEJvb2xlYW4iKTsKIH0KQEAgLTI5MDYs
NyArMjkwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHbG9i
YWxPYmplY3RJbnN0YW5jZUZ1bmN0aW9uVGVzdEZlYXR1cmVHCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJvb2xlYW4+KGltcGwudGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0R2xvYmFsT2JqZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0
U2VjcmV0Qm9vbGVhbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0R2xvYmFsT2Jq
ZWN0SW5zdGFuY2VGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RHbG9iYWxPYmplY3Q+OjpjYWxsPGpzVGVzdEds
b2JhbE9iamVjdEluc3RhbmNlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW5Cb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RGZWF0dXJlR2V0U2VjcmV0
Qm9vbGVhbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCmluZGV4IGY0ODc5NzQ0MmViZjhmYTVhOTdmOTEyMTFkYTlkNDM5MmYzNjRlMDIu
LjA1Y2FhMzE2YmVlODMxYWY1NzEwYTEzZjI0NzU2MjQ1NmRiOWU0ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTQ2LDggKzQ2LDgg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpT
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI0MSw3ICsyNDEsNyBAQCBib29sIEpT
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0
KiBvYmplY3QsIEpTR2xvYgogICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHko
b2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVz
Y3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yNTEsNyArMjUxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2EK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3Rv
dHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggZmI5OTYzZTY0YTAwMjY2
MmE0NDk4ZjVjNTY2OGE5YTE5ZDJiMTk0MS4uMmEzMjMzN2NjYjJkMmZmYjczYzY0NmU5ZGQyN2Mx
YzYyN2U2NTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTQ2LDggKzQ2LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNDEsNyArMjQxLDcgQEAgYm9v
bCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmRlZmluZU93blByb3BlcnR5
KEpTT2JqZWN0KiBvYmplY3QsIEoKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3Bl
cnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0
eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNw
cAppbmRleCA1NjIxYmNiYzBjODEyNGRiOGNhMTRmMDJmN2RhMmYyNzc2NTBmZWMxLi42Mzc4MGZi
YTkzYzM3NmM5N2E2ZmRmZDZhMjQ1ZmU3ODI2ZmFhOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtNDgsMTIgKzQ4LDEyIEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIpOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKQEAgLTI1Myw3ICsyNTMsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RJbmRleGVkUwogICAgIHJldHVy
biBqc0R5bmFtaWNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KEpTQzo6
Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYzLDcg
KzI2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldENvbnN0cnVjdG9yKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yOTYsNyArMjk2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmMK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclBy
b3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVk
U2V0dGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllcj46OmNhbGw8anNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYWxsRnJhbWUsICJpbmRleGVkU2V0dGVyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmlu
ZGV4IGUxMDg0NDQ0MGU2MzljNjRjMWRlYjg2Njc4YjdiN2FjNWExZDFiOGIuLjM1NzFhMjI5OGQ5
MTIxOTM2NjM4ZGE1MmE2NjFlN2M0ODNiNGYzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBA
IC03NSw5MSArNzUsOTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIC8vIEZ1bmN0aW9ucwogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25N
aXhpbk9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25N
aXhpbk9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbXBsZXhPcGVyYXRpb24pOwog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiAoRU5BQkxF
KENvbmRpdGlvbjExKSAmJiBFTkFCTEUoQ29uZGl0aW9uMjIpKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3BlcmF0aW9uKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24pOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdElu
dGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9u
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uTWl4aW5SZXN1bHRGaWVsZE9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKTsKICNlbmRp
ZgogI2lmIChFTkFCTEUoQ29uZGl0aW9uMjIpICYmIEVOQUJMRShDb25kaXRpb24zMykpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0
aWFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhp
bk9wZXJhdGlvbkZyb21QYXJ0aWFsKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Qx
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEy
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyKTsKICNlbmRpZgogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVu
dGFsTWV0aG9kMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25TdXBw
bGVtZW50YWxNZXRob2QzKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2Q0KEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kNCk7
CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblN5bWJvbEl0ZXJhdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblN5bWJvbEl0ZXJhdG9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25LZXlzKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvbkZvckVhY2gpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShDb25kaXRp
b24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRp
dGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0
dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJm
YWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQYXJ0aWFsTWl4aW5BdHRy
aWJ1dGVGcm9tUGFydGlhbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxT
dGF0aWNSZWFkT25seUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3Vw
cGxlbWVudGFsU3RhdGljQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VT
dXBwbGVtZW50YWxTdHIzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbE5vZGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdElu
dGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNl
bmRpZgogCiBjbGFzcyBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWNfYXNzZXJ0KFRl
c3RTdXBwbGVtZW50YWw6OlNVUFBMRU1FTlRBTENPTlNUQU5UMSA9PSAxLCAiU1VQUExFTUVOVEFM
Q09OU1RBTgogc3RhdGljX2Fzc2VydChUZXN0U3VwcGxlbWVudGFsOjpDT05TVF9JTVBMID09IDIs
ICJDT05TVF9JTVBMIGluIFRlc3RTdXBwbGVtZW50YWwgZG9lcyBub3QgbWF0Y2ggdmFsdWUgZnJv
bSBJREwiKTsKICNlbmRpZgogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjg0LDYgKzI4NCw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTCiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNWYWx1ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmNvbnN0cnVj
dCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6cHJv
dG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQogewpAQCAtNTE2LDcgKzUxNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdEludGVyZmFjZSogSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhc3QoSlNHbG9i
YWxPCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC01MjYsNyArNTI3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEUKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTU0OCw3ICs1NDksNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
bWl4aW5SZWFkT25seUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VNaXhpblJlYWRPbmx5QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0SW50ZXJmYWNlTWl4aW5SZWFkT25seUF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIm1peGluUmVhZE9ubHlBdHRyaWJ1dGUiKTsKIH0KQEAgLTU2NCw3ICs1
NjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1
dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIGltcGwubWl4aW5BdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+
OjpnZXQ8anNUZXN0SW50ZXJmYWNlTWl4aW5BdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJtaXhp
bkF0dHJpYnV0ZSIpOwogfQpAQCAtNTg1LDcgKzU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5B
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVy
ZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5BdHRyaWJ1dGUi
KTsKIH0KQEAgLTU5OSw3ICs2MDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0
dXJuIHRoaXNPYmplY3QubWl4aW5DdXN0b21BdHRyaWJ1dGUobGV4aWNhbEdsb2JhbE9iamVjdCk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFj
ZU1peGluQ3VzdG9tQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibWl4aW5DdXN0b21BdHRyaWJ1
dGUiKTsKIH0KQEAgLTYxNCw3ICs2MTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0
SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5DdXN0b21BdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdEludGVyZmFjZU1peGluQ3VzdG9tQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdElu
dGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbkN1c3RvbUF0dHJpYnV0ZVNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5D
dXN0b21BdHRyaWJ1dGUiKTsKIH0KQEAgLTYzMCw3ICs2MzEsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRl
cmZhY2U8Tm9kZT4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1peGluTm9kZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VNaXhp
bk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZU1peGluTm9kZUF0dHJp
YnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgIm1peGluTm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtNjUxLDcg
KzY1Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VNaXhpbk5vZGVB
dHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlTWl4aW5Ob2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZh
Y2VNaXhpbk5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6c2V0PHNldEpTVGVz
dEludGVyZmFjZU1peGluTm9kZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibWl4aW5Ob2RlQXR0cmlidXRlIik7CiB9CkBAIC02
NjcsNyArNjY4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVBhcnRp
YWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRG91YmxlPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBpbXBsLnBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZy
b21QYXJ0aWFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0SW50ZXJmYWNlUGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNl
Pjo6Z2V0PGpzVGVzdEludGVyZmFjZVBhcnRpYWxNaXhpbkF0dHJpYnV0ZUZyb21QYXJ0aWFsR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicGFydGlhbE1peGluQXR0cmlidXRlRnJvbVBhcnRpYWwiKTsKIH0KQEAg
LTY4Miw3ICs2ODMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHJHZQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNS
ZWFkT25seUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
clN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXRTdGF0aWM8anNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHJHZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNSZWFk
T25seUF0dHIiKTsKIH0KQEAgLTY5Nyw3ICs2OTgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyR2V0dGVyKEpT
RwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+
KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50
YWw6OnN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldFN0YXRpYzxqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHJHZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNBdHRyIik7CiB9CkBA
IC03MTcsNyArNzE4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0clNldHRlcihKU0cKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0
YXRpY0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpzZXRTdGF0aWM8c2V0SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdGF0aWNBdHRyIik7CiB9
CkBAIC03MzMsNyArNzM0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbFN0cjFHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50
YWxTdHIxKGltcGwpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpnZXQ8anNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN1cHBsZW1lbnRhbFN0
cjEiKTsKIH0KQEAgLTc0OSw3ICs3NTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1
cHBsZW1lbnRhbFN0cjIoaW1wbCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46Omdl
dDxqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3VwcGxl
bWVudGFsU3RyMiIpOwogfQpAQCAtNzcwLDcgKzc3MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
ZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJ
bnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMlNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3VwcGxlbWVu
dGFsU3RyMiIpOwogfQpAQCAtNzg0LDcgKzc4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgcmV0dXJuIHRoaXNPYmplY3Quc3VwcGxlbWVudGFsU3RyMyhsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVN1
cHBsZW1lbnRhbFN0cjNHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxTdHIzIik7CiB9CkBA
IC03OTksNyArODAwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVN1
cHBsZW1lbnRhbFN0cjNTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdXBwbGVtZW50YWxTdHIzIik7CiB9CkBAIC04
MTUsNyArODE2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbE5vZGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgV2ViQ29yZTo6
VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTm9kZShpbXBsKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbE5vZGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0SW50ZXJmYWNlPjo6Z2V0PGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGVHZXR0
ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsICJzdXBwbGVtZW50YWxOb2RlIik7CiB9CkBAIC04MzYsNyArODM3LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGVTZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50
YWxOb2RlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxOb2RlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdXBwbGVtZW50YWxOb2RlIik7CiB9CkBAIC04NTIsNyArODUzLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVJlZmxlY3RBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZs
ZWN0YXR0cmlidXRlQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFj
ZVJlZmxlY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmdldDxq
c1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdEF0
dHJpYnV0ZSIpOwogfQpAQCAtODczLDcgKzg3NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RJbnRlcmZhY2VSZWZsZWN0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRl
cmZhY2U+OjpzZXQ8c2V0SlNUZXN0SW50ZXJmYWNlUmVmbGVjdEF0dHJpYnV0ZVNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicmVmbGVjdEF0dHJp
YnV0ZSIpOwogfQpAQCAtODkzLDcgKzg5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGlu
T3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGVGdW5jdGlvbk1peGluT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25NaXhpbk9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWl4aW5PcGVyYXRpb24iKTsKIH0KQEAgLTkyMiw3ICs5MjMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNv
bXBsZXhPcAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubWl4aW5Db21wbGV4T3Bl
cmF0aW9uKCpjb250ZXh0LCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9u
TWl4aW5Db21wbGV4T3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJ
bnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ29tcGxleE9wZXJhdGlvbiwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVy
ZmFjZVByb3RvdHlwZUZ1bmN0aW9uTWl4aW5Db21wbGV4T3BlcmF0aW9uQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtaXhpbkNvbXBsZXhPcGVyYXRpb24iKTsKIH0KQEAg
LTkzOSw3ICs5NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZQogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPm1peGluQ3Vz
dG9tT3BlcmF0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluQ3VzdG9tT3BlcmF0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkN1c3RvbU9wZXJhdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWl4aW5DdXN0b21PcGVyYXRpb24iKTsKIH0KQEAg
LTk1OSw3ICs5NjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpbkNvbmRpdGlvbmFsT3Bl
cmF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbk1peGluQ29uZGl0aW9uYWxPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1peGluQ29uZGl0aW9uYWxPcGVyYXRpb24iKTsKIH0KQEAgLTk3
OSw3ICs5ODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9u
YWxPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVBy
b3RvdHlwZUZ1bmN0aW9uTWl4aW5TZXR0aW5nc0NvbmRpdGlvbmFsT3BlcmF0aW9uLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblNldHRpbmdzQ29uZGl0aW9uYWxPcGVyYXRpb25C
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1peGluU2V0dGluZ3NDb25k
aXRpb25hbE9wZXJhdGlvbiIpOwogfQpAQCAtOTk4LDcgKzk5OSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGlu
UmVzdWx0RmllCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETFNlcXVlbmNlPElETEludGVyZmFjZTxOb2RlPj4+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUoaW1wbFJlc3VsdC5u
b2RlcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJm
YWNlUHJvdG90eXBlRnVuY3Rpb25NaXhpblJlc3VsdEZpZWxkT3BlcmF0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVz
dWx0RmllbGRPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
SW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbk1peGluUmVz
dWx0RmllbGRPcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1peGluUmVzdWx0RmllbGRPcGVyYXRpb24iKTsKIH0KQEAgLTEwMTgsNyArMTAxOSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVG
dW5jdGlvblBhcnRpYWxNaXhpbk9wCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvblBhcnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblBh
cnRpYWxNaXhpbk9wZXJhdGlvbkZyb21QYXJ0aWFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25QYXJ0aWFsTWl4aW5PcGVyYXRpb25Gcm9tUGFydGlhbEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAicGFydGlhbE1peGluT3BlcmF0aW9uRnJvbVBhcnRpYWwiKTsK
IH0KQEAgLTEwMzgsNyArMTAzOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRhbE1lCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvblN1cHBsZW1lbnRh
bE1ldGhvZDEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RJbnRlcmZhY2U+OjpjYWxsPGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1
bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9kMUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAic3VwcGxlbWVudGFsTWV0aG9kMSIpOwogfQpAQCAtMTA2Nyw3ICsxMDY4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlw
ZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBXZWJD
b3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxNZXRob2QyKGltcGwsICpjb250ZXh0
LCBXVEZNb3ZlKHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0
aG9kMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
RnVuY3Rpb25TdXBwbGVtZW50YWxNZXRob2QyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rp
b25TdXBwbGVtZW50YWxNZXRob2QyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJzdXBwbGVtZW50YWxNZXRob2QyIik7CiB9CkBAIC0xMDg0LDcgKzEwODUsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25TdXBwbGVtZW50YWxNZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
SlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnN1cHBsZW1lbnRhbE1ldGhvZDMoKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uU3VwcGxlbWVudGFsTWV0aG9k
MyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVu
Y3Rpb25TdXBwbGVtZW50YWxNZXRob2QzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25T
dXBwbGVtZW50YWxNZXRob2QzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJzdXBwbGVtZW50YWxNZXRob2QzIik7CiB9CkBAIC0xMTAzLDcgKzExMDQsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5j
dGlvblN1cHBsZW1lbnRhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1ldGhvZDQoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yRnVuY3Rpb25TdXBwbGVtZW50YWxNZXRo
b2Q0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNh
bGxTdGF0aWM8anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JGdW5jdGlvblN1cHBsZW1lbnRhbE1l
dGhvZDRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN1cHBsZW1lbnRh
bE1ldGhvZDQiKTsKIH0KQEAgLTExNjUsNiArMTE2Niw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQK
IH07CiAKIHVzaW5nIFRlc3RJbnRlcmZhY2VJdGVyYXRvclByb3RvdHlwZSA9IEpTRE9NSXRlcmF0
b3JQcm90b3R5cGU8SlNUZXN0SW50ZXJmYWNlLCBUZXN0SW50ZXJmYWNlSXRlcmF0b3JUcmFpdHM+
OworSlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oVGVzdEludGVyZmFjZUl0ZXJhdG9yUHJvdG90
eXBlTmV4dCwgVGVzdEludGVyZmFjZUl0ZXJhdG9yUHJvdG90eXBlOjpuZXh0KTsKIAogdGVtcGxh
dGU8PgogY29uc3QgSlNDOjpDbGFzc0luZm8gVGVzdEludGVyZmFjZUl0ZXJhdG9yQmFzZTo6c19p
bmZvID0geyAiVGVzdEludGVyZmFjZSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIs
IG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoVGVzdEludGVyZmFjZUl0ZXJhdG9yQmFzZSkg
fTsKQEAgLTExNzgsNyArMTE4MCw3IEBAIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKEpTR2xvCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0SW50ZXJmYWNlSXRlcmF0b3I+
KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpFbnRyaWVzKSk7CiB9CiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkVu
dHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImVudHJpZXMiKTsKIH0KQEAgLTExODgsNyArMTE5MCw3IEBAIHN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25LZXlzQ2FsbGVyKEpT
R2xvYmFsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0SW50
ZXJmYWNlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpLZXlzKSk7CiB9CiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5
cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbktleXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlRnVuY3Rpb25LZXlzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgImtleXMiKTsKIH0KQEAgLTExOTgsNyArMTIwMCw3IEBAIHN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXIo
SlNHbG9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0SW50
ZXJmYWNlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpKTsKIH0K
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEludGVyZmFjZT46OmNhbGw8anNUZXN0SW50
ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0xMjA4LDcgKzEyMTAsNyBAQCBzdGF0aWMg
aW5saW5lIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRm9y
RWFjaENhbGxlcihKU0dsbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JGb3JF
YWNoPFRlc3RJbnRlcmZhY2VJdGVyYXRvcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICp0aGlzT2JqZWN0KSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZv
ckVhY2gsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdElu
dGVyZmFjZT46OmNhbGw8anNUZXN0SW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2Fs
bGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCmluZGV4
IDM2MjhjZDY2MjdjYzhlZmY3NTM0Yjk2NDZmOGJlZjVhOTI5MTQ4ZGYuLjBhNjlkZmI3ZWJjMDBm
YzFkNTMxYjMyMzFlYTUyZjg0YWM0MDdhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcApAQCAtNDYsOSArNDYsOSBAQCB1c2luZyBuYW1l
c3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmVSZWFkb25seShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29y
ZVJlYWRvbmx5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
UHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0xNTgsNyArMTU4LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0SW50ZXJmYWNlTGVh
ZGluZ1VuZGVyc2NvcmUqIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2UKICAgICByZXR1cm4g
anNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSo+KEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTY4LDcg
KzE2OCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xODksNyArMTg5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHlHZXR0ZXIoSlNHbG9iYWxPYmoKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRvbmx5KCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHkoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJbnRl
cmZhY2VMZWFkaW5nVW5kZXJzY29yZVJlYWRvbmx5KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlPjo6
Z2V0PGpzVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlUmVhZG9ubHlHZXR0ZXIsIENhc3Rl
ZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJyZWFkb25seSIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKaW5kZXggMTQ0ZmEwMWUxYzM0
NTQ0YTc0MGU4OGJlNTI2ZjkxNTA0ZTMwMTc4ZS4uN2I0NWM2NjcxYTAwMDBmMjg3ZjBiZjUzMzI5
YjdjZGYwNTcxYTZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCkBAIC00OSwxNiArNDksMTYgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uU3ltYm9sSXRl
cmF0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkVu
dHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbktl
eXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblZhbHVl
cyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFj
aChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvblN5bWJvbEl0ZXJhdG9y
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbkVudHJpZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJsZVBy
b3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEl0
ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RJdGVyYWJsZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0SXRlcmFibGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE3Miw3ICsxNzIsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RJdGVyYWJsZSogSURMT3BlcmF0aW9uPEpTVGVzdEl0ZXJhYmxlPjo6Y2FzdChKU0ds
b2JhbE9iagogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdEl0ZXJhYmxlKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RJdGVyYWJsZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwpAQCAtMTgyLDcgKzE4Miw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEl0ZXJhYmxl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJdGVyYWJsZTo6Z2V0Q29uc3RydWN0b3IoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi1ib29sIHNldEpTVGVzdEl0ZXJhYmxlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdEl0ZXJhYmxl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTAsNiArMjUwLDcgQEAgSUdOT1JF
X1dBUk5JTkdTX0VORAogfTsKIAogdXNpbmcgVGVzdEl0ZXJhYmxlSXRlcmF0b3JQcm90b3R5cGUg
PSBKU0RPTUl0ZXJhdG9yUHJvdG90eXBlPEpTVGVzdEl0ZXJhYmxlLCBUZXN0SXRlcmFibGVJdGVy
YXRvclRyYWl0cz47CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihUZXN0SXRlcmFibGVJdGVy
YXRvclByb3RvdHlwZU5leHQsIFRlc3RJdGVyYWJsZUl0ZXJhdG9yUHJvdG90eXBlOjpuZXh0KTsK
IAogdGVtcGxhdGU8PgogY29uc3QgSlNDOjpDbGFzc0luZm8gVGVzdEl0ZXJhYmxlSXRlcmF0b3JC
YXNlOjpzX2luZm8gPSB7ICJUZXN0SXRlcmFibGUgSXRlcmF0b3IiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlc3RJdGVyYWJsZUl0ZXJhdG9y
QmFzZSkgfTsKQEAgLTI2Myw3ICsyNjQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQ2FsbGVyKEpTR2xvYgogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEl0ZXJhYmxlSXRlcmF0
b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpKTsKIH0KIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0SXRlcmFi
bGVQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdEl0ZXJhYmxlPjo6Y2FsbDxqc1Rlc3RJdGVyYWJsZVByb3RvdHlw
ZUZ1bmN0aW9uRW50cmllc0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJlbnRyaWVzIik7CiB9CkBAIC0yNzMsNyArMjc0LDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RJdGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcihKU0dsb2Jh
bE8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yQ3JlYXRlPFRlc3RJdGVyYWJs
ZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6S2V5cykpOwogfQogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5j
dGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVy
YWJsZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0SXRlcmFibGU+OjpjYWxsPGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBl
RnVuY3Rpb25LZXlzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtl
eXMiKTsKIH0KQEAgLTI4Myw3ICsyODQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNDYWxsZXIoSlNHbG9iYQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JDcmVhdGU8VGVzdEl0ZXJhYmxlSXRlcmF0
b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpWYWx1ZXMpKTsKIH0KIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RJdGVyYWJs
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzLCAoSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RJdGVyYWJsZT46OmNhbGw8anNUZXN0SXRlcmFibGVQcm90b3R5cGVG
dW5jdGlvblZhbHVlc0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2
YWx1ZXMiKTsKIH0KQEAgLTI5Myw3ICsyOTQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdEl0ZXJhYmxlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQ2FsbGVyKEpTR2xvYgog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoaXRlcmF0b3JGb3JFYWNoPFRlc3RJdGVyYWJsZUl0
ZXJhdG9yPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKnRoaXNPYmplY3QpKTsK
IH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEl0ZXJhYmxlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0SXRlcmFibGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0M6OkpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEl0ZXJhYmxlPjo6Y2FsbDxqc1Rlc3RJ
dGVyYWJsZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yLmNwcAppbmRleCAxYzExYmM2YmZiOTZiZmJiZDdiOTA3YTljYmNjNTgwNTI5
NmIyOGQ1Li4yYTdhNjZmNGFkYzgxMmNhMDI2MWVkZjY5NjI0YzA5NDU3NGJiMWRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTQzLDE1ICs0MywxNSBA
QCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlRnVu
Y3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tRnVuY3Rpb24pOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JU
ZXN0QXR0cmlidXRlQ3VzdG9tKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAK
IGNsYXNzIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlIGZpbmFsIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzEsNyArMTcxLDcgQEAgdGVt
cGxhdGU8PiBpbmxpbmUgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqIElETE9wZXJhdGlvbjxK
U1Rlc3RKU0J1aWx0aW5Db25zdHIKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3Rvcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxs
RnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjAwLDcgKzIwMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b21HZXR0ZXIoSlNHbG9iCiAgICAgcmV0dXJu
IHRoaXNPYmplY3QudGVzdEF0dHJpYnV0ZUN1c3RvbShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
Q3VzdG9tKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yPjo6Z2V0PGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3Rv
bUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVDdXN0b20iKTsKIH0KQEAgLTIxMSw3ICsy
MTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JU
ZXN0QXR0cmlidXRlUldDdXN0b21HZXR0ZXIoSlNHbAogICAgIHJldHVybiB0aGlzT2JqZWN0LnRl
c3RBdHRyaWJ1dGVSV0N1c3RvbShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RKU0J1
aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcj46
OmdldDxqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbUdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIpOwogfQpAQCAtMjIzLDcgKzIyMyw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbVNldHRlcihKU0dsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdEpT
QnVpbHRpbkNvbnN0cnVjdG9yPjo6c2V0PHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVz
dEF0dHJpYnV0ZVJXQ3VzdG9tU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJ0ZXN0QXR0cmlidXRlUldDdXN0b20iKTsKIH0KQEAgLTIzNyw3ICsy
MzcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvblRlcwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPnRlc3RDdXN0b21GdW5jdGlv
bigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5j
dGlvblRlc3RDdXN0b21GdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21GdW5jdGlvbiwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
cj46OmNhbGw8anNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGVGdW5jdGlvblRlc3RD
dXN0b21GdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVz
dEN1c3RvbUZ1bmN0aW9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVu
Y3Rpb24uY3BwCmluZGV4IDM0YjJmNTViNTJhNTJiOTdkN2NlOWU2ZWRjMjU3NmYwM2I2M2MxOGQu
LmFkZTdhNDY4YmNlZjk3Mjc3NWQ2YzRiMzU5NTg4NGFhYWU2Mjg2MjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb24uY3BwCkBAIC00OCw4ICs0OCw4IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rp
b25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlv
blByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMTAxLDcgKzEwMSw3IEBAIHRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoVk0mCiAKIHRlbXBsYXRl
PD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJUZXN0TGVnYWN5RmFjdG9yeUZ1bmN0aW9uIiwgJkJhc2U6OnNfaW5mbywg
bnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RMZWdhY3lGYWN0b3J5
RnVuY3Rpb25Db25zdHJ1Y3RvcikgfTsKIAotdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlv
bjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9B
VFRSSUJVVEVTIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlv
bjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgp
OwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTMy
LDYgKzEzMiw3IEBAIHRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rl
c3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25MZWdhY3lGYWN0b3J5CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTih0aHJvd1Njb3BlLCB7IH0pOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1
ZSk7CiB9CitKU0NfQU5OT1RBVEVfSE9TVF9GVU5DVElPTihKU1Rlc3RMZWdhY3lGYWN0b3J5RnVu
Y3Rpb25MZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3QsIEpTVGVzdExlZ2FjeUZhY3RvcnlG
dW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8PiBK
U1ZhbHVlIEpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkxlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6
cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogewpAQCAtMjA2LDcgKzIwNyw3IEBAIHZvaWQgSlNUZXN0TGVnYWN5
RmFjdG9yeUZ1bmN0aW9uOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmpl
Y3QtPkpTVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbjo6fkpTVGVzdExlZ2FjeUZhY3RvcnlGdW5j
dGlvbigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE2LDcg
KzIxNyw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeUZhY3RvcnlGdW5jdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RMZWdhY3lGYWN0b3J5RnVuY3Rpb25Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
TGVnYWN5RmFjdG9yeUZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0LmNwcAppbmRleCBhYWE4YmU2
MTdkN2U3Y2UyOGVjYWVlMGU4YmY0ZThhMzZiMjgwMWU3Li44Y2NhMTRlNDJkNTFhZThiY2UzN2Y2
OWU4NjRiOWE4NTIyMDZmZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdC5jcHAKQEAgLTUyLDIyICs1MiwyMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwog
CiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVu
Y3Rpb25UaHJvd2luZ09wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0
YXRpY09wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RQcm90
b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVy
YXRpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lOb0ludGVyZmFj
ZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uQ3VzdG9tT3BlcmF0aW9uKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0
aW9uU3RhdGljT3BlcmF0aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RS
ZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0
cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVj
dEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Tm9kZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0UmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmlu
Z0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3Rv
bUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJm
YWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3Rh
dGljU3RyaW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTE3NSw3ICsxNzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZUdldHRlcgogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhZG9ubHlTdHJpbmdBdHRyaWJ1dGUo
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RS
ZWFkb25seVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZG9ubHlTdHJp
bmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRl
cmZhY2VPYmplY3RSZWFkb25seVN0cmluZ0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJlYWRv
bmx5U3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0xODgsNyArMTg4LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0
cmlidXRlR2V0dGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
RE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRXcml0
ZVN0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lO
b0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Z2V0
PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0yMDYsNyAr
MjA2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0UmVhZFdyaXRlU3RyaW5nQXR0cmlidXRlU2V0dGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFJlYWRXcml0ZVN0cmluZ0F0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RSZWFkV3JpdGVTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlYWRXcml0ZVN0cmlu
Z0F0dHJpYnV0ZSIpOwogfQpAQCAtMjE3LDcgKzIxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0
dHJpCiAgICAgcmV0dXJuIHRoaXNPYmplY3QuY3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmli
dXRlKGxleGljYWxHbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExlZ2Fj
eU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5v
SW50ZXJmYWNlT2JqZWN0Pjo6Z2V0PGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9t
R2V0dGVyU2V0dGVyU3RyaW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY3VzdG9tR2V0dGVy
U2V0dGVyU3RyaW5nQXR0cmlidXRlIik7CiB9CkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q3VzdG9tR2V0dGVyU2V0
dGVyU3RyaW5nQXR0cmkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RMZWdh
Y3lOb0ludGVyZmFjZU9iamVjdEN1c3RvbUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpzZXQ8c2V0SlNUZXN0TGVn
YWN5Tm9JbnRlcmZhY2VPYmplY3RDdXN0b21HZXR0ZXJTZXR0ZXJTdHJpbmdBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImN1c3Rv
bUdldHRlclNldHRlclN0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAtMjQyLDcgKzI0Miw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYWxPCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETEludGVyZmFjZTxOb2RlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubm9kZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3Q+OjpnZXQ8anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAibm9kZUF0dHJpYnV0ZSIpOwogfQpAQCAtMjYwLDcgKzI2MCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdE5vZGVBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdE5vZGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VP
YmplY3Q+OjpzZXQ8c2V0SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3ROb2RlQXR0cmlidXRl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJu
b2RlQXR0cmlidXRlIik7CiB9CkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdB
dHRyaWIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3Q6OnN0YXRpY1N0cmluZ0F0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmdldFN0YXRpYzxqc1Rlc3RMZWdhY3lOb0ludGVy
ZmFjZU9iamVjdENvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlR2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RhdGljU3RyaW5nQXR0cmlidXRlIik7CiB9CkBA
IC0yODksNyArMjg5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyaWIKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
U3RhdGljU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0Pjo6c2V0U3RhdGljPHNldEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Q29uc3Ry
dWN0b3JTdGF0aWNTdHJpbmdBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHJpYnV0ZSIpOwogfQpAQCAt
MzA2LDcgKzMwNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RM
ZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVm9pZE9w
ZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblZvaWRPcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpjYWxsPGpzVGVz
dExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25Wb2lkT3BlcmF0aW9uQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2b2lkT3BlcmF0aW9uIik7CiB9
CkBAIC0zMzIsNyArMzMyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb24KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMSW50ZXJmYWNl
PFRlc3RPYmo+PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLnRocm93aW5nT3BlcmF0aW9uKCpjb250ZXh0LCBXVEZNb3Zl
KHN0ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25UaHJvd2luZ09w
ZXJhdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TGVnYWN5Tm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGVGdW5jdGlvblRocm93aW5nT3BlcmF0aW9uLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0Pjo6Y2FsbDxq
c1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uVGhyb3dpbmdPcGVy
YXRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRocm93aW5nT3Bl
cmF0aW9uIik7CiB9CkBAIC0zNDYsNyArMzQ2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb24K
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKEpTVmFsdWU6OmVuY29kZShjYXN0
ZWRUaGlzLT5jdXN0b21PcGVyYXRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdExlZ2FjeU5vSW50
ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRpb24oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlRnVu
Y3Rpb25DdXN0b21PcGVyYXRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3Q+OjpjYWxsPGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNl
T2JqZWN0UHJvdG90eXBlRnVuY3Rpb25DdXN0b21PcGVyYXRpb25Cb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImN1c3RvbU9wZXJhdGlvbiIpOwogfQpAQCAtMzYyLDcgKzM2
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lOb0lu
dGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3RpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNPcGVyYXRp
b24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU5vSW50ZXJmYWNlT2Jq
ZWN0Q29uc3RydWN0b3JGdW5jdGlvblN0YXRpY09wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RMZWdhY3lOb0ludGVyZmFjZU9iamVjdD46OmNhbGxTdGF0aWM8
anNUZXN0TGVnYWN5Tm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljT3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdGF0aWNPcGVy
YXRpb24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNw
cAppbmRleCBkZjFmZmZiNDc5MDg2NDVmODQ3N2RkMDNlZTI4MWM3OWQ4MzI1YTY2Li5jM2Y0ZDRk
OTE0NWU0YTdiODlhYTU4ZDM5MWVlMWNiMjdjM2FiMTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElu
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCkBAIC01MCwxMiArNTAsMTIgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZEl0ZW0oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGVGdW5j
dGlvbk5hbWVkSXRlbSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1
aWx0SW5zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TGVnYWN5
T3ZlcnJpZGVCdWlsdElucyogSURMT3BlcmF0aW9uPEpTVGVzdExlZ2FjeU92ZXJyaWQKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdExl
Z2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
TGVnYWN5T3ZlcnJpZGVCdWlsdEluczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNl
dEpTVGVzdExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TGVnYWN5T3Zl
cnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUzLDcgKzI1
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RMZWdhY3lPdmVy
cmlkZUJ1aWx0SW5zUHJvdG90eXBlRnVuY3Rpb25OCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1wbC5uYW1lZEl0
ZW0oV1RGTW92ZShuYW1lKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJv
dG90eXBlRnVuY3Rpb25OYW1lZEl0ZW0sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0TGVnYWN5T3ZlcnJpZGVCdWlsdElucz46OmNhbGw8anNUZXN0TGVnYWN5T3ZlcnJpZGVC
dWlsdEluc1Byb3RvdHlwZUZ1bmN0aW9uTmFtZWRJdGVtQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJuYW1lZEl0ZW0iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlLmNwcAppbmRleCA3
ZGE3MDU4ZTc3YjIwMzI0OGMyZTFlOGRmZDg1N2NmMDA2MjIzYTRkLi43M2Q0MzNlNTE5OThiMzI1
Yjk2ZTE3YTE1MDY1ZDdhZmI5YWRhOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1hcExpa2UuY3BwCkBAIC01MCwyMSAr
NTAsMjEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25H
ZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bkZvckVhY2gpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25TZXQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtl
UHJvdG90eXBlRnVuY3Rpb25DbGVhcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWFwTGlrZVNpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE1hcExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdE1hcExpa2VQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTE4OSw3ICsxODksNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RNYXBMaWtlKiBJRExPcGVy
YXRpb248SlNUZXN0TWFwTGlrZT46OmNhc3QoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBqc0R5
bmFtaWNDYXN0PEpTVGVzdE1hcExpa2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TWFw
TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TWFwTGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTk5LDcgKzE5OSw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3RNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0yMTksNyArMjE5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE1hcExpa2VT
aXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBmb3J3YXJkU2l6ZVRvTWFwTGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzT2JqZWN0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVNpemUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RNYXBM
aWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RNYXBMaWtlPjo6Z2V0PGpzVGVzdE1hcExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQpAQCAtMjM4LDcgKzIzOCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rp
b25HZXRCb2R5KEpTQzo6SlNHCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEdldFRvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uR2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25HZXQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFw
TGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJnZXQiKTsKIH0KQEAgLTI1Nyw3ICsyNTcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uSGFzQm9keShKU0M6OkpTRwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRIYXNUb01hcExpa2UoKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGtleSkp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7CiB9CkBAIC0yNzEsNyAr
MjcxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRW50cmllc1Rv
TWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwog
fQpAQCAtMjg1LDcgKzI4NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keShKU0M6OkpTCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9y
d2FyZEtleXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlv
bktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsKIH0K
QEAgLTI5OSw3ICsyOTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6OgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRWYWx1ZXNUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVu
Y3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInZhbHVl
cyIpOwogfQpAQCAtMzE4LDcgKzMxOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keShKU0M6CiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFu
eT4oZm9yd2FyZEZvckVhY2hUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9u
Rm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlPjo6
Y2FsbDxqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CkBAIC0zNDAsNyArMzQwLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VQcm90b3R5
cGVGdW5jdGlvblNldEJvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkU2V0VG9NYXBMaWtlKCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkp
LCBXVEZNb3ZlKHZhbHVlKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uU2V0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25TZXQsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uU2V0Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzZXQi
KTsKIH0KQEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5KEpTQzo6SgogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFy
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2U+OjpjYWxsPGpz
VGVzdE1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJjbGVhciIpOwogfQpAQCAtMzc1LDcgKzM3NSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25E
ZWxldGVCb2R5KEpTQzo6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZERlbGV0ZVRvTWFwTGlrZSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1
bmN0aW9uRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlUHJv
dG90eXBlRnVuY3Rpb25EZWxldGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0TWFwTGlrZT46OmNhbGw8anNUZXN0TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJkZWxldGUiKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zLmNw
cAppbmRleCBkOTAzM2M2OWRmOGViMjY5YjAyZGMyOWRmYTJiM2Q1ZTIzYTEyZGQxLi5iOWZiZWE3
Y2Y3ZTU5YjJjZjI3MTI1OGQxNDExMWI2NDA0MDg5ZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwCkBAIC01MSwyMiAr
NTEsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25HZXQoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uSGFzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25WYWx1ZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25E
ZWxldGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90
b3R5cGVGdW5jdGlvbkNsZWFyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uR2V0KTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9u
c1Byb3RvdHlwZUZ1bmN0aW9uSGFzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRGVsZXRlKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zU2V0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldChKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNTZXQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE5MSw3ICsxOTEsNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zKiBJRExPcGVy
YXRpb248SlNUZXN0TWFwTAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBz
ZXRKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldEdldHRlcihKU0dsb2JhbE9iagogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnNldCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0KEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TWFwTGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1NldChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXRHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzZXQi
KTsKIH0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NldFNldHRlcihKU0dsb2JhbE9iagogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNTZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTZXQoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OnNldDxzZXRKU1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2V0U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzZXQiKTsKIH0KQEAgLTI1Miw3ICsyNTIsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1NpemVHZXR0ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGZvcndh
cmRTaXplVG9NYXBMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnM+OjpnZXQ8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemVH
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzaXplIik7CiB9CkBAIC0y
NjksNyArMjY5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1h
cExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlv
bkNsZWFyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25DbGVhciwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2Fs
bDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25D
bGVhckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xlYXIiKTsKIH0K
QEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRHZXRUb01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRU
aGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkdl
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVz
dE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkdldEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0Iik7CiB9CkBAIC0zMDcsNyAr
MzA3LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkSGFzVG9NYXBM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92
ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbkhhcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMzIxLDcgKzMyMSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNUb01hcExpa2UoKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE1hcExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9w
ZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTMzNSw3ICszMzUsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3Bl
cmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9NYXBMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZUZ1bmN0aW9uS2V5cyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TWFw
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVy
YXRpb25zPjo6Y2FsbDxqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90
eXBlRnVuY3Rpb25LZXlzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJr
ZXlzIik7CiB9CkBAIC0zNDksNyArMzQ5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURM
QW55Pihmb3J3YXJkVmFsdWVzVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8
anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFs
dWVzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0K
QEAgLTM2OCw3ICszNjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRGb3JFYWNoVG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2Fz
dGVkVGhpcywgV1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE1hcExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE1hcExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uRm9yRWFjaEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Zm9yRWFjaCIpOwogfQpAQCAtMzg3LDcgKzM4Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RNYXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETEFueT4oZm9yd2FyZERlbGV0ZVRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZUZ1bmN0aW9uRGVsZXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RN
YXBMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVu
T3BlcmF0aW9ucz46OmNhbGw8anNUZXN0TWFwTGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1By
b3RvdHlwZUZ1bmN0aW9uRGVsZXRlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJkZWxldGUiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggYmRkOTQ1MWVhMmE3ODI0ODM5ZTRh
MTk0ZDcxYmYxZTA0OWVkYzNhOC4uZjk4MGM5NzExMzZjMjJjMjA3OTRlODhhNWQ4MGEyNjUwYjYx
Yjc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTQ3LDggKzQ3LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyUHJvdG90eXBl
IGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMTUs
NyArMzE1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6
OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QKICAgICByZXR1cm4gSlNPYmplY3Q6
OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMyNSw3
ICszMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1
Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9i
amVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5k
ZXggMGI0ODU4YzcxN2ZkNWU0NmNiMzExNWZiZGZmZmFmMWRkZmE4ZmZmZi4uZDYxMTMwYmY0Y2Vh
MzQwMGI3NzcwZjIxYTM5YTc3OTJiZWEwMjQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBA
IC00Nyw4ICs0Nyw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5
cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMx
NSw3ICszMTUsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogbwogICAgIHJldHVybiBKU09iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTMyNSw3ICszMjUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsTwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHBy
b3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKaW5kZXggZDYxZDBjZjEwY2EwNDc5M2E5YzQ0NmJhYmExMTllNjJi
ZTUwMGQyZC4uMjBlMDIzM2VjZjk3NGZjODZjYTg1YTIyZmY5MTE0NzIwZGFkMzM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCkBAIC00OSwxMyArNDksMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
Ly8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRT
ZXR0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRTZXR0ZXIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNl
dHRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyKTsKIAogLy8g
QXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlw
ZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzI5
LDcgKzMyOSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0CiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0zMzksNyArMzM5LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTM3
Miw3ICszNzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90bwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5j
dGlvbk5hbWVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibmFtZWRTZXR0ZXIiKTsKIH0KQEAgLTM5Nyw3ICszOTcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXJQcm90bwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkluZGV4ZWRT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0dGVyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
clByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiaW5kZXhlZFNldHRlciIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAppbmRleCA2ZmUwMGQxYjU4ZDdmMDc4MDlkYTBh
MjVhZmZlOGE2YjI0ZDc5MzNiLi4xZDUyYTY0NjRhMWRhNTk3YTk1YWE0ZDkzYmI1NDhhZmQzMWQ4
MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNw
cApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVz
CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIyNyw3ICsyMjcs
NyBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6ZGVsZXRlUHJvcGVydHlC
eUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYQogICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHlCeUluZGV4KGNlbGwsIGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4KTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RO
YW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIzNyw3ICsyMzcsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAK
aW5kZXggYjg1NjBmYTFjOWM5ZWJhN2E4YzBkYmFiMjM4ZGY2MTQ5MTUwMGQ3Ni4uYjI5MDQ0ZWEw
MGZkYmI1ZmMwMzY3M2U4ZDQ3YjU1MWMzYmYyMjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC00Niw4ICs0Niw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVs
ZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Qcm90b3R5cGUg
ZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIyNyw3
ICsyMjcsNyBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpkZWxl
dGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBKUwogICAgIHJldHVybiBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4KTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25D
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0yMzcsNyArMjM3LDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDJiYmFjYmMzYjhkMWY4NTc2MjJkMmVmNGYy
NmZlMTlkMjg5YmI0YTIuLjI3NDcxZWRlOWVlZjQ3MmQyYmIxZDgxOTBmNzgzZjEwMzFiYWM0YTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNw
cApAQCAtNDcsMTIgKzQ3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9u
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRlcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkRGVsZXRl
cik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0IHsKIHB1YmxpYzoKQEAgLTIzNCw3ICsyMzQsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVs
ZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFs
dWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjQ0LDcgKzI0NCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNzQsNyArMjc0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBl
RnVuY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZERlbGV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1l
ZERlbGV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlRnVuY3Rpb25OYW1lZERlbGV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgIm5hbWVkRGVsZXRlciIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggNmJhNDIzZjZmMjI2NzFm
NTgyZjkzMGI2NGQ4ZTEyMDdhM2QzY2Q4MS4uMDBjOTYzNGE0NGRjODAyZTI1ZGRhZTQxZjFkNzBj
NDUyODdhZGM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC00Nyw4ICs0Nyw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVy
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI0MSw3ICsyNDEsNyBAQCBib29sIEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlND
ZWxsKiBjZWxsLCBKUwogICAgIHJldHVybiAhaW1wbC5pc1N1cHBvcnRlZFByb3BlcnR5SW5kZXgo
aW5kZXgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhl
ZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTI1MSw3ICsyNTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6
OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlw
ZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGgu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGguY3BwCmluZGV4IDBjODk5MzEyNDM2YjlkMjFjODMyNDI1MmQxZDllZjFi
MzRjMmMyMmQuLmU0Yjk1YTQ2MjQzNmY2OTcxNDhkZDU4OTU4NTBlZTVlNGY3M2EwOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEdldHRlckNhbGxXaXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKQEAgLTQ2LDggKzQ2LDggQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhQcm90
b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAg
LTIwMSw3ICsyMDEsNyBAQCB2b2lkIEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGg6OmdldE93blBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYgogICAgIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lcywgbW9kZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0dGVyQ2FsbFdp
dGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIxMSw3
ICsyMTEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYQogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGhDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFt
ZWRHZXR0ZXJDYWxsV2l0aENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0
dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggMTdiY2Y3OTI1YjBk
NTYxMWI0M2Q2NzMyOGE1ZTFjY2VlMjVlOGU5OS4uZWVhNzRlY2Q2NTQ4N2NkNTI1Yzc1ZWYyYTM4
NjAwODMyODY4ZDIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0
dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRp
ZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlm
aWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXJQcm90b3R5cGUgZmlu
YWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIwMSw3ICsy
MDEsNyBAQCB2b2lkIEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYgogICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjExLDcg
KzIxMSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5k
ZXggZWYxMzI2NzRjNDczZDQxNTU3OTZjYTFlMzc2N2U0NTlkMjZlYTczNC4uNjZlYTcyYzgzMjUy
MWExNmFiNzFkNjA3Yzc2OGM1ZWRlM2NmYzU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtNDcsMTIgKzQ3LDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9u
R2V0dGVyTmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllclByb3Rv
dHlwZUZ1bmN0aW9uR2V0dGVyTmFtZSk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yMTIsNyArMjEyLDcgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9u
PEpTVGVzdE5hbWVkR2V0dGUKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZEdl
dHRlcldpdGhJZGVudGlmaWVyKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNh
bGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkR2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTIyMiw3ICsyMjIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1l
ZEdldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYQog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmll
cjo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90
eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE5hbWVkR2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllckNv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYg
dm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
UHJvdG90eXBlRnVuY3RpCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFs
dWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwu
Z2V0dGVyTmFtZShXVEZNb3ZlKG5hbWUpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25H
ZXR0ZXJOYW1lKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25HZXR0ZXJOYW1lLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYWxsPGpz
VGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlvbkdldHRlck5hbWVC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldHRlck5hbWUiKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IGVm
MDM5ZGI2ZmUzOTE4ZmFkOWE3NjM0NzczMDZmOTM0ZjM0MDI4ZDcuLmJlODZlZjcwNzg3MWJmNTQ5
NDEyZjUzMGIwYWFkYzZlNjZlN2ZjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtNDYsOCArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyUHJv
dG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBA
IC0yNzAsNyArMjcwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6ZGVm
aW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWwKICAgICByZXR1cm4gSlNP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yODAsNyArMjgwLDcgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCAyYzc5
ZTNkMzEzMzFlYzdmM2I1YzZjYzZmMDViMzZjZTliYTViMGVlLi4yOWY2NWE2Yzg0ZWUxNDRmNDA2
MDE4ZjQ2NTU2ZmI4ZmJkYmU5M2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC00Niw4ICs0Niw4IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNzAsNyArMjcwLDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09i
amVjdCogb2JqZWN0LCBKU0cKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5
KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURl
c2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjgwLDcgKzI4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggMTQ2YjQxNGIx
ZGY5Y2Q3NGJjMDlhNjQxNDQ0YTVkMjA5ZmY3NWY0Mi4uZmJjOWE5ZDA5MTU1MDFhZDQyNDBhOThl
YjE3OTUzMTU4OGE4NWVkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyLmNwcApAQCAtNDcsMTIgKzQ3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllclByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVGdW5jdGlv
bk5hbWVkU2V0dGVyKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI4MSw3ICsyODEsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFt
ZWRTZXR0ZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllckNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpAQCAtMjkxLDcgKzI5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklU
X09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMjQsNyArMzI0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXJQcm90b3R5cGVG
dW5jdGkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNl
dHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyPjo6Y2FsbDxqc1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyUHJvdG90
eXBlRnVuY3Rpb25OYW1lZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibmFtZWRTZXR0ZXIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAppbmRleCBkYjA4MmU5ZjdhMzdmYWMwNWQ5ZTk0ZTIw
Y2RmZmEyZGMyNGU0ZTY1Li4zMDM2MTA1YzBkNzlmMDRlZjM1OGEzMDQ2YzlmOTk5OTJlNTU3NWFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXIuY3BwCkBAIC00OSwxMyArNDksMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVu
Y3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVu
Y3Rpb25JbmRleGVkU2V0dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkluZGV4ZWRTZXR0ZXIpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xh
c3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZSBmaW5hbCA6IHB1
YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMzA2LDcgKzMwNiw3IEBA
IHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIqIElE
TE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNlCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxP
YmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMTYsNyArMzE2LDcgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTM0OSw3ICszNDksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bgogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9u
TmFtZWRTZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5hbWVkU2V0dGVyLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI+
OjpjYWxsPGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bk5hbWVkU2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJuYW1l
ZFNldHRlciIpOwogfQpAQCAtMzY5LDcgKzM2OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVu
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pT
PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaW5kZXhlZFNldHRlcihX
VEZNb3ZlKGluZGV4KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNl
dHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5k
ZXhlZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyPjo6Y2Fs
bDxqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRl
eGVkU2V0dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJpbmRleGVk
U2V0dGVyIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKaW5kZXggYWExOGUyZGI4OGY3NzUzMmUx
NjAzM2I0ZTEzYmRjYjgyMGZjZDYzMC4uZjIwZjVmN2VhZDE4NmQxMzU1NGFlNjA5MzMwYTY1YjJl
Njk0MGMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcApAQCAtNDksMTMgKzQ5LDEzIEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclBy
b3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNl
dHRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRl
clByb3RvdHlwZUZ1bmN0aW9uTmFtZWRTZXR0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVu
Y3Rpb25JbmRleGVkU2V0dGVyKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRH
ZXR0ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTMyOSw3ICszMjksNyBAQCB0ZW1wbGF0
ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyKiBJ
RExPcGVyYXRpb248SlNUZQogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzM5LDcg
KzMzOSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0
ZXJBbmRTZXR0ZXJDb25zdHJ1Y3RvcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyQW5kU2V0dGVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zNzIsNyArMzcy
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVy
V2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJQcm90b3R5cGVGdW5jdGlvbk5h
bWVkU2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlciwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyPjo6Y2FsbDxqc1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25OYW1lZFNldHRlckJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibmFtZWRTZXR0ZXIiKTsKIH0KQEAgLTQyNCw3ICs0MjQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlckFuZFNldHRlclBybwogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhy
b3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclBy
b3RvdHlwZUZ1bmN0aW9uSW5kZXhlZFNldHRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlclByb3RvdHlwZUZ1bmN0
aW9uSW5kZXhlZFNldHRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyPjo6Y2FsbDxqc1Rlc3ROYW1lZFNl
dHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyUHJvdG90eXBlRnVuY3Rpb25JbmRleGVkU2V0
dGVyT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImluZGV4ZWRTZXR0ZXIiKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAppbmRleCA2Mjc1ZWMyYmY2
ODY2Yjk5YjllOGMzOGZhYTY5OWU5NmQ2ODRiODc0Li4yMGZiMjQ0ZGZlMjJhMDEzOGUyNDMyMzU0
NjQzMTk5ZjJjZjVhNDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCkBAIC00Niw4ICs0Niw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lP
dmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0yNTEsNyArMjUxLDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpkZWZpbmVPd25Qcm9w
ZXJ0eShKU09iamVjdCogb2IKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5
KG9iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURl
c2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYxLDcgKzI2MSw3IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zOjpnZXRDb25zdHJ1Y3RvcihK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0
SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXMuY3BwCmluZGV4IGVlYjI2YWIyMjRiZmIzYThiNzgxNThkNDg2NDAxMGJiNGNhMTFhMzIuLmUz
Mzc2MzNjZDcyNmYyMWM1ZDQ3ODhhNzIzMTcwYzcwZjg0ZWI4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhM
ZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXMuY3BwCkBAIC00OCwxMyArNDgsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsK
IAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNJbnN0YW5jZUZ1bmN0
aW9uVW5mb3JnZWFibGVPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJh
dGlvbik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXND
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzVW5mb3JnZWFi
bGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0zMTEsNyArMzExLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzKiBJRExPcGVy
YXRpb24KICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgY2FsbEZyYW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROYW1lZFNl
dHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTMy
MSw3ICszMjEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lV
bmZvcmdlYWJsZVByb3BlcnRpZXNDb25zdHJ1Y3RvcihKU0dsbwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVy
V2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMzQyLDcgKzM0Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3ROYW1l
ZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETERPTVN0cmluZz4obGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bmZvcmdlYWJsZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJs
ZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc1VuZm9yZ2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllcz46OmdldDxqc1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXNVbmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVu
Zm9yZ2VhYmxlQXR0cmlidXRlIik7CiB9CkBAIC0zNTksNyArMzU5LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExl
Z2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJh
dGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3BlcmF0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllcz46OmNhbGw8anNUZXN0TmFtZWRTZXR0ZXJXaXRo
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxlT3Bl
cmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ1bmZvcmdlYWJs
ZU9wZXJhdGlvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCmluZGV4IDUxNmM2ZDk1Mjlh
MWZhNTM4ZmM3ZWJjNDBiOGZhZDhmMjdlZWQ1NDUuLjVlN2MxZDlkZTE1OTM4ZTgzZjNjYzRiMDhm
MGMxMmVjZTE0MjZmNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRp
ZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFi
bGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKQEAgLTQ4LDEzICs0OCwx
MyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZUZ1bmN0aW9uVW5m
b3JnZWFibGVPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZUZ1bmN0
aW9uVW5mb3JnZWFibGVPcGVyYXRpb24pOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVz
QW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5
VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc1VuZm9yZ2VhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9y
Z2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTI5Miw3ICsyOTIs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycgogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92
ZXJyaWRlQnVpbHRJbnMqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZy
YW1lLnRoaXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdEluc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVn
YWN5T3ZlcnJpZGVCdWlsdEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMzAyLDcgKzMwMiw3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVy
dGllc0FuZExlZ2FjeU92ZXJyaWRlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RO
YW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlk
ZUJ1aWx0SW5zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
LCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWls
dEluc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVBy
b3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0zMjMsNyArMzIzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU8KICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuZm9yZ2VhYmxlQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zPjo6Z2V0PGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNVbmZvcmdlYWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInVuZm9yZ2VhYmxlQXR0
cmlidXRlIik7CiB9CkBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGkK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnNJbnN0YW5jZUZ1bmN0aW9uVW5m
b3JnZWFibGVPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5hbWVk
U2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVp
bHRJbnNJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVPcGVyYXRpb24sIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucz46OmNhbGw8anNUZXN0TmFtZWRTZXR0
ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElu
c0luc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU9wZXJhdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAidW5mb3JnZWFibGVPcGVyYXRpb24iKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNw
cAppbmRleCBmNzM5ZjY5MDRhZGNlZWIzMWNiNmM5OGM5YTI3MjFlOGJmMTU1NzkwLi45ODhiYjVj
NGFmZjA3ZDZlYjM4NjVkNWJlZjYzN2M1YmMzNTc4OWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCkBAIC01NCwy
NSArNTQsMjUgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25U
ZXN0V29ya2VyUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVu
Y3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVTZWNyZXRSZXN1bHQpOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNy
ZXRCb29sZWFuKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0
U2VjcmV0Qm9vbGVhbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZl
YXR1cmVHZXRTZWNyZXRCb29sZWFuKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25TeW1ib2xJdGVyYXRvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvblRvSlNPTik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvblN5bWJvbEl0ZXJhdG9yKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKIAog
Ly8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3ROb2RlTmFtZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Tm9kZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3ROb2RlTmFt
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE5vZGVOYW1lKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAog
Y2xhc3MgSlNUZXN0Tm9kZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTA4LDcgKzEwOCw3IEBAIFNUQVRJQ19BU1NFUlRfSVNPX1NV
QlNQQUNFX1NIQVJBQkxFKEpTVGVzdE5vZGVQcm90b3R5cGUsIEpTVGVzdE5vZGVQcm90b3R5cGU6
OkJhCiAKIHVzaW5nIEpTVGVzdE5vZGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3I8SlNU
ZXN0Tm9kZT47CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rl
c3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVj
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEyMyw2ICsxMjMsNyBA
QCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0Tm9kZUNvbnN0
cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYQogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQorSlND
X0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0Tm9kZUNvbnN0cnVjdG9yQ29uc3RydWN0LCBK
U1Rlc3ROb2RlQ29uc3RydWN0b3I6OmNvbnN0cnVjdCk7CiAKIHRlbXBsYXRlPD4gSlNWYWx1ZSBK
U1Rlc3ROb2RlQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
Y29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsKQEAgLTI2NCw3ICsyNjUs
NyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROb2RlKiBJRExPcGVyYXRpb248SlNUZXN0Tm9k
ZT46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5vZGUqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0Tm9k
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMjc0LDcgKzI3NSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2RlOjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROb2RlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2
bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yOTUsNyArMjk2LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubmFtZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE5vZGVOYW1lKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE5vZGU+OjpnZXQ8
anNUZXN0Tm9kZU5hbWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJuYW1lIik7CiB9CkBAIC0zMTMsNyArMzE0
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE5vZGVOYW1lU2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29s
IHNldEpTVGVzdE5vZGVOYW1lKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3ROb2RlTmFtZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3ROb2RlPjo6c2V0
PHNldEpTVGVzdE5vZGVOYW1lU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJuYW1lIik7CiB9CkBAIC0zMzAsNyArMzMxLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRlc3RX
b3JrZXJQcm9taXNlQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVG
dW5jdGlvblRlc3RXb3JrZXJQcm9taXNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0V29ya2VyUHJvbWlzZSwgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdFdvcmtlclByb21pc2VCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RXb3JrZXJQcm9taXNlIik7CiB9CkBAIC0zNDcsNyAr
MzQ4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3UKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2Vj
cmV0UmVzdWx0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlz
ZTxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25DYWxjdWxhdGVT
ZWNyZXRSZXN1bHRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNhbGN1
bGF0ZVNlY3JldFJlc3VsdCIpOwogfQpAQCAtMzYyLDcgKzM2Myw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25HZXRTZWNyZXRC
b29sZWFuQm9kCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEJvb2xlYW4+KGltcGwuZ2V0U2VjcmV0Qm9vbGVhbigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvbkdl
dFNlY3JldEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90
b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uR2V0U2Vj
cmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0U2Vj
cmV0Qm9vbGVhbiIpOwogfQpAQCAtMzc4LDcgKzM3OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNl
Y3JlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEJvb2xlYW4+KGltcGwudGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0
aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0
Tm9kZVByb3RvdHlwZUZ1bmN0aW9uVGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xl
YW4iKTsKIH0KQEAgLTM5Niw3ICszOTcsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTkJvZHkoSlNHbG9iYWxPYmplYwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25Ub0pTT04oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblRvSlNPTiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3ROb2RlPjo6Y2FsbDxqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25Ub0pTT05Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgInRvSlNPTiIpOwogfQpAQCAtNDU2LDYgKzQ1Nyw3IEBAIElHTk9SRV9XQVJOSU5HU19FTkQK
IH07CiAKIHVzaW5nIFRlc3ROb2RlSXRlcmF0b3JQcm90b3R5cGUgPSBKU0RPTUl0ZXJhdG9yUHJv
dG90eXBlPEpTVGVzdE5vZGUsIFRlc3ROb2RlSXRlcmF0b3JUcmFpdHM+OworSlNDX0FOTk9UQVRF
X0hPU1RfRlVOQ1RJT04oVGVzdE5vZGVJdGVyYXRvclByb3RvdHlwZU5leHQsIFRlc3ROb2RlSXRl
cmF0b3JQcm90b3R5cGU6Om5leHQpOwogCiB0ZW1wbGF0ZTw+CiBjb25zdCBKU0M6OkNsYXNzSW5m
byBUZXN0Tm9kZUl0ZXJhdG9yQmFzZTo6c19pbmZvID0geyAiVGVzdE5vZGUgSXRlcmF0b3IiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKFRlc3RO
b2RlSXRlcmF0b3JCYXNlKSB9OwpAQCAtNDY5LDcgKzQ3MSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0NhbGxlcihKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckNyZWF0ZTxUZXN0Tm9k
ZUl0ZXJhdG9yPigqdGhpc09iamVjdCwgSXRlcmF0aW9uS2luZDo6VmFsdWVzKSk7CiB9CiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rp
b25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9k
ZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
RW50cmllc0NhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVz
Iik7CiB9CkBAIC00NzksNyArNDgxLDcgQEAgc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25LZXlzQ2FsbGVyKEpTR2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJhdG9yQ3JlYXRlPFRlc3ROb2RlSXRlcmF0b3I+KCp0
aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpLZXlzKSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9u
S2V5cywgKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9k
ZT46OmNhbGw8anNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uS2V5c0NhbGxlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJrZXlzIik7CiB9CkBAIC00ODksNyArNDkxLDcgQEAg
c3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlUHJvdG90eXBlRnVuY3Rpb25W
YWx1ZXNDYWxsZXIoSlNHbG9iYWxPYmoKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGl0ZXJh
dG9yQ3JlYXRlPFRlc3ROb2RlSXRlcmF0b3I+KCp0aGlzT2JqZWN0LCBJdGVyYXRpb25LaW5kOjpW
YWx1ZXMpKTsKIH0KIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE5v
ZGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU0M6OkNhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE5vZGVQcm90b3R5cGVGdW5jdGlvblZhbHVlcywgKEpTQzo6SlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVBy
b3RvdHlwZUZ1bmN0aW9uVmFsdWVzQ2FsbGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxG
cmFtZSwgInZhbHVlcyIpOwogfQpAQCAtNDk5LDcgKzUwMSw3IEBAIHN0YXRpYyBpbmxpbmUgRW5j
b2RlZEpTVmFsdWUganNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcihKU0ds
b2JhbE9iCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShpdGVyYXRvckZvckVhY2g8VGVzdE5v
ZGVJdGVyYXRvcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICp0aGlzT2JqZWN0
KSk7CiB9CiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3ROb2RlUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0Tm9kZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0Tm9kZT46OmNhbGw8anNUZXN0Tm9kZVByb3Rv
dHlwZUZ1bmN0aW9uRm9yRWFjaENhbGxlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJmb3JFYWNoIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDEzNWIwNWUwZmI2MWU2ZWMwYzY0OTcx
OTFlYTQ3Y2M5MGY2NjMyM2UuLmNiODU1ZTc4ZmZlNGY4NTExNDI3MjQ5N2VkZjM4OTU4YjRlMzU0
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwCkBAIC0xNDIyLDM3NSArMTQyMiwzNzUgQEAgdGVtcGxhdGU8PiBUZXN0
T2JqOjpDb25kaXRpb25hbERpY3Rpb25hcnlDIGNvbnZlcnREaWN0aW9uYXJ5PFRlc3RPYmo6OkNv
bmRpdGlvbmEKIC8vIEZ1bmN0aW9ucwogCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVu
YWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbik7CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0
cnVjdG9yRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uU3RhdGljKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9wZXJhdGlvblN0YXRp
Yyk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVF
bmFibGVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29ybGRT
cGVjaWZpY01ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNhbGN1bGF0ZVNlY3JldFJlc3VsdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uRW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldvcmxk
U3BlY2lmaWNNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbik7CiAjaWYg
RU5BQkxFKFRFU1RfRkVBVFVSRSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNlY3JldEJvb2xl
YW4pOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRob2RXaXRoQXJncyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2QoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3MoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdz
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT2JqTWV0aG9kV2l0aEFy
Z3MoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqSW5zdGFuY2VGdW5jdGlvblVuZm9yZ2VhYmxl
TWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdN
ZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk51bGxh
YmxlU3RyaW5nU3RhdGljTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZUVudW1Bcmco
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxFbnVtQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRU
aHJvd3MoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoVVNWU3RyaW5nQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5nQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFz
RW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQnl0ZVN0cmluZ0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25TZXJpYWxpemVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3JkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2Vw
dGlvblJldHVybmluZ09iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkN1c3RvbU1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uUHJpdmF0ZU1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BZGRFdmVudExpc3RlbmVyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lkKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9i
aihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3Rh
dGVWb2lkRXhjZXB0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0KEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRFeGVjU3RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25X
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhEb2N1bWVudEFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXJndW1lbnQoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJn
dW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoT3B0aW9uYWxBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRp
b25hbEFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJncyhKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVT
VlN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEF0b21TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0VmFsdWUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxB
dG9tU3RyaW5nQW5kRGVmYXVsdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNV
bmRlZmluZWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNOdWxsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbERvdWJsZUlzTmFOKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xv
bmdJc1plcm8oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZ0lzWmVy
byhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFNlcXVlbmNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5KEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQm9vbGVhbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJv
b2xlYW5Jc0ZhbHNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQW55KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsTnVsbGFibGVXcmFwcGVySXNOdWxsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmVjb3Jk
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0FyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5k
T3B0aW9uYWxBcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrRnVuY3Rp
b25BcmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlvbmFsQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25h
bEFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGlj
TWV0aG9kV2l0aENhbGxiYWNrQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blVuZGVmaW5lZE1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2QpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RX
aXRoQXJncyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT2N0ZXRNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2QpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRo
QXJncyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT2JqTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJncyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU1ldGhvZCk7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFyZ1Ry
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51
bGxhYmxlU3RyaW5nTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmlu
Z1NwZWNpYWxNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZUVudW1Bcmcp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEVudW1BcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0
VmFsdWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTnVsbGFi
bGVCeXRlU3RyaW5nQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoQnl0ZVN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlT
dHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblNlcmlhbGl6ZWRWYWx1ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFJlY29yZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmpl
Y3QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkN1c3RvbU1ldGhvZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ3VzdG9tTWV0aG9kV2l0aEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2QpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZh
dGVNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblJlbW92ZUV2ZW50TGlzdGVuZXIpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhFeGVjU3RhdGVWb2lk
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25X
aXRoRXhlY1N0YXRlT2JqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlvbik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iakV4
Y2VwdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kRXhlY1N0YXRlKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2Vw
dGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRG9j
dW1lbnRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uV2l0aENhbGxlckRvY3VtZW50QXJndW1lbnQpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1
bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmdBbmREZWZhdWx0VmFs
dWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRUd29PcHRpb25hbEFyZ3MpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyk7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsVVNWU3RyaW5nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBdG9tU3RyaW5nKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxTdHJpbmdBbmREZWZhdWx0VmFsdWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdBbmREZWZh
dWx0VmFsdWUpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbCk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nSXNVbmRlZmluZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc051bGwpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFN0cmluZ0lzRW1wdHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1w
dHlTdHJpbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxEb3VibGVJc05hTik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTik7CitKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsTG9uZ0xvbmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0
aW9uYWxVbnNpZ25lZExvbmdMb25nKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNa
ZXJvKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0Vt
cHR5KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNGYWxz
ZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsQW55KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbE51bGxhYmxlV3JhcHBlcik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxs
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCk7
CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsUHJvbWlzZSk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXJnKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2Fs
bGJhY2tBcmdBbmRDYWxsYmFja0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcpOwor
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFj
a0Z1bmN0aW9uQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlvbmFsQXJnKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRp
Y01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFj
a0FyZyk7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxKTsKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsTWV0aG9kMihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25k
aXRpb25hbE1ldGhvZDIpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJM
RShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMyk7CiAjZW5kaWYKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2QoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVy
bG9hZGVkTWV0aG9kV2l0aE9wdGlvbmFsUGFyYW1ldGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhEaXN0aW5ndWlzaGluZ1Vu
aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZFdpdGgyRGlzdGluZ3Vpc2hpbmdVbmlvbnMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kV2l0aE5vbkRpc3Rpbmd1aXNoaW5n
VW5pb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9h
ZFdpdGhOdWxsYWJsZVVuaW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRXaXRoT3B0aW9uYWxVbmlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQ
YXJhbWV0ZXIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNs
YXNzTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25D
bGFzc01ldGhvZFdpdGhPcHRpb25hbChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1
Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk92ZXJsb2FkZWRNZXRob2QpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbik7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgy
RGlzdGluZ3Vpc2hpbmdVbmlvbnMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdV
bmlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVVbmlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoT3B0aW9uYWxVbmlvbik7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zlcmxv
YWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFtZXRlcik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZCk7CitK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFz
c01ldGhvZFdpdGhPcHRpb25hbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
akNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZDIpOwogI2lmIEVOQUJMRShDb25kaXRpb24x
KQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9y
RnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoQ2xh
bXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhv
ZFdpdGhDbGFtcE9uT3B0aW9uYWwoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlv
bmFsKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkRvbVN0cmluZ0xpc3RGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1l
dGVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uR2V0RWxlbWVudEJ5SWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbnZlcnQxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQ29udmVydDIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Db252ZXJ0MyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUq
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbnZlcnQ0KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTXV0YWJsZVBvaW50RnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PcmFuZ2UoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25WYXJpYWRpY1N0cmluZ01ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhvZChKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZs
b2F0QXJndW1lbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1
bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9t
aXNlT3ZlcmxvYWRlZEZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uV2l0aEV4
Y2VwdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RD
dXN0b21Qcm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24oSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VG
dW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RS
ZXR1cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKTsKK0pTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFt
cE9uT3B0aW9uYWwpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aEVuZm9yY2VSYW5nZSk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoRW5mb3Jj
ZVJhbmdlT25PcHRpb25hbCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdBcnJheUZ1
bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1l
dGVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UpOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRTVkdE
b2N1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29udmVydDEpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbnZlcnQyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0Myk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDQpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk11dGFibGVQb2ludEZ1bmN0aW9uKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFu
Z2UpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blZhcmlhZGljU3RyaW5nTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25WYXJpYWRpY0RvdWJsZU1ldGhvZCk7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9k
KTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25W
YXJpYWRpY1VuaW9uTWV0aG9kKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25BbnkpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25X
aXRoRmxvYXRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24pOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNl
RnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rp
b24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUZ1bmN0aW9uV2l0
aEV4Y2VwdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljQ3VzdG9tUHJvbWlz
ZUZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVybnNPd25Q
cm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24pOwogI2lmIEVOQUJMRShDT05ESVRJT04xKSB8
fCBFTkFCTEUoQ09ORElUSU9OMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWQoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPdmVybG9hZCk7CiAjZW5kaWYKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blNpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2Fs
bEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aEV4dGVybmFsRGljdGlvbmFyeVBhcmFtZXRl
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJj
ZVBhcmFtZXRlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxl
Z2FjeUNhbGxlck5hbWVkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0aEV4Y2VwdGlv
bihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blNpbmdsZUNvbmRpdGlvbmFsT3ZlcmxvYWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkF0dGFjaFNoYWRvd1Jvb3QpOworSlNDX0RFQ0xBUkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhFeHRl
cm5hbERpY3Rpb25hcnlQYXJhbWV0ZXIpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJjZVBhcmFtZXRlcik7CitKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTGVnYWN5Q2FsbGVyTmFt
ZWQpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uV2l0
aEV4Y2VwdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1bmN0aW9uKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5
RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3Jr
ZXJGdW5jdGlvbik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9u
bHlMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1N0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0
aWNTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3Ry
dWN0b3JUZXN0U3ViT2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakVudW1BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakVudW1BdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNU
ZXN0T2JqQnl0ZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3Rl
dEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialNo
b3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNsYW1wZWRTaG9y
dEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQ2xhbXBlZFNob3J0QXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rl
c3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakxvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE9iakxvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpV
c3ZzdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9i
akF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0TnVsbGFibGVPYmpBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqTGVu
aWVudFRlc3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5m
b3JnZWFibGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LWJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmco
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0
aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0
dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqU3Ry
aW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpV
c3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdM
b25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVzdnN0
cmluZ0xvbmdSZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdS
ZWNvcmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nT2Jq
UmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNv
cmRBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFj
a1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVj
b3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRpY3Rpb25hcnlB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakRpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9uQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpNZWRpYURldmljZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqWE1MT2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE9iakNyZWF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmlu
Z0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVVNWVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZVUkxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50
ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFs
QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3Rv
bUJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xl
YW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9y
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFk
T25seUxvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlM
b25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uc3RydWN0
b3JUZXN0U3RhdGljUmVhZG9ubHlPYmooSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakVudW1BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpCeXRlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
akJ5dGVBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpPY3RldEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPY3Rl
dEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialNob3J0QXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2xh
bXBlZFNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNsYW1w
ZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRy
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJp
bmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3Ry
aW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRl
c3RPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVGVzdE9iakF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRl
c3ROdWxsYWJsZU9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpU
ZXN0TnVsbGFibGVPYmpBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU3Ry
aW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0Vt
cHR5U3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVXN2c3RyaW5n
QXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0
eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakJ5dGVTdHJpbmdB
dHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1Jl
Y29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdM
b25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nT2JqUmVjb3JkQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ051
bGxhYmxlT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29y
ZEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akRpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqRGlj
dGlvbmFyeUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iak51bGxhYmxlRGljdGlvbmFyeUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFu
bm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakltcGxlbWVudGF0aW9uRW51bUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak1lZGlh
RGV2aWNlcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alhNTE9iakF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpYTUxPYmpB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpD
cmVhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFN0
cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRT
dHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpSZWZsZWN0ZWRVU1ZTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRV
bnNpZ25lZEludGVncmFsQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVm
bGVjdGVkVVNWVVJMQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJl
ZmxlY3RlZFVTVlVSTEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRl
Z3JhbEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxB
dHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVz
dE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRp
YyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGVTdGF0aWMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZVN0YXRpYyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0
dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1ib29sIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpPbmZvbyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpPbmZvbyhKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9ud2Via2l0Zm9vKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
VGVzdE9iak9ud2Via2l0Zm9vKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0
YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENh
bGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
V2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVHlwZWRBcnJh
eUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ3Vz
dG9tQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakN1c3RvbUF0dHIo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9uZm9v
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT25mb28oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9ud2Via2l0Zm9vKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT253ZWJraXRmb28oSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRy
aWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0
YXRlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNB
dHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
I2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjEoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIxKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUo
Q29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
MihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RP
YmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRy
aWJ1dGUyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
Q2FjaGVkQXR0cmlidXRlMShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNpZiBFTkFCTEUoQ09ORElUSU9OKQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUzKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogI2VuZGlmCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2Jq
T2JqZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
dGVudERvY3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQ
b2ludChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9i
alN0cmF3YmVycnkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlw
dGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJZChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RPYmpJZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhhc2go
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJp
bmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RP
YmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlz
ZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9u
bHlQcm9taXNlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1
dEZvcndhcmRzQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0
cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNO
dWxsYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxh
YmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5n
aWZpZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2lu
ZG93QW5kV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citi
b29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqT2JqZWN0QXR0cmlidXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpNdXRhYmxl
UG9pbnQoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmF3
YmVycnkoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpEZXNjcmlw
dGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iaklk
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqSWQoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakhhc2goSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxs
YWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlU3Ry
aW5nQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVTdHJpbmdT
ZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51
bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVBdHRyaWJ1
dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmlu
Z1NldHRhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxl
QXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlW
b2lkUHJvbWlzZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIGpzVGVzdE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRl
KEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpQdXRG
b3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdpZmllckF0dHJpYnV0ZShKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ29uZGl0aW9u
YWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3Nl
ZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE9ialByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTkzNyw3ICsxOTM3LDcgQEAgc3RhdGljX2Fz
c2VydChUZXN0T2JqOjpDT05TVF9WQUxVRV8xNCA9PSAweDFhYmMsICJDT05TVF9WQUxVRV8xNCBp
biBUZXN0T2JqIGRvZXMKIHN0YXRpY19hc3NlcnQoVGVzdE9iajo6Q09OU1RfSU1QTCA9PSAxNSwg
IkNPTlNUX0lNUEwgaW4gVGVzdE9iaiBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwog
c3RhdGljX2Fzc2VydChUZXN0T2JqOjpyZWFkb25seSA9PSAwLCAicmVhZG9ubHkgaW4gVGVzdE9i
aiBkb2VzIG5vdCBtYXRjaCB2YWx1ZSBmcm9tIElETCIpOwogCi10ZW1wbGF0ZTw+IEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0T2JqQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0
ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RP
YmpDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpAQCAtMTk2NSw2ICsxOTY1LDcgQEAgdGVtcGxhdGU8PiBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWwKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdE9i
akNvbnN0cnVjdG9yQ29uc3RydWN0LCBKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsK
IAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCiB7CkBAIC0yNTQ2LDcgKzI1NDcsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGNhbGxKU1Rlc3RPYmozKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgY2FsbEpTVGVzdE9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbEpTVGVzdE9iaiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVj
dC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTI1ODIsNyArMjU4Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE9iaiogSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhc3QoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJu
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVj
dCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yNTkyLDcgKzI1OTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T2Jq
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5
cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjYxMyw3ICsyNjE0
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5TG9uZ0F0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwg
aW1wbC5yZWFkT25seUxvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alJlYWRPbmx5TG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seUxvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWFk
T25seUxvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhZE9ubHlMb25nQXR0ciIpOwogfQpAQCAt
MjYyNiw3ICsyNjI3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5
U3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnJlYWRPbmx5U3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vy
cm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInJl
YWRPbmx5U3RyaW5nQXR0ciIpOwogfQpAQCAtMjYzOSw3ICsyNjQwLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
SW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5yZWFkT25seVRlc3RPYmpBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWFkT25s
eVRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAicmVhZE9ubHlUZXN0T2JqQXR0ciIpOwogfQpAQCAtMjY1MSw3ICsyNjUyLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlM
b25nQXR0ckdldHRlcihKU0dsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdE9i
ajo6c3RhdGljUmVhZE9ubHlMb25nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRp
Y1JlYWRPbmx5TG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGlj
UmVhZE9ubHlMb25nQXR0ckdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIiKTsKIH0KQEAgLTI2NjMsNyArMjY2NCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0
b0pTPElETERPTVN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgVGVzdE9i
ajo6c3RhdGljU3RyaW5nQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2Jq
Pjo6Z2V0U3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0ckdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0YXRpY1N0cmluZ0F0dHIiKTsKIH0K
QEAgLTI2ODAsNyArMjY4MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
c2V0U3RhdGljPHNldEpTVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0clNldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAic3RhdGljU3Ry
aW5nQXR0ciIpOwogfQpAQCAtMjY5MSw3ICsyNjkyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iakdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWMKICAgICByZXR1cm4gSlNUZXN0U3ViT2JqOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9y
VGVzdFN1Yk9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqR2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdFN1Yk9iaiIpOwogfQpA
QCAtMjcwOCw3ICsyNzA5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9i
YWxPYmplY3QpLCB0aHJvd1Njb3BlLCBUZXN0T2JqOjp0ZXN0U3RhdGljUmVhZG9ubHlPYmooZG9j
dW1lbnQpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RT
dGF0aWNSZWFkb25seU9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN0YXRpY1JlYWRvbmx5T2JqKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdGF0aWNSZWFkb25seU9iakdldHRlcj4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3RTdGF0aWNSZWFkb25seU9iaiIp
OwogfQpAQCAtMjcyMSw3ICsyNzIyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9i
akVudW1BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICBS
RUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRW51bWVyYXRpb248VGVzdE9i
ajo6RW51bVR5cGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmVudW1B
dHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVudW1BdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqRW51bUF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6Z2V0PGpzVGVzdE9iakVudW1BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW51bUF0dHIiKTsK
IH0KQEAgLTI3NDIsNyArMjc0Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpF
bnVtQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqRW51bUF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakVudW1B
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpFbnVtQXR0clNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW51bUF0dHIiKTsK
IH0KQEAgLTI3NTUsNyArMjc1Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpC
eXRlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEJ5dGU+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwuYnl0ZUF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQnl0ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpCeXRlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQnl0ZUF0dHJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJieXRlQXR0ciIpOwogfQpAQCAtMjc3Myw3ICsyNzc0LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakJ5dGVBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rl
c3RPYmpCeXRlQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQnl0ZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iakJ5dGVBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCBlbmNvZGVkVmFsdWUsICJieXRlQXR0ciIpOwogfQpAQCAtMjc4Niw3ICsyNzg3LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak9jdGV0QXR0ckdldHRlcihKU0dsb2JhbE9iamVj
dCYgbGV4aWNhbEdsb2JhbE9iamUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMT2N0ZXQ+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwub2N0
ZXRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9jdGV0QXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak9j
dGV0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqT2N0ZXRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JC
ZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAib2N0ZXRB
dHRyIik7CiB9CkBAIC0yODA0LDcgKzI4MDUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNU
ZXN0T2JqT2N0ZXRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak9jdGV0QXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0
T2JqT2N0ZXRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpPY3RldEF0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm9j
dGV0QXR0ciIpOwogfQpAQCAtMjgxNyw3ICsyODE4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialNob3J0QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMU2hvcnQ+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc2hvcnRBdHRyKCkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialNob3J0QXR0cihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2hvcnRBdHRyIik7CiB9CkBAIC0yODM1
LDcgKzI4MzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU2hvcnRBdHRyU2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdE9ialNob3J0QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqU2hvcnRBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTaG9ydEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInNob3J0QXR0ciIpOwogfQpAQCAt
Mjg0OCw3ICsyODQ5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNsYW1wZWRT
aG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQ2xhbXBBZGFwdG9yPElETFNob3J0Pj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jbGFtcGVkU2hvcnRBdHRyKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNsYW1wZWRTaG9ydEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDbGFtcGVk
U2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiY2xhbXBlZFNob3J0QXR0ciIpOwogfQpAQCAtMjg2Niw3ICsyODY3LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIHNldEpTVGVzdE9iakNsYW1wZWRTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpD
bGFtcGVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpDbGFtcGVkU2hvcnRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjbGFtcGVkU2hvcnRBdHRyIik7CiB9
CkBAIC0yODc5LDcgKzI4ODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqRW5m
b3JjZVJhbmdlU2hvcnRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElE
TFNob3J0Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5lbmZvcmNlUmFu
Z2VTaG9ydEF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW5mb3JjZVJh
bmdlU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpFbmZv
cmNlUmFuZ2VTaG9ydEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJlbmZvcmNlUmFuZ2VTaG9ydEF0dHIi
KTsKIH0KQEAgLTI4OTcsNyArMjg5OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqRW5mb3JjZVJhbmdlU2hvcnRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpFbmZvcmNlUmFuZ2VTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9iakVuZm9yY2VSYW5nZVNob3J0QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5mb3JjZVJhbmdlU2hvcnRBdHRyIik7CiB9
CkBAIC0yOTEwLDcgKzI5MTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqVW5z
aWduZWRTaG9ydEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExVbnNpZ25lZFNob3J0PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuc2lnbmVkU2hvcnRBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVW5zaWduZWRT
aG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAidW5zaWduZWRTaG9ydEF0dHIiKTsKIH0KQEAgLTI5MjgsNyArMjkyOSw3IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2Jq
VW5zaWduZWRTaG9ydEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9v
bCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OnNldDxzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0clNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidW5zaWduZWRTaG9ydEF0dHIi
KTsKIH0KQEAgLTI5NDEsNyArMjk0Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpMb25nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubG9uZ0F0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTG9uZ0F0
dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJsb25nQXR0ciIpOwogfQpAQCAtMjk1OSw3ICsyOTYwLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakxvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9iakxvbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJsb25nQXR0ciIpOwogfQpAQCAtMjk3Miw3ICsyOTczLDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakxvbmdMb25nQXR0ckdldHRlcihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTG9uZ0xvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwubG9uZ0xvbmdBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdM
b25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakxvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTG9uZ0xvbmdBdHRyR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAibG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0yOTkwLDcgKzI5OTEsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9iakxvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxvbmdMb25nQXR0ciIpOwogfQpAQCAtMzAwMyw3
ICszMDA0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xv
bmdBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4obGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25nQXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0ckdldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgInVuc2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zMDIxLDcgKzMwMjIsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpT
VGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHJT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVu
c2lnbmVkTG9uZ0xvbmdBdHRyIik7CiB9CkBAIC0zMDM0LDcgKzMwMzUsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iagogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc3RyaW5n
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqU3Ry
aW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9y
QmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInN0cmlu
Z0F0dHIiKTsKIH0KQEAgLTMwNTIsNyArMzA1Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2Jq
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5n
QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVl
LCAic3RyaW5nQXR0ciIpOwogfQpAQCAtMzA2NSw3ICszMDY2LDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialVzdnN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVVNW
U3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVzdnN0cmluZ0F0
dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVz
dnN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVzdnN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRo
aXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
ICJ1c3ZzdHJpbmdBdHRyIik7CiB9CkBAIC0zMDgzLDcgKzMwODQsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialVzdnN0
cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNl
dEpTVGVzdE9ialVzdnN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgInVzdnN0cmluZ0F0dHIiKTsKIH0KQEAgLTMwOTYsNyArMzA5
Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRo
cm93U2NvcGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVj
dCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVzdE9iakF0
dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpUZXN0
T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVzdE9iakF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJv
ckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0
T2JqQXR0ciIpOwogfQpAQCAtMzExNCw3ICszMTE1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialRlc3RPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2IKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqVGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialRl
c3RPYmpBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJ0ZXN0T2JqQXR0ciIpOwogfQpAQCAtMzEyNyw3ICszMTI4LDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9ialRlc3ROdWxsYWJsZU9iakF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPFRlc3RPYmo+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
KnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVzdE51bGxhYmxl
T2JqQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0TnVsbGFibGVP
YmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVzdE51bGxhYmxl
T2JqQXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInRlc3ROdWxsYWJsZU9iakF0dHIiKTsKIH0KQEAgLTMx
NDUsNyArMzE0Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpUZXN0TnVsbGFi
bGVPYmpBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVGVzdE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqVGVz
dE51bGxhYmxlT2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqVGVzdE51
bGxhYmxlT2JqQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAidGVzdE51bGxhYmxlT2JqQXR0ciIpOwogfQpAQCAtMzE1OCw3ICszMTU5LDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0ckdldHRl
cihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5sZW5pZW50VGVzdE9i
akF0dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0
dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpSZXR1cm5FYXJseT4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImxlbmllbnRUZXN0T2JqQXR0ciIpOwogfQpAQCAtMzE3
Niw3ICszMTc3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakxlbmllbnRUZXN0
T2JqQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEcKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakxlbmll
bnRUZXN0T2JqQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTGVuaWVudFRl
c3RPYmpBdHRyU2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImxlbmllbnRUZXN0
T2JqQXR0ciIpOwogfQpAQCAtMzE4OSw3ICszMTkwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVl
IGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5n
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnVuZm9yZ2VhYmxlQXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbmZvcmdlYWJsZUF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpVbmZv
cmdlYWJsZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialVuZm9yZ2VhYmxlQXR0ckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInVuZm9yZ2VhYmxlQXR0ciIpOwogfQpAQCAtMzIwMiw3ICszMjAzLDcgQEAgc3RhdGljIGlu
bGluZSBKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
R2V0dGVyKEpTR2xvYmEKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8
SURMTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdBZGFwdG9yPElETERPTVN0cmluZz4+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuc3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmcoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0clRy
ZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0
cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwog
fQpAQCAtMzIyMCw3ICszMjIxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0
cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyKEpTR2xvYmEKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNF
bXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmco
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRy
aWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAt
MzIzMyw3ICszMjM0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialVzdnN0cmlu
Z0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nR2V0dGVyKEpTR2wKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdBZGFw
dG9yPElETFVTVlN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
dXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmco
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2Jq
VXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmdHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1
c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAtMzI1MSw3ICsz
MjUyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVh
dGluZ051bGxBc0VtcHR5U3RyaW5nU2V0dGVyKEpTR2wKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqVXN2c3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialVzdnN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJ1c3ZzdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAtMzI2
NCw3ICszMjY1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakJ5dGVTdHJpbmdB
dHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlcihKU0cKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmdBZGFwdG9y
PElETEJ5dGVTdHJpbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmJ5
dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZygpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmco
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
akJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0dldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyIpOwogfQpAQCAtMzI4Miw3
ICszMjgzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRy
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ1NldHRlcihKU0cKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RPYmpCeXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdE9iakJ5dGVTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQnl0ZVN0cmluZ0F0dHJUcmVhdGluZ051bGxB
c0VtcHR5U3RyaW5nU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJieXRlU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0K
QEAgLTMyOTUsNyArMzI5Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpTdHJp
bmdMb25nUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFJlY29yZDxJRExET01TdHJpbmcsIElE
TExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5zdHJpbmdMb25nUmVjb3JkQXR0cigpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ0xvbmdSZWNvcmRB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0ckdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
InN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0zMzEzLDcgKzMzMTQsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9i
alN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdMb25nUmVjb3JkQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXI+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ0xv
bmdSZWNvcmRBdHRyIik7CiB9CkBAIC0zMzI2LDcgKzMzMjcsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExSZWNv
cmQ8SURMVVNWU3RyaW5nLCBJRExMb25nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmpl
Y3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudXN2c3RyaW5nTG9uZ1JlY29yZEF0
dHIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29y
ZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0ciIp
OwogfQpAQCAtMzM0NCw3ICszMzQ1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
alVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ1c3ZzdHJpbmdMb25nUmVjb3JkQXR0
ciIpOwogfQpAQCAtMzM1Nyw3ICszMzU4LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3JkPElETEJ5dGVT
dHJpbmcsIElETExvbmc+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC51c3ZzdHJpbmdMb25nUmVjb3JkQXR0cigpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialVz
dnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpVc3ZzdHJpbmdMb25nUmVjb3Jk
QXR0ckdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBAIC0z
Mzc1LDcgKzMzNzYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqVXN2c3RyaW5n
TG9uZ1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIHNldEpTVGVzdE9ialVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpVc3ZzdHJpbmdMb25nUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqVXN2c3RyaW5nTG9uZ1JlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInVzdnN0cmluZ0xvbmdSZWNvcmRBdHRyIik7CiB9CkBA
IC0zMzg4LDcgKzMzODksNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqU3RyaW5n
T2JqUmVjb3JkQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExSZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExJ
bnRlcmZhY2U8VGVzdE9iaj4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdPYmpSZWNvcmRBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdP
YmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAic3RyaW5nT2JqUmVjb3JkQXR0ciIpOwogfQpAQCAtMzQwNiw3ICszNDA3LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmluZ09ialJlY29yZEF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdPYmpSZWNvcmRBdHRyU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJp
bmdPYmpSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDE5LDcgKzM0MjAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyR2V0dGVyKEpTR2xv
YmFsT2JqZWN0JgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExS
ZWNvcmQ8SURMRE9NU3RyaW5nLCBJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8VGVzdE9iaj4+Pj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2Nv
cGUsIGltcGwuc3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmluZ051bGxh
YmxlT2JqUmVjb3JkQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyIik7CiB9CkBA
IC0zNDM3LDcgKzM0MzgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyaW5n
TnVsbGFibGVPYmpSZWNvcmRBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmluZ051bGxhYmxlT2JqUmVjb3JkQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqU3RyaW5nTnVsbGFibGVPYmpSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpTdHJpbmdOdWxsYWJsZU9ialJlY29yZEF0dHJTZXR0ZXI+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmluZ051bGxhYmxlT2Jq
UmVjb3JkQXR0ciIpOwogfQpAQCAtMzQ1MCw3ICszNDUxLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUmVjb3Jk
PElETERPTVN0cmluZywgSURMQ2FsbGJhY2tGdW5jdGlvbjxKU1ZvaWRDYWxsYmFjaz4+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5zdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialN0cmluZ1ZvaWRDYWxsYmFja1JlY29yZEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpTdHJpbmdWb2lkQ2Fs
bGJhY2tSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5nVm9pZENhbGxiYWNrUmVjb3JkQXR0ciIpOwogfQpA
QCAtMzQ2OCw3ICszNDY5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialN0cmlu
Z1ZvaWRDYWxsYmFja1JlY29yZEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpTdHJpbmdWb2lkQ2FsbGJhY2tSZWNvcmRBdHRyU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdWb2lkQ2Fs
bGJhY2tSZWNvcmRBdHRyIik7CiB9CkBAIC0zNDgxLDcgKzM0ODIsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqRGljdGlvbmFyeUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExE
aWN0aW9uYXJ5PFRlc3RPYmo6OkRpY3Rpb25hcnk+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhp
c09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5kaWN0aW9uYXJ5QXR0cigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakRpY3Rp
b25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpEaWN0aW9uYXJ5QXR0ckdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImRpY3Rpb25hcnlBdHRyIik7CiB9CkBAIC0zNDk5LDcgKzM1MDAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgc2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakRpY3Rp
b25hcnlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8
c2V0SlNUZXN0T2JqRGljdGlvbmFyeUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImRpY3Rpb25hcnlBdHRyIik7CiB9CkBAIC0zNTEyLDcg
KzM1MTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEaWN0aW9u
YXJ5QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExEaWN0aW9uYXJ5PFRlc3RPYmo6OkRp
Y3Rpb25hcnk+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0
KCksIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVEaWN0aW9uYXJ5QXR0cigpKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVE
aWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0ckdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgIm51bGxhYmxlRGljdGlvbmFyeUF0dHIiKTsKIH0KQEAgLTM1MzAsNyArMzUz
MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZURpY3Rpb25hcnlB
dHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0T2JqTnVsbGFibGVEaWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTnVsbGFibGVE
aWN0aW9uYXJ5QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVE
aWN0aW9uYXJ5QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAibnVsbGFibGVEaWN0aW9uYXJ5QXR0ciIpOwogfQpAQCAtMzU0Myw3ICszNTQ0
LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakFubm90YXRlZFR5cGVJblVuaW9u
QXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgKHRvSlM8SURMVW5pb248SURMRE9NU3RyaW5nLCBJRExDbGFtcEFkYXB0b3I8SURM
TG9uZz4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwg
dGhyb3dTY29wZSwgaW1wbC5hbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoKSkpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQW5ub3RhdGVk
VHlwZUluVW5pb25BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJhbm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIiKTsKIH0KQEAgLTM1NjEs
NyArMzU2Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBl
SW5VbmlvbkF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxlCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluVW5pb25BdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpB
bm5vdGF0ZWRUeXBlSW5VbmlvbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9i
akFubm90YXRlZFR5cGVJblVuaW9uQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW5ub3RhdGVkVHlwZUluVW5pb25BdHRyIik7CiB9CkBA
IC0zNTc0LDcgKzM1NzUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQW5ub3Rh
dGVkVHlwZUluU2VxdWVuY2VBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExTZXF1ZW5jZTxJRExDbGFtcEFkYXB0b3I8
SURMTG9uZz4+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3Qo
KSwgdGhyb3dTY29wZSwgaW1wbC5hbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2Jq
QW5ub3RhdGVkVHlwZUluU2VxdWVuY2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpBbm5vdGF0ZWRUeXBl
SW5TZXF1ZW5jZUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0
dHIiKTsKIH0KQEAgLTM1OTIsNyArMzU5Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rl
c3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqQW5ub3RhdGVkVHlwZUluU2Vx
dWVuY2VBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpBbm5vdGF0ZWRUeXBlSW5TZXF1ZW5jZUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakFubm90YXRlZFR5cGVJblNlcXVlbmNlQXR0clNldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYW5ub3Rh
dGVkVHlwZUluU2VxdWVuY2VBdHRyIik7CiB9CkBAIC0zNjA1LDcgKzM2MDYsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExFbnVtZXJhdGlvbjxBbHRlcm5hdGVFbnVtTmFtZT4+KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIGltcGwuaW1wbGVtZW50YXRpb25FbnVtQXR0cigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqSW1wbGVtZW50YXRp
b25FbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0ckdldHRlciwg
Q2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
aXNWYWx1ZSwgImltcGxlbWVudGF0aW9uRW51bUF0dHIiKTsKIH0KQEAgLTM2MjYsNyArMzYyNyw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpJbXBsZW1lbnRhdGlvbkVudW1BdHRy
U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T2JqSW1wbGVtZW50YXRpb25FbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqSW1wbGVtZW50YXRp
b25FbnVtQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqSW1wbGVtZW50YXRp
b25FbnVtQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2Rl
ZFZhbHVlLCAiaW1wbGVtZW50YXRpb25FbnVtQXR0ciIpOwogfQpAQCAtMzYzOSw3ICszNjQwLDcg
QEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak1lZGlhRGV2aWNlc0dldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPE1lZGlhRGV2aWNlcz4+KGxleGljYWxHbG9iYWxPYmpl
Y3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLm1lZGlhRGV2
aWNlcygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNZWRpYURldmljZXMoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpN
ZWRpYURldmljZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak1lZGlhRGV2aWNlc0dldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im1lZGlhRGV2aWNlcyIpOwogfQpAQCAtMzY1Miw3ICszNjUzLDcgQEAgc3RhdGljIGlubGluZSBK
U1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50
ZXJmYWNlPFRlc3RPYmo+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC54bWxPYmpBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpY
TUxPYmpBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiWE1MT2JqQXR0ciIpOwogfQpAQCAtMzY3MCw3ICsz
NjcxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialhNTE9iakF0dHJTZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmoKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpT
VGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJYTUxPYmpBdHRyIik7CiB9CkBAIC0z
NjgzLDcgKzM2ODQsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlR2V0
dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExCb29sZWFuPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmlzQ3JlYXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNyZWF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIGpzVGVzdE9iakNyZWF0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ3JlYXRlR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiY3JlYXRlIik7CiB9CkBAIC0zNzAxLDcgKzM3MDIsNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqQ3JlYXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNyZWF0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0T2JqQ3JlYXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDcmVhdGVT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNy
ZWF0ZSIpOwogfQpAQCAtMzcxNCw3ICszNzE1LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRzdHJpbmdhdHRyQXR0cikp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpS
ZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0
dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwogfQpAQCAtMzczMiw3ICszNzMz
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdB
dHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUs
ICJyZWZsZWN0ZWRTdHJpbmdBdHRyIik7CiB9CkBAIC0zNzQ1LDcgKzM3NDYsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0ckdldHRlcihKU0ds
b2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExVU1ZTdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuYXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3Rl
ZHVzdnN0cmluZ2F0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkVVNWU3RyaW5nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVU1ZT
dHJpbmdBdHRyIik7CiB9CkBAIC0zNzYzLDcgKzM3NjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkVVNWU3RyaW5nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bGV4aQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVT
VlN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0
T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlN0cmluZ0F0dHJTZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInJlZmxlY3RlZFVTVlN0
cmluZ0F0dHIiKTsKIH0KQEAgLTM3NzYsNyArMzc3Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1
ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZ2V0SW50ZWdyYWxBdHRyaWJ1dGUo
V2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWRpbnRlZ3JhbGF0dHJBdHRyKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUmVmbGVjdGVk
SW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJHZXR0ZXIs
IENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzVmFsdWUsICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiKTsKIH0KQEAgLTM3OTQsNyArMzc5NSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHJT
ZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRl
Z3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVn
cmFsQXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIik7CiB9CkBAIC0zODA3LDcgKzM4MDgsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0
dHJHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExVbnNpZ25lZExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IHN0ZDo6bWF4KDAsIGltcGwuZ2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
OjpyZWZsZWN0ZWR1bnNpZ25lZGludGVncmFsYXR0ckF0dHIpKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRV
bnNpZ25lZEludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciIp
OwogfQpAQCAtMzgyNSw3ICszODI2LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
alJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZs
ZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciIpOwogfQpAQCAtMzgzOCw3ICszODM5LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMQm9vbGVhbj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5o
YXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVm
bGVjdGVkYm9vbGVhbmF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpB
c3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRCb29sZWFu
QXR0ciIpOwogfQpAQCAtMzg1Niw3ICszODU3LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2EK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFu
QXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0
PHNldEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRCb29sZWFuQXR0ciIpOwog
fQpAQCAtMzg2OSw3ICszODcwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZFVSTEF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRyKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
alJlZmxlY3RlZFVSTEF0dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZWZsZWN0ZWRVUkxBdHRyIik7CiB9
CkBAIC0zODg3LDcgKzM4ODgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkVVJMQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alJlZmxlY3RlZFVSTEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxl
Y3RlZFVSTEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInJlZmxlY3RlZFVSTEF0dHIiKTsKIH0KQEAgLTM5MDAsNyArMzkwMSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
ICh0b0pTPElETFVTVlN0cmluZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1w
bC5nZXRVUkxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpyZWZsZWN0ZWR1c3Z1cmxhdHRy
QXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVTVlVSTEF0
dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxB
dHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkVVNWVVJMQXR0ciIpOwogfQpAQCAtMzkxOCw3
ICszOTE5LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZFVTVlVS
TEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVU1ZVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVU1ZVUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
U1ZVUkxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVk
VmFsdWUsICJyZWZsZWN0ZWRVU1ZVUkxBdHRyIik7CiB9CkBAIC0zOTMxLDcgKzM5MzIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0ckdldHRlcihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmN1
c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkU3RyaW5n
QXR0ciIpOwogfQpAQCAtMzk0OSw3ICszOTUwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWwK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdB
dHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRTdHJpbmdBdHRyIik7CiB9CkBA
IC0zOTYyLDcgKzM5NjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tSW50ZWdyYWxBdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmdldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1l
czo6Y3VzdG9tQ29udGVudEludGVncmFsQXR0ckF0dHIpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21J
bnRlZ3JhbEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ciIpOwogfQpAQCAtMzk4
MCw3ICszOTgxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1
c3RvbUludGVncmFsQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21JbnRlZ3Jh
bEF0dHIiKTsKIH0KQEAgLTM5OTMsNyArMzk5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMQm9vbGVhbj4obGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5oYXNBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y3VzdG9tQ29udGVudEJvb2xlYW5BdHRy
QXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJv
b2xlYW5BdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQ3VzdG9t
Qm9vbGVhbkF0dHIiKTsKIH0KQEAgLTQwMTEsNyArNDAxMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0clNldHRlcihKU0dsb2JhbE9i
amVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRy
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJy
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ciIpOwogfQpAQCAtNDAyNCw3ICs0MDI1LDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHJHZXR0ZXIo
SlNHbG9iYWxPYmplY3QmIGxleGkKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LmdldFVSTEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmN1c3RvbUNvbnRlbnRVUkxBdHRy
QXR0cikpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVS
TEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21VUkxBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIpOwog
fQpAQCAtNDA0Miw3ICs0MDQzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJyZWZsZWN0ZWRDdXN0b21VUkxBdHRyIik7CiB9
CkBAIC00MDU2LDcgKzQwNTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqRW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSgpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqRW5hYmxlZEF0UnVu
dGltZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUi
KTsKIH0KQEAgLTQwNzcsNyArNDA3OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RP
YmpFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiZW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDA5Miw3ICs0MDkzLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpY0dl
dHRlcigKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBUZXN0T2JqOjplbmFibGVkQXRS
dW50aW1lQXR0cmlidXRlU3RhdGljKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbnN0cnVjdG9y
RW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXRTdGF0aWM8anNUZXN0T2JqQ29u
c3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpYyIp
OwogfQpAQCAtNDExMiw3ICs0MTEzLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
akNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZVN0YXRpY1NldHRlcigKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvckVuYWJsZWRBdFJ1
bnRpbWVBdHRyaWJ1dGVTdGF0aWMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yRW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZVN0YXRpYyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXRTdGF0aWM8c2V0SlNUZXN0T2Jq
Q29uc3RydWN0b3JFbmFibGVkQXRSdW50aW1lQXR0cmlidXRlU3RhdGljU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlU3RhdGljIik7CiB9CkBAIC00MTI3LDcgKzQxMjgsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExG
bG9hdDMyQXJyYXk+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVj
dCgpLCB0aHJvd1Njb3BlLCBpbXBsLnR5cGVkQXJyYXlBdHRyKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpz
VGVzdE9ialR5cGVkQXJyYXlBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidHlwZWRBcnJheUF0dHIiKTsK
IH0KQEAgLTQxNDUsNyArNDE0Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpU
eXBlZEFycmF5QXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alR5cGVkQXJyYXlBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpUeXBlZEFy
cmF5QXR0clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAidHlwZWRBcnJheUF0dHIiKTsKIH0KQEAgLTQxNTYsNyArNDE1Nyw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIHRoaXNPYmplY3QuY3VzdG9tQXR0cihsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akN1c3RvbUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1
dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakN1c3RvbUF0dHJHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJj
dXN0b21BdHRyIik7CiB9CkBAIC00MTY4LDcgKzQxNjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
c2V0SlNUZXN0T2JqQ3VzdG9tQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iagogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakN1c3RvbUF0dHIo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTVGVzdE9iakN1c3RvbUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakN1
c3RvbUF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgImN1c3RvbUF0dHIiKTsKIH0KQEAgLTQxNzksNyArNDE4MCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvb0dldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwKICAgICByZXR1cm4gZXZlbnRIYW5kbGVyQXR0cmlidXRlKHRoaXNPYmplY3Qu
d3JhcHBlZCgpLCBldmVudE5hbWVzKCkuZm9vRXZlbnQsIHdvcmxkRm9yRE9NT2JqZWN0KHRoaXNP
YmplY3QpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT25mb28oSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPbmZvbyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqT25mb29HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJvbmZvbyIpOwogfQpAQCAtNDE5NCw3
ICs0MTk1LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9uZm9vU2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdE9iak9uZm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpPbmZvbyhKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqT25mb29TZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlz
VmFsdWUsIGVuY29kZWRWYWx1ZSwgIm9uZm9vIik7CiB9CkBAIC00MjA1LDcgKzQyMDYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqT253ZWJraXRmb29HZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYgogICAgIHJldHVybiBldmVudEhhbmRsZXJBdHRyaWJ1dGUo
dGhpc09iamVjdC53cmFwcGVkKCksIGV2ZW50TmFtZXMoKS5mb29FdmVudCwgd29ybGRGb3JET01P
YmplY3QodGhpc09iamVjdCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbndlYmtp
dGZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iak9ud2Via2l0Zm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpPbndlYmtpdGZvb0dldHRlciwgQ2Fz
dGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNW
YWx1ZSwgIm9ud2Via2l0Zm9vIik7CiB9CkBAIC00MjIwLDcgKzQyMjEsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgc2V0SlNUZXN0T2JqT253ZWJraXRmb29TZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak9u
d2Via2l0Zm9vKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpPbndlYmtpdGZvbyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0
SlNUZXN0T2JqT253ZWJraXRmb29TZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsIGVuY29kZWRWYWx1ZSwgIm9ud2Via2l0Zm9vIik7CiB9CkBAIC00MjMzLDcgKzQyMzQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqV2l0aEV4ZWNTdGF0ZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBs
LndpdGhFeGVjU3RhdGVBdHRyaWJ1dGUoKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhF
eGVjU3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RP
YmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0aEV4ZWNTdGF0ZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNDI1MSw3ICs0MjUyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialdpdGhFeGVjU3RhdGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxl
eGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OnNldDxzZXRKU1Rlc3RPYmpXaXRoRXhlY1N0YXRlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJ3aXRoRXhlY1N0YXRlQXR0
cmlidXRlIik7CiB9CkBAIC00MjY0LDcgKzQyNjUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUg
anNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVHZXR0ZXIoSlNH
bAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLndpdGhDYWxsV2l0aEFuZFNldHRlckNh
bGxXaXRoQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2Jh
bE9iamVjdCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhB
bmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRo
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0
dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIndpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0
cmlidXRlIik7CiB9CkBAIC00MjgyLDcgKzQyODMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVTZXR0ZXIoSlNH
bAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFu
ZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJD
YWxsV2l0aEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqV2l0aENh
bGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIndpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxX
aXRoQXR0cmlidXRlIik7CiB9CkBAIC00Mjk4LDcgKzQyOTksNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVHZXR0ZXIo
SlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExJbnRl
cmZhY2U8VGVzdE9iaj4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9i
amVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlKCpjb250ZXh0KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIp
OwogfQpAQCAtNDMxOSw3ICs0MzIwLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlU2V0dGVyKEpTR2xvYmEKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJ
VF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBl
bmNvZGVkVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIpOwogfQpA
QCAtNDMzNSw3ICs0MzM2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlR2UKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMSW50ZXJmYWNlPFRlc3RPYmo+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC53aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZSgqanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oJmxleGljYWxHbG9iYWxPYmplY3QpLCAqY2FsbEZyYW1l
LCAqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAid2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQz
NTYsNyArNDM1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZVNlCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVj
U3RhdGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRFeGVjU3RhdGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzNzIsNyArNDM3Myw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRo
aXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKCpqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPigmbGV4aWNhbEdsb2JhbE9iamVjdCksICpjYWxsRnJhbWUsICpjb250ZXh0
KSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdp
dGhTcGFjZXNBdHRyaWJ1dGUiKTsKIH0KQEAgLTQzOTMsNyArNDM5NCw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0
ZVdpdGhTcGFjZXNBCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZVdpdGhTcGFjZXNB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZVNldHRlcj4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAid2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlIik7CiB9CkBAIC00NDA3
LDcgKzQ0MDgsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5EX1JF
VFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsQXR0cjEoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjFHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRpb25hbEF0dHIxIik7
CiB9CkBAIC00NDI4LDcgKzQ0MjksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJl
dHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjEoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjFTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjEiKTsKIH0KQEAgLTQ0NDQsNyArNDQ0NSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwu
Y29uZGl0aW9uYWxBdHRyMigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNvbmRpdGlvbmFsQXR0cjIiKTsKIH0KQEAgLTQ0NjUs
NyArNDQ2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIyU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
MlNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyMiIpOwogfQpAQCAtNDQ4MSw3ICs0NDgyLDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNHZXR0ZXIoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
TG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5jb25kaXRpb25hbEF0
dHIzKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyMyIpOwogfQpAQCAtNDUwMiw3ICs0NTAzLDcgQEAg
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjNTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzU2V0dGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0
dHIzIik7CiB9CkBAIC00NTE2LDcgKzQ1MTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0Jgog
ICAgIHJldHVybiBKU1Rlc3RPYmplY3RBOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0
cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9u
YWxBdHRyNCIpOwogfQpAQCAtNDUzMSw3ICs0NTMyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVj
dCYKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxBdHRy
NCIpLCBzdHJsZW4oImNvbmRpdGlvbmFsQXR0cjQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRK
U1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNENvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0dHI0Iik7CiB9CkBAIC00NTQ1LDcgKzQ1
NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNv
bnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqZWN0JgogICAgIHJldHVybiBKU1Rlc3RPYmplY3RC
OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09i
amVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpn
ZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY29uZGl0aW9uYWxBdHRyNSIpOwogfQpAQCAtNDU2MCw3
ICs0NTYxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjVDb25zdHJ1Y3RvclNldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdGhpc09iamVj
dC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiY29uZGl0aW9uYWxBdHRyNSIpLCBzdHJsZW4oImNvbmRpdGlvbmFs
QXR0cjUiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yU2V0
dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25k
aXRpb25hbEF0dHI1Iik7CiB9CkBAIC00NTc0LDcgKzQ1NzUsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JgogICAgIHJldHVybiBKU1Rlc3RPYmplY3RDOjpnZXRDb25zdHJ1Y3RvcihKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNkNvbnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
Y29uZGl0aW9uYWxBdHRyNiIpOwogfQpAQCAtNDU4OSw3ICs0NTkwLDcgQEAgc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvclNldHRlcihKU0ds
b2JhbE9iamVjdCYKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZp
ZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY29uZGl0
aW9uYWxBdHRyNiIpLCBzdHJsZW4oImNvbmRpdGlvbmFsQXR0cjYiKSksIHZhbHVlKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJjb25kaXRpb25hbEF0dHI2Iik7CiB9CkBAIC00
NjA5LDcgKzQ2MTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0
cmlidXRlMUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxR2V0dGVyLCBDYXN0
ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCAiY2FjaGVkQXR0cmlidXRlMSIpOwogfQpAQCAtNDYyNyw3ICs0NjI4LDcgQEAgc3RhdGlj
IGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTJHZXR0ZXIoSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqQ2FjaGVkQXR0cmlidXRlMkdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImNhY2hlZEF0dHJpYnV0ZTIi
KTsKIH0KQEAgLTQ2NDYsNyArNDY0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpDYWNoZWRBdHRyaWJ1dGUzR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmli
dXRlMyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakNhY2hlZEF0dHJpYnV0ZTMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTNH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJjYWNoZWRBdHRyaWJ1dGUzIik7CiB9CkBAIC00NjYxLDcgKzQ2NjIs
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwuYW55QXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iakFueUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQW55QXR0cmlidXRlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiYW55QXR0cmlidXRlIik7CiB9CkBAIC00Njc5LDcgKzQ2ODAsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVz
dE9iakFueUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46
OnNldDxzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImFueUF0dHJpYnV0ZSIpOwogfQpAQCAtNDY5Miw3
ICs0NjkzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak9iamVjdEF0dHJpYnV0
ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICBSRUxFQVNFX0FORF9SRVRV
Uk4odGhyb3dTY29wZSwgKHRvSlM8SURMT2JqZWN0PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLm9iamVjdEF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9i
ak9iamVjdEF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIm9iamVjdEF0dHJpYnV0ZSIpOwogfQpA
QCAtNDcxMCw3ICs0NzExLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak9iamVj
dEF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2IKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpPYmplY3RBdHRyaWJ1dGUoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak9i
amVjdEF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqT2JqZWN0QXR0
cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFs
dWUsICJvYmplY3RBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ3MjMsNyArNDcyNCw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnRHZXR0ZXIoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pT
PElETEludGVyZmFjZTxEb2N1bWVudD4+KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzT2JqZWN0
Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBCaW5kaW5nU2VjdXJpdHk6OmNoZWNrU2VjdXJp
dHlGb3JOb2RlKGxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuY29udGVudERvY3VtZW50KCkpKSkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpDb250ZW50
RG9jdW1lbnQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbnRlbnREb2N1bWVudEdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
ImNvbnRlbnREb2N1bWVudCIpOwogfQpAQCAtNDczNiw3ICs0NzM3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE8KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURM
SW50ZXJmYWNlPFNWR1BvaW50Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xv
YmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwubXV0YWJsZVBvaW50KCkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak11dGFibGVQb2ludChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8
anNUZXN0T2JqTXV0YWJsZVBvaW50R2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNz
ZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibXV0YWJsZVBvaW50Iik7CiB9
CkBAIC00NzU0LDcgKzQ3NTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTXV0
YWJsZVBvaW50U2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsTwogICAgIHJldHVy
biB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9iak11dGFibGVQb2ludChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T2JqTXV0
YWJsZVBvaW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1
cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnRT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm11
dGFibGVQb2ludCIpOwogfQpAQCAtNDc2Nyw3ICs0NzY4LDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialN0cmF3YmVycnlHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5ibHVlYmVycnkoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialN0cmF3YmVycnkoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0
PGpzVGVzdE9ialN0cmF3YmVycnlHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3Nl
cnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJzdHJhd2JlcnJ5Iik7CiB9CkBA
IC00Nzg1LDcgKzQ3ODYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqU3RyYXdi
ZXJyeVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIHNldEpTVGVzdE9ialN0cmF3YmVycnkoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9ialN0cmF3YmVy
cnkoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9ialN0cmF3YmVycnlTZXR0ZXI+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgInN0cmF3YmVycnki
KTsKIH0KQEAgLTQ3OTgsNyArNDc5OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpEZXNjcmlwdGlvbkdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuZGVzY3JpcHRpb24oKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0
T2JqRGVzY3JpcHRpb25HZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJkZXNjcmlwdGlvbiIpOwogfQpAQCAtNDgx
MSw3ICs0ODEyLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iaklkR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1QKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5pZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJZChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
aklkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dE9iaj46OmdldDxqc1Rlc3RPYmpJZEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFz
c2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImlkIik7CiB9CkBAIC00ODI5
LDcgKzQ4MzAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqSWRTZXR0ZXIoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHNldEpTVGVzdE9iaklkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpJZChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+Ojpz
ZXQ8c2V0SlNUZXN0T2JqSWRTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImlkIik7CiB9CkBAIC00ODQyLDcgKzQ4NDMsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0T2JqSGFzaEdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaGFzaCgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpIYXNoKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqSGFzaChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqSGFzaEdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgImhhc2giKTsKIH0KQEAgLTQ4NTUsNyArNDg1Niw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZUdl
dHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGlt
cGwucmVwbGFjZWFibGVBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9y
OjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJyZXBsYWNlYWJsZUF0
dHJpYnV0ZSIpOwogfQpAQCAtNDg2Nyw3ICs0ODY4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNl
dEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2EKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigicmVwbGFjZWFibGVBdHRy
aWJ1dGUiKSwgc3RybGVuKCJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwogfQogCi1i
b29sIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJs
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUmVwbGFjZWFibGVB
dHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRW
YWx1ZSwgInJlcGxhY2VhYmxlQXR0cmlidXRlIik7CiB9CkBAIC00ODgwLDcgKzQ4ODEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEb3VibGVBdHRyaWJ1dGVHZXR0
ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAodG9KUzxJRExOdWxsYWJsZTxJRExVbnJlc3RyaWN0ZWREb3VibGU+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlRG91YmxlQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVs
bGFibGVEb3VibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJ
RExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmli
dXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVEb3VibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ4
OTMsNyArNDg5NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxv
bmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETExvbmc+PihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlTG9uZ0F0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpOdWxs
YWJsZUxvbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExB
dHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlTG9uZ0F0dHJpYnV0ZSIpOwogfQpAQCAtNDkwNiw3ICs0
OTA3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMTnVsbGFibGU8SURMQm9vbGVhbj4+KGxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVCb29sZWFuQXR0cmlidXRlKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iak51
bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVCb29sZWFuQXR0cmlidXRlIik7CiB9CkBA
IC00OTE5LDcgKzQ5MjAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVTdHJpbmdBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlU3RyaW5nQXR0cmli
dXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iak51bGxhYmxl
U3RyaW5nQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAibnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUi
KTsKIH0KQEAgLTQ5MzIsNyArNDkzMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RP
YmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETExvbmc+
PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLm51bGxhYmxlTG9uZ1NldHRh
YmxlQXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6
Z2V0PGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTQ5NTAsNyArNDk1MSw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0
dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
c2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9iak51bGxh
YmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RP
YmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1
dGUiKTsKIH0KQEAgLTQ5NjMsNyArNDk2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rl
c3RPYmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETE51bGxhYmxlPElETERP
TVN0cmluZz4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwubnVsbGFibGVT
dHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpOdWxsYWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJs
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgIm51bGxhYmxlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGUiKTsKIH0K
QEAgLTQ5ODEsNyArNDk4Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpOdWxs
YWJsZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rl
c3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZVNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAibnVs
bGFibGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNDk5NCw3ICs0OTk1LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWwKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMTnVsbGFibGU8SURMVVNWU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5udWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0dGFibGVB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlz
RXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAi
bnVsbGFibGVVU1ZTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTAxMiw3ICs1MDEz
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iak51bGxhYmxlVVNWU3RyaW5nU2V0
dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYWwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RP
YmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNl
dDxzZXRKU1Rlc3RPYmpOdWxsYWJsZVVTVlN0cmluZ1NldHRhYmxlQXR0cmlidXRlU2V0dGVyPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJudWxsYWJsZVVT
VlN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MDI1LDcgKzUwMjYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRy
aWJ1dGVHZXR0ZXIoSlNHbG9iYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAo
dG9KUzxJRExOdWxsYWJsZTxJRExCeXRlU3RyaW5nPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5udWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZSgpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0
dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9O
IGpzVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rl
c3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhp
c0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwg
Im51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MDQzLDcgKzUw
NDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5n
U2V0dGFibGVBdHRyaWJ1dGVTZXR0ZXIoSlNHbG9iYQogICAgIHJldHVybiB0cnVlOwogfQogCi1i
b29sIHNldEpTVGVzdE9iak51bGxhYmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rl
c3RPYmpOdWxsYWJsZUJ5dGVTdHJpbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+
OjpzZXQ8c2V0SlNUZXN0T2JqTnVsbGFibGVCeXRlU3RyaW5nU2V0dGFibGVBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIm51bGxh
YmxlQnl0ZVN0cmluZ1NldHRhYmxlQXR0cmlidXRlIik7CiB9CkBAIC01MDU2LDcgKzUwNTcsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUs
IGltcGwuYXR0cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJp
YnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpz
VGVzdE9iakF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiYXR0cmlidXRlIik7CiB9CkBAIC01MDY5LDcgKzUwNzAsNyBAQCBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGVHZXR0ZXIoSlNHbG9i
YWxPYmplYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExFbnVt
ZXJhdGlvbjxUZXN0T2JqOjpPcHRpb25hbD4+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPYmpBdHRyaWJ1
dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJu
IElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2Vy
dmVkRW51bVR5cGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJhdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlw
ZSIpOwogfQpAQCAtNTA5MCw3ICs1MDkxLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVz
dE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2
ZWRFbnVtVHlwZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9P
UEVSQVRJT04gc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8
SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBl
U2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJh
dHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSIpOwogfQpAQCAtNTEwMyw3ICs1MTA0LDcgQEAg
c3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNlQXR0
cmlidXRlR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgKHRvSlM8SURMUHJvbWlzZTxJRExVbmRlZmluZWQ+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC50ZXN0UmVhZE9ubHlW
b2lkUHJvbWlzZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpU
ZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9ialRlc3RSZWFkT25seVZvaWRQcm9taXNl
QXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRl
PEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpUZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJlamVjdFByb21pc2U+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0UmVhZE9ubHlWb2lkUHJvbWlzZUF0dHJpYnV0
ZSIpOwogfQpAQCAtNTExNiw3ICs1MTE3LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dE9ialRlc3RSZWFkT25seVByb21pc2VBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9iYWxPYmplY3QKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExJbnRl
cmZhY2U8VGVzdE5vZGU+Pj4obGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwudGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0UmVhZE9ubHlQcm9taXNlQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqVGVzdFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqVGVz
dFJlYWRPbmx5UHJvbWlzZUF0dHJpYnV0ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6
OlJlamVjdFByb21pc2U+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ0ZXN0UmVh
ZE9ubHlQcm9taXNlQXR0cmlidXRlIik7CiB9CkBAIC01MTI5LDcgKzUxMzAsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmIGxleGljYQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExJbnRlcmZhY2U8VGVzdE5vZGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5wdXRGb3J3YXJkc0F0dHJpYnV0ZSgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9i
alB1dEZvcndhcmRzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0
ZUdldHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNWYWx1ZSwgInB1dEZvcndhcmRzQXR0cmlidXRlIik7CiB9CkBAIC01MTUyLDcg
KzUxNTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRy
aWJ1dGVTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPYmpQdXRGb3J3
YXJkc0F0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29k
ZWRWYWx1ZSwgInB1dEZvcndhcmRzQXR0cmlidXRlIik7CiB9CkBAIC01MTY1LDcgKzUxNjYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJp
YnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdAogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCAodG9KUzxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8VGVzdE5vZGU+Pj4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
cHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0
ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZUdl
dHRlciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUiKTsKIH0KQEAgLTUx
ODgsNyArNTE4OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJk
c051bGxhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8
c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAicHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZSIpOwogfQpAQCAtNTIwMSw3ICs1MjAyLDcgQEAgc3RhdGljIGlubGluZSBKU1Zh
bHVlIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2EKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVVNWU3Ry
aW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLnN0cmluZ2lmaWVyQXR0
cmlidXRlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ2lmaWVyQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9ialN0cmluZ2lmaWVy
QXR0cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKIH0KQEAg
LTUyMTksNyArNTIyMCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpTdHJpbmdp
ZmllckF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE9i
alN0cmluZ2lmaWVyQXR0cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpT
dHJpbmdpZmllckF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgZW5jb2RlZFZhbHVlLCAic3RyaW5naWZpZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyMzIsNyAr
NTIzMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhw
b3NlZFRvV2luZG93QXR0cmlidXRlR2V0dGVyKEpTR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsICh0b0pTPElETExvbmc+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIGltcGwuY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSgpKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93QXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNU
ZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBdHRyaWJ1dGUiKTsKIH0KQEAgLTUyNTAs
NyArNTI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5
RXhwb3NlZFRvV2luZG93QXR0cmlidXRlU2V0dGVyKEpTR2xvCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0
ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZShKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxK
U1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0
dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0F0dHJpYnV0ZSIpOwogfQpAQCAtNTI2
Myw3ICs1MjY0LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGVHZXR0ZXIoSlNHbG8KICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgaW1wbC5jb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKCkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9Xb3Jr
ZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9iaj46Omdl
dDxqc1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhp
c1ZhbHVlLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckF0dHJpYnV0ZSIpOwogfQpAQCAt
NTI4MSw3ICs1MjgyLDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlv
bmFsbHlFeHBvc2VkVG9Xb3JrZXJBdHRyaWJ1dGVTZXR0ZXIoSlNHbG8KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0
cmlidXRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpDb25kaXRpb25hbGx5RXhwb3NlZFRvV29y
a2VyQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNv
ZGVkVmFsdWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyQXR0cmlidXRlIik7CiB9CkBA
IC01Mjk0LDcgKzUyOTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZUdldAogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExMb25nPihsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBpbXBsLmNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJB
dHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxs
eUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2Vk
VG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6Z2V0PGpzVGVzdE9iakNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJl
aGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJjb25kaXRp
b25hbGx5RXhwb3NlZFRvV2luZG93QW5kV29ya2VyQXR0cmlidXRlIik7CiB9CkBAIC01MzEyLDcg
KzUzMTMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseUV4
cG9zZWRUb1dpbmRvd0FuZFdvcmtlckF0dHJpYnV0ZVNldAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1ib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BF
UkFUSU9OIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJB
dHRyaWJ1dGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlF
eHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJBdHRyaWJ1dGVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dBbmRXb3JrZXJBdHRyaWJ1dGUiKTsKIH0KQEAgLTUzNzUsNyArNTM3Niw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRz
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24oSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxl
ZEF0UnVudGltZU9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRW5hYmxlZEF0UnVudGltZU9w
ZXJhdGlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIik7CiB9CkBAIC01Mzk5LDcgKzU0MDAsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JG
dW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
Q29uc3RydWN0b3JGdW5jdGlvbkVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25FbmFibGVk
QXRSdW50aW1lT3BlcmF0aW9uU3RhdGljLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkVuYWJs
ZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb25TdGF0aWMiKTsKIH0KQEAgLTU0MjMs
NyArNTQyNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29yCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVu
dGltZUZlYXR1cmVFbmFibGVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVF
bmFibGVkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
ZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKTsKIH0KQEAg
LTU0NDUsNyArNTQ0Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNNZXRob2RCCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldvcmxkU3BlY2lmaWNNZXRob2QoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29ybGRT
cGVjaWZpY01ldGhvZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV29ybGRTcGVjaWZpY01ldGhvZEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid29ybGRTcGVjaWZpY01ldGhvZCIp
OwogfQpAQCAtNTQ2Miw3ICs1NDYzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0UmVzdWwKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2FsY3VsYXRlU2VjcmV0
UmVzdWx0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
blJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkNhbGN1bGF0ZVNlY3JldFJlc3VsdEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iik7CiB9CkBAIC01NDc3LDcgKzU0NzgsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25HZXRTZWNyZXRCb29sZWFuQm9keQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExCb29sZWFuPihpbXBsLmdldFNlY3JldEJvb2xl
YW4oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkdldFNlY3JldEJvb2xlYW4oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uR2V0U2VjcmV0Qm9vbGVhbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAiZ2V0U2VjcmV0Qm9vbGVhbiIpOwogfQpAQCAtNTQ5Myw3ICs1NDk0LDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVz
dEZlYXR1cmVHZXRTZWNyZXQKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNW
YWx1ZTo6ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC50ZXN0RmVhdHVyZUdldFNlY3JldEJv
b2xlYW4oKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0RmVhdHVyZUdldFNl
Y3JldEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6
Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVh
bkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdEZlYXR1cmVHZXRT
ZWNyZXRCb29sZWFuIik7CiB9CkBAIC01NTEyLDcgKzU1MTMsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRNZXRo
b2RCb2R5KAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25V
bmRlZmluZWRNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25VbmRlZmluZWRN
ZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVuZGVmaW5lZE1l
dGhvZCIpOwogfQpAQCAtNTU0MCw3ICs1NTQxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0aEEK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVW5kZWZpbmVk
TWV0aG9kV2l0aEFyZ3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVW5kZWZpbmVkTWV0aG9kV2l0aEFyZ3MsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblVu
ZGVmaW5lZE1ldGhvZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJ1bmRlZmluZWRNZXRob2RXaXRoQXJncyIpOwogfQpAQCAtNTU1NSw3ICs1NTU2LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQnl0ZU1ldGhvZEJvZHkoSlNDOjoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQnl0ZT4oaW1wbC5ieXRlTWV0aG9kKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25CeXRlTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkJ5dGVNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RCb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImJ5dGVNZXRob2QiKTsKIH0KQEAgLTU1
ODEsNyArNTU4Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkJ5dGVNZXRob2RXaXRoQXJnc0JvCiAgICAgUkVMRUFTRV9BTkRf
UkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEJ5dGU+KGltcGwuYnl0
ZU1ldGhvZFdpdGhBcmdzKFdURk1vdmUoYnl0ZUFyZyksIFdURk1vdmUoc3RyQXJnKSwgKm9iakFy
ZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3MoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQnl0ZU1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CeXRlTWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgImJ5dGVNZXRob2RXaXRoQXJncyIpOwogfQpAQCAtNTU5Niw3ICs1NTk3LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uT2N0ZXRNZXRob2RCb2R5KEpTQzoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMT2N0ZXQ+KGltcGwub2N0ZXRNZXRob2QoKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk9jdGV0TWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib2N0ZXRNZXRob2QiKTsKIH0K
QEAgLTU2MjIsNyArNTYyMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3NCCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE9jdGV0Pihp
bXBsLm9jdGV0TWV0aG9kV2l0aEFyZ3MoV1RGTW92ZShvY3RldEFyZyksIFdURk1vdmUoc3RyQXJn
KSwgKm9iakFyZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PY3RldE1ldGhvZFdpdGhBcmdzKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3Ms
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk9jdGV0TWV0aG9kV2l0aEFyZ3NCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgIm9jdGV0TWV0aG9kV2l0aEFyZ3MiKTsKIH0KQEAgLTU2Mzcs
NyArNTYzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RCb2R5KEpTQzo6CiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETExvbmc+KGltcGwubG9uZ01l
dGhvZCgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25n
TWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJsb25nTWV0aG9k
Iik7CiB9CkBAIC01NjYzLDcgKzU2NjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Mb25nTWV0aG9kV2l0aEFyZ3NCbwogICAg
IFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExM
b25nPihpbXBsLmxvbmdNZXRob2RXaXRoQXJncyhXVEZNb3ZlKGxvbmdBcmcpLCBXVEZNb3ZlKHN0
ckFyZyksICpvYmpBcmcpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkxvbmdNZXRob2RXaXRoQXJn
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTG9uZ01ldGhvZFdpdGhBcmdzQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJsb25nTWV0aG9kV2l0aEFyZ3MiKTsKIH0KQEAgLTU2Nzgs
NyArNTY3OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZEJvZHkoSlNDOjpKCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2Jq
Pj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1w
bC5vYmpNZXRob2QoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2QsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk9iak1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib2JqTWV0
aG9kIik7CiB9CkBAIC01NzA0LDcgKzU3MDUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJnc0JvZAog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIGltcGwub2JqTWV0aG9kV2l0aEFyZ3MoV1RGTW92ZShsb25nQXJnKSwg
V1RGTW92ZShzdHJBcmcpLCAqb2JqQXJnKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhvZFdpdGhBcmdzKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9iak1ldGhv
ZFdpdGhBcmdzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PYmpNZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib2JqTWV0aG9kV2l0aEFyZ3MiKTsKIH0KQEAg
LTU3MTksNyArNTcyMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2RCb2R5CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETExvbmc+KGltcGwu
dW5mb3JnZWFibGVNZXRob2QoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpJbnN0YW5jZUZ1bmN0aW9uVW5mb3JnZWFibGVNZXRob2QoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU1ldGhv
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9iakluc3RhbmNlRnVuY3Rpb25VbmZvcmdlYWJsZU1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAidW5mb3JnZWFibGVNZXRob2QiKTsKIH0KQEAgLTU3NDEsNyAr
NTc0Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEFyZ1RyZWF0aW5nTnVsbEFzRW1w
dHlTdHJpbmciKTsKIH0KQEAgLTU3NjMsNyArNTc2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5T
UmVzCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFt
ZXRlciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRl
ckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFhQYXRo
TlNSZXNvbHZlclBhcmFtZXRlciIpOwogfQpAQCAtNTc3OCw3ICs1Nzc5LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFi
bGVTdHJpbmdNZXRob2QKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxP
YmplY3QsIGltcGwubnVsbGFibGVTdHJpbmdNZXRob2QoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5n
TWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk51bGxhYmxlU3RyaW5nTWV0aG9kLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmlu
Z01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVT
dHJpbmdNZXRob2QiKTsKIH0KQEAgLTU3OTIsNyArNTc5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJp
bmdTdGF0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29k
ZSh0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBU
ZXN0T2JqOjpudWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCgpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJsZVN0
cmluZ1N0YXRpY01ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kLCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJudWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCIpOwogfQpA
QCAtNTgxMiw3ICs1ODEzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTcGVjaWEKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTnVsbGFibGU8
SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwubnVsbGFibGVTdHJpbmdT
cGVjaWFsTWV0aG9kKFdURk1vdmUoaW5kZXgpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lh
bE1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxh
YmxlU3RyaW5nU3BlY2lhbE1ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kIik7CiB9CkBAIC01ODM0LDcgKzU4MzUs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZ0JvZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZywgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhFbnVtQXJnIik7CiB9CkBAIC01ODU2LDcgKzU4NTcs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZUVudW1BcmcoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFN0
YW5kYWxvbmVFbnVtQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU3RhbmRhbG9uZUVu
dW1BcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhT
dGFuZGFsb25lRW51bUFyZyIpOwogfQpAQCAtNTg3Niw3ICs1ODc3LDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsRW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnIik7CiB9CkBA
IC01ODk2LDcgKzU4OTcsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVt
QXJnQW5kRGVmYXVsdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFs
dWVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRp
b25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUiKTsKIH0KQEAgLTU5MTksNyArNTkyMCw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFRoYXRSZXF1aXJlc0FsCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5t
ZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKFdURk1vdmUoc3RyQXJnKSwgKm9iakFy
ZykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RUaGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1
aXJlc0FsbEFyZ3NBbmRUaHJvd3MsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFRoYXRSZXF1aXJl
c0FsbEFyZ3NBbmRUaHJvd3NCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MiKTsKIH0KQEAgLTU5NDEsNyArNTk0
Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmcoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0
cmluZ0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFVTVlN0cmluZ0FyZ0JvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFVTVlN0cmluZ0FyZyIp
OwogfQpAQCAtNTk2Myw3ICs1OTY0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlVVMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxh
YmxlVVNWU3RyaW5nQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZVVTVlN0cmluZ0FyZywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlVVNWU3RyaW5nQXJnQm9keT4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoTnVsbGFibGVVU1ZTdHJpbmdBcmciKTsKIH0K
QEAgLTU5ODUsNyArNTk4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdB
cmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhVU1ZTdHJpbmdBcmdUcmVhdGluZ051
bGxBc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVVNWU3RyaW5nQXJn
VHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aFVTVlN0cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmci
KTsKIH0KQEAgLTYwMDcsNyArNjAwOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhCeXRl
U3RyaW5nQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhCeXRlU3RyaW5nQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQnl0ZVN0cmluZ0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmciKTsKIH0KQEAgLTYwMjksNyArNjAzMCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhOdWxsYWJsZUJ5CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOdWxsYWJsZUJ5dGVTdHJpbmdBcmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxl
Qnl0ZVN0cmluZ0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE51bGxhYmxlQnl0ZVN0
cmluZ0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE51bGxhYmxlQnl0ZVN0cmluZ0FyZyIpOwogfQpAQCAtNjA1MSw3ICs2MDUyLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aEJ5dGVTdHJpbmcKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhCeXRlU3RyaW5nQXJnVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEJ5dGVTdHJpbmdBcmdUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5n
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQnl0ZVN0
cmluZ0FyZ1RyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmciKTsKIH0KQEAgLTYwNzMsNyArNjA3NCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblNlcmlhbGl6ZWRWYWx1ZUJvZHkoCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TZXJpYWxpemVkVmFsdWUsIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblNlcmlhbGl6ZWRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAic2VyaWFsaXplZFZhbHVlIik7CiB9CkBAIC02MDk1LDcgKzYwOTYsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoUmVjb3JkQm9keQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoUmVjb3JkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhSZWNvcmQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhSZWNvcmRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm1ldGhvZFdpdGhSZWNvcmQiKTsKIH0KQEAgLTYxMTIsNyArNjExMyw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhFeGNlcHRpb25CCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aEV4Y2VwdGlvbiIpOwogfQpAQCAtNjEyNyw3ICs2MTI4LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEV4Y2VwdGlvblIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMTG9uZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGltcGwubWV0aG9kV2l0aEV4Y2VwdGlvblJldHVybmluZ0xvbmcoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdMb25nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5p
bmdMb25nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0dXJuaW5nTG9u
Z0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEV4Y2Vw
dGlvblJldHVybmluZ0xvbmciKTsKIH0KQEAgLTYxNDIsNyArNjE0Myw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb25SCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxUZXN0T2JqPj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
ICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5tZXRob2RXaXRo
RXhjZXB0aW9uUmV0dXJuaW5nT2JqZWN0KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0aW9uUmV0
dXJuaW5nT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3QsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmplY3RCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhFeGNlcHRpb25SZXR1cm5pbmdPYmpl
Y3QiKTsKIH0KQEAgLTYxNTYsNyArNjE1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZEJvZHkoSlNDCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2FzdGVk
VGhpcy0+Y3VzdG9tTWV0aG9kKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbkN1c3RvbU1ldGhvZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhv
ZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY3VzdG9tTWV0aG9kIik7
CiB9CkBAIC02MTcwLDcgKzYxNzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJncwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMt
PmN1c3RvbU1ldGhvZFdpdGhBcmdzKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkN1c3RvbU1ldGhvZFdpdGhBcmdzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25DdXN0b21NZXRob2RXaXRoQXJnc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiY3VzdG9tTWV0aG9kV2l0aEFyZ3MiKTsKIH0KQEAgLTYxOTAsNyArNjE5MSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblByaXZhdGVNZXRob2RCb2R5KEpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxP
YmplY3QsIGltcGwucHJpdmF0ZU1ldGhvZChXVEZNb3ZlKGFyZ3VtZW50KSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Qcml2
YXRlTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblByaXZhdGVNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblByaXZhdGVNZXRob2RCb2R5
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
KmNhbGxGcmFtZSwgInByaXZhdGVNZXRob2QiKTsKIH0KQEAgLTYyMTAsNyArNjIxMSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
blB1YmxpY0FuZFByaXZhdGVNZXRoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IGltcGwucHVibGljQW5kUHJpdmF0ZU1ldGhvZChXVEZNb3ZlKGFyZ3VtZW50KSkpKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Q
dWJsaWNBbmRQcml2YXRlTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2QsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblB1YmxpY0FuZFByaXZhdGVNZXRob2RCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInB1YmxpY0FuZFByaXZhdGVNZXRob2QiKTsKIH0KQEAgLTYyMzksNyArNjI0MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkFkZEV2ZW50TGlzdGVuZXJCb2R5CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkFkZEV2ZW50TGlzdGVuZXIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lciwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQWRkRXZlbnRMaXN0ZW5lckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAiYWRkRXZlbnRMaXN0ZW5lciIpOwogfQpAQCAtNjI2OCw3ICs2MjY5LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lckIKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uUmVtb3ZlRXZlbnRMaXN0ZW5lcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25SZW1vdmVFdmVudExpc3RlbmVyQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJyZW1vdmVFdmVudExpc3RlbmVyIik7CiB9CkBAIC02Mjg1LDcgKzYy
ODYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEJvZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIndpdGhFeGVjU3RhdGVWb2lkIik7CiB9CkBAIC02MzAwLDcgKzYz
MDEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqQm9keQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwud2l0
aEV4ZWNTdGF0ZU9iaigqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9i
amVjdCkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZU9iaihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ3aXRoRXhlY1N0YXRlT2JqIik7CiB9CkBAIC02MzE3LDcgKzYzMTgsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25X
aXRoRXhlY1N0YXRlVm9pZEV4YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlVm9pZEV4Y2Vw
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aEV4ZWNTdGF0ZVZvaWRFeGNlcHRpb25Cb2R5Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhFeGVjU3RhdGVWb2lkRXhjZXB0
aW9uIik7CiB9CkBAIC02MzMyLDcgKzYzMzMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZQog
ICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJ
RExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlv
bigqanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4obGV4aWNhbEdsb2JhbE9iamVjdCkpKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uV2l0aEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoRXhlY1N0YXRlT2JqRXhjZXB0aW9uIik7CiB9CkBA
IC02MzUyLDcgKzYzNTMsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0Iik7CiB9CkBAIC02MzcyLDcgKzYzNzMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoU2NyaXB0RXhlY3V0aW9uQwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhlY1N0YXRlIik7
CiB9CkBAIC02MzkwLDcgKzYzOTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQwogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRl
cmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRF
eGVjU3RhdGVPYmpFeGNlcHRpb24oKmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxH
bG9iYWxPYmplY3QpLCAqY2FsbEZyYW1lLCAqY29udGV4dCkpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZEV4ZWNTdGF0ZU9iakV4Y2VwdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVPYmpFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kRXhl
Y1N0YXRlT2JqRXhjZXB0aW9uIik7CiB9CkBAIC02NDA4LDcgKzY0MDksNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2Ny
aXB0RXhlY3V0aW9uQwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVl
OjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8VGVzdE9iaj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwud2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKCpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihs
ZXhpY2FsR2xvYmFsT2JqZWN0KSwgKmNhbGxGcmFtZSwgKmNvbnRleHQpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kRXhlY1N0YXRlV2l0aFNwYWNlcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRFeGVjU3RhdGVXaXRoU3BhY2VzQm9keT4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZEV4
ZWNTdGF0ZVdpdGhTcGFjZXMiKTsKIH0KQEAgLTY0MzAsNyArNjQzMSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEb2N1
bWVudEFyZ3VtZW50CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhEb2N1bWVudEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhEb2N1bWVudEFyZ3VtZW50LCAoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBy
ZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25XaXRoRG9jdW1lbnRBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAid2l0aERvY3VtZW50QXJndW1lbnQiKTsKIH0KQEAgLTY0NTAsNyArNjQ1MSw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhDYWxsZXJEb2N1bWVudEFyCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJEb2N1bWVudEFyZ3VtZW50KEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJEb2N1bWVu
dEFyZ3VtZW50LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyRG9jdW1lbnRBcmd1bWVudEJv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAid2l0aENhbGxlckRvY3VtZW50
QXJndW1lbnQiKTsKIH0KQEAgLTY0NjcsNyArNjQ2OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhDYWxsZXJXaW5kb3dB
cmd1CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhD
YWxsZXJXaW5kb3dBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25XaXRoQ2FsbGVyV2luZG93QXJndW1lbnQsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbldpdGhDYWxsZXJXaW5kb3dBcmd1bWVudEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAid2l0aENhbGxlcldpbmRvd0FyZ3VtZW50Iik7CiB9CkBAIC02NDg3LDcgKzY0
ODgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmcoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBcmdCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbEFyZyIpOwog
fQpAQCAtNjUwNyw3ICs2NTA4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXIKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
QXJnQW5kRGVmYXVsdFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFyZ0FuZERlZmF1bHRWYWx1ZSwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnQW5kRGVmYXVsdFZhbHVlQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxBcmdB
bmREZWZhdWx0VmFsdWUiKTsKIH0KQEAgLTY1MzIsNyArNjUzMyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25PcHRpb25hCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZE9wdGlvbmFsQXJnKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25h
bEFyZ0FuZE9wdGlvbmFsQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9u
YWxBcmdBbmRPcHRpb25hbEFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmciKTsKIH0KQEAgLTY1NjAs
NyArNjU2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3
b09wdGlvbmFsQXJncyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJn
c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE5vbk9w
dGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzIik7CiB9CkBAIC02NTgwLDcgKzY1ODEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTdAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3Ry
aW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdCb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFN0cmluZyIp
OwogfQpAQCAtNjYwMCw3ICs2NjAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsVVMKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsVVNWU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsVVNWU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmciKTsKIH0KQEAgLTY2MjAsNyAr
NjYyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmcoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsQXRvbVN0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsQXRvbVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0
aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZyIpOwogfQpAQCAtNjY0MCw3ICs2NjQxLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aE9wdGlvbmFsU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFN0cmluZ0FuZERlZmF1bHRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsU3RyaW5nQW5kRGVmYXVsdFZhbHVlQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdBbmREZWZhdWx0VmFsdWUi
KTsKIH0KQEAgLTY2NjAsNyArNjY2MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEF0b21TdHJpbmdBbmREZWZhdWx0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0Fu
ZERlZmF1bHRWYWx1ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0
cmluZ0FuZERlZmF1bHRWYWx1ZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0FuZERlZmF1bHRWYWx1ZSIpOwogfQpAQCAt
NjY4MCw3ICs2NjgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3QKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5n
SXNOdWxsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNOdWxsQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGwiKTsKIH0KQEAgLTY3MDAs
NyArNjcwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5k
ZWZpbmVkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzVW5kZWZpbmVkLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQi
KTsKIH0KQEAgLTY3MjAsNyArNjcyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEF0b21TdHJpbmdJc051bGwoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzTnVsbCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzTnVsbEJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0
cmluZ0lzTnVsbCIpOwogfQpAQCAtNjc0MCw3ICs2NzQxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNFbXB0eVN0cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJ
c0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJ
c0VtcHR5U3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRo
b2RXaXRoT3B0aW9uYWxTdHJpbmdJc0VtcHR5U3RyaW5nIik7CiB9CkBAIC02NzYwLDcgKzY3NjEs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVU1ZTdHJpbmdJc0VtcHR5U3Ry
aW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmcsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lzRW1wdHlTdHJpbmdCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFVTVlN0cmluZ0lz
RW1wdHlTdHJpbmciKTsKIH0KQEAgLTY3ODAsNyArNjc4MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEF0CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbEF0b21TdHJpbmdJc0VtcHR5U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEF0
b21TdHJpbmdJc0VtcHR5U3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxBdG9tU3RyaW5nSXNFbXB0eVN0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQXRvbVN0cmluZ0lzRW1wdHlTdHJpbmciKTsKIH0K
QEAgLTY4MDAsNyArNjgwMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERvCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERv
dWJsZUlzTmFOKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbERvdWJsZUlzTmFOLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxEb3VibGVJc05hTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsRG91YmxlSXNOYU4iKTsKIH0KQEAgLTY4MjAs
NyArNjgyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEZsb2F0SXNOYU4o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsRmxvYXRJc05hTkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
bWV0aG9kV2l0aE9wdGlvbmFsRmxvYXRJc05hTiIpOwogfQpAQCAtNjg0MCw3ICs2ODQxLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmcoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
TG9uZ0xvbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2Fs
bDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxM
b25nTG9uZyIpOwogfQpAQCAtNjg2MCw3ICs2ODYxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
TG8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsTG9uZ0xvbmdJc1plcm8oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTG9uZ0xvbmdJc1plcm8s
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbExvbmdMb25nSXNaZXJvQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxMb25n
TG9uZ0lzWmVybyIpOwogfQpAQCAtNjg4MCw3ICs2ODgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsVW4KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aE9wdGlvbmFsVW5zaWduZWRMb25nTG9uZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExv
bmdMb25nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdM
b25nQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0
aW9uYWxVbnNpZ25lZExvbmdMb25nIik7CiB9CkBAIC02OTAwLDcgKzY5MDEsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxVbgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxVbnNpZ25lZExvbmdMb25nSXNaZXJvKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbFVuc2lnbmVkTG9uZ0xvbmdJc1plcm8sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmdJc1plcm9Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFVuc2lnbmVkTG9uZ0xvbmdJc1plcm8i
KTsKIH0KQEAgLTY5MjAsNyArNjkyMSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbFNlcXVlbmNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2UiKTsKIH0KQEAgLTY5NDAsNyArNjk0
MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eShK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
CitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoT3B0aW9uYWxTZXF1ZW5jZUlzRW1wdHksIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbFNlcXVlbmNlSXNFbXB0eUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsU2VxdWVuY2VJc0VtcHR5Iik7CiB9CkBAIC02OTYw
LDcgKzY5NjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCbwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEJvb2xlYW4sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bEJvb2xlYW5Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdp
dGhPcHRpb25hbEJvb2xlYW4iKTsKIH0KQEAgLTY5ODAsNyArNjk4MSw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEJvCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xlYW5Jc0ZhbHNlKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEJvb2xl
YW5Jc0ZhbHNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNh
bGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxCb29sZWFuSXNG
YWxzZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9w
dGlvbmFsQm9vbGVhbklzRmFsc2UiKTsKIH0KQEAgLTcwMDAsNyArNzAwMSw3IEBAIHN0YXRpYyBp
bmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFdpdGhPcHRpb25hbEFuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFueShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxBbnksIChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEFueUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsQW55Iik7CiB9CkBAIC03MDIwLDcgKzcw
MjEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3QoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9w
dGlvbmFsT2JqZWN0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxPYmplY3RC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25h
bE9iamVjdCIpOwogfQpAQCAtNzA0MCw3ICs3MDQxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
TnUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBl
ciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVyQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoT3B0aW9uYWxO
dWxsYWJsZVdyYXBwZXIiKTsKIH0KQEAgLTcwNjAsNyArNzA2MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbE51CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbE51bGxhYmxlV3JhcHBlcklzTnVsbChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxO
dWxsYWJsZVdyYXBwZXJJc051bGwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25h
bE51bGxhYmxlV3JhcHBlcklzTnVsbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsTnVsbGFibGVXcmFwcGVySXNOdWxsIik7CiB9CkBAIC03
MDgwLDcgKzcwODEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUAogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5T
UmVzb2x2ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsWFBhdGhOU1Jlc29sdmVyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoT3B0aW9uYWxYUGF0aE5TUmVzb2x2ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm1ldGhvZFdpdGhPcHRpb25hbFhQYXRoTlNSZXNvbHZlciIpOwog
fQpAQCAtNzEwMCw3ICs3MTAxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUmUKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFs
UmVjb3JkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhPcHRpb25hbFJlY29yZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsUmVjb3JkQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJt
ZXRob2RXaXRoT3B0aW9uYWxSZWNvcmQiKTsKIH0KQEAgLTcxMjAsNyArNzEyMSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFdpdGhPcHRpb25hbFByCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbFByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlz
ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZUJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aE9wdGlvbmFsUHJvbWlzZSIp
OwogfQpAQCAtNzE0Miw3ICs3MTQzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrQXIKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxi
YWNrQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk1ldGhvZFdpdGhDYWxsYmFja0FyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlv
bjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENh
bGxiYWNrQXJnQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RX
aXRoQ2FsbGJhY2tBcmciKTsKIH0KQEAgLTcxNjcsNyArNzE2OCw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhO
b25DYWxsYmFjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNrQXJnKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFj
a0FyZ0FuZENhbGxiYWNrQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uQ2FsbGJh
Y2tBcmdBbmRDYWxsYmFja0FyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAibWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tBcmciKTsKIH0KQEAgLTcxODcs
NyArNzE4OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFs
QXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAq
Y2FsbEZyYW1lLCAibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciKTsKIH0KQEAgLTcy
MDksNyArNzIxMCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9u
QXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhDYWxsYmFja0Z1bmN0aW9uQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoQ2FsbGJhY2tGdW5jdGlvbkFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAibWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BcmciKTsKIH0KQEAgLTcyMzQsNyArNzIz
NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFjCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0FyZ0FuZENhbGxiYWNr
RnVuY3Rpb25BcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5j
dGlvbkFyZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0
aE5vbkNhbGxiYWNrQXJnQW5kQ2FsbGJhY2tGdW5jdGlvbkFyZyIpOwogfQpAQCAtNzI1NCw3ICs3
MjU1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aENhbGxiYWNrRnVuY3Rpb25BbmRPcHRp
b25hbEFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlvbmFsQXJnLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlvbkFuZE9wdGlvbmFsQXJnQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJtZXRob2RXaXRoQ2FsbGJhY2tGdW5jdGlv
bkFuZE9wdGlvbmFsQXJnIik7CiB9CkBAIC03MjczLDcgKzcyNzQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01l
dGhvZFdpdGhDYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGljTWV0aG9kV2l0
aENhbGxiYWNrQW5kT3B0aW9uYWxBcmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uU3RhdGlj
TWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgInN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FuZE9wdGlvbmFsQXJnIik7
CiB9CkBAIC03Mjk0LDcgKzcyOTUsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYQogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdp
dGhDYWxsYmFja0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqQ29uc3Ry
dWN0b3JGdW5jdGlvblN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZywgKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0
dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmdCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgInN0YXRpY01ldGhvZFdpdGhDYWxsYmFja0FyZyIpOwogfQpA
QCAtNzMxMCw3ICs3MzExLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QxQm8KICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5n
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC5jb25kaXRpb25hbE1ldGhvZDEoKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkNvbmRpdGlvbmFsTWV0aG9kMShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE1ldGhvZDEsIChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJ
RExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsTWV0aG9kMUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Y29uZGl0aW9uYWxNZXRob2QxIik7CiB9CkBAIC03MzMwLDcgKzczMzEsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbE1ldGhvZDJCbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db25kaXRpb25hbE1ldGhvZDIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QyLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db25kaXRpb25hbE1ldGhvZDJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImNvbmRpdGlvbmFsTWV0aG9kMiIpOwogfQpAQCAtNzM1MCw3ICs3MzUxLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29u
ZGl0aW9uYWxNZXRob2QzQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsTWV0aG9kMywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29uZGl0aW9uYWxNZXRob2QzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJjb25kaXRpb25hbE1ldGhvZDMiKTsKIH0KQEAgLTc2MDQsNyArNzYwNSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk92ZXJsb2FkZWRNZXRob2RPdmVyCiAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVybG9hZERpc3BhdGNo
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRlZE1ldGhvZCIp
OwogfQpAQCAtNzY3MSw3ICs3NjcyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICBy
ZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhPcHRpb25hbFBhcmFtZXRlcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aE9wdGlvbmFsUGFyYW1ldGVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9k
V2l0aE9wdGlvbmFsUGFyYW1ldGVyT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkZWRNZXRob2RXaXRoT3B0aW9uYWxQYXJhbWV0ZXIi
KTsKIH0KQEAgLTc3MjYsNyArNzcyNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoCiAgICAg
cmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0
aG9kV2l0aERpc3Rpbmd1aXNoaW5nVW5pb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRN
ZXRob2RXaXRoRGlzdGluZ3Vpc2hpbmdVbmlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxH
bG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9kV2l0aERpc3Rpbmd1aXNo
aW5nVW5pb24iKTsKIH0KQEAgLTc3ODMsNyArNzc4NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RX
aXRoCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25z
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2RXaXRoMkRpc3Rpbmd1aXNoaW5nVW5pb25zLCAoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1
cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZGVkTWV0aG9kV2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9uc092ZXJsb2FkRGlzcGF0
Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvdmVybG9hZGVkTWV0aG9k
V2l0aDJEaXN0aW5ndWlzaGluZ1VuaW9ucyIpOwogfQpAQCAtNzg0MSw3ICs3ODQyLDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZFdpdGgKICAgICByZXR1cm4gYXJnc0NvdW50IDwgMiA/IHRocm93Vk1F
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25E
aXN0aW5ndWlzaGluZ1VuaW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBD
YWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZFdpdGhOb25EaXN0aW5ndWlzaGlu
Z1VuaW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgIm92ZXJsb2FkZWRNZXRob2RXaXRoTm9uRGlzdGluZ3Vpc2hpbmdVbmlvbiIpOwogfQpAQCAt
Nzg5OCw3ICs3ODk5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGUKICAgICByZXR1cm4gYXJn
c0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0KSkgOiB0
aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3Zl
cmxvYWRXaXRoTnVsbGFibGVVbmlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZVVuaW9uT3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92ZXJsb2FkV2l0aE51bGxhYmxlVW5pb24i
KTsKIH0KQEAgLTc5NTYsNyArNzk1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsCiAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZFdpdGhPcHRpb25hbFVuaW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb24sIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkV2l0aE9wdGlvbmFsVW5pb25PdmVybG9hZERpc3BhdGNo
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAib3ZlcmxvYWRXaXRoT3B0aW9u
YWxVbmlvbiIpOwogfQpAQCAtODAxNSw3ICs4MDE2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFi
bGUKICAgICByZXR1cm4gYXJnc0NvdW50IDwgMiA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRXaXRoTnVsbGFibGVOb25EaXN0aW5ndWlzaGluZ1BhcmFt
ZXRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVyLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PdmVybG9hZFdpdGhOdWxsYWJsZU5vbkRpc3Rpbmd1aXNoaW5nUGFyYW1ldGVy
T3ZlcmxvYWREaXNwYXRjaGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm92
ZXJsb2FkV2l0aE51bGxhYmxlTm9uRGlzdGluZ3Vpc2hpbmdQYXJhbWV0ZXIiKTsKIH0KQEAgLTgw
MzEsNyArODAzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2RCb2R5KEpTCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZCwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpz
VGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25DbGFzc01ldGhvZEJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xhc3NNZXRob2QiKTsKIH0KQEAgLTgwNDgsNyArODA0OSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETExvbmc+KFRlc3RPYmo6OmNsYXNzTWV0aG9k
V2l0aE9wdGlvbmFsKFdURk1vdmUoYXJnKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlv
bmFsKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xh
c3NNZXRob2RXaXRoT3B0aW9uYWxCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsIik7CiB9CkBAIC04MDYyLDcgKzgwNjMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JGdW5j
dGlvbkNsYXNzTWV0aG9kMkJvZHkoSgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCAoSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6Y2xhc3NNZXRob2QyKCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uQ2xhc3NNZXRob2QyLCAo
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGxTdGF0aWM8anNU
ZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbkNsYXNzTWV0aG9kMkJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiY2xhc3NNZXRob2QyIik7CiB9CkBAIC04MTIzLDcgKzgxMjQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2QxTwogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8g
dGhyb3dWTUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk92ZXJsb2FkZWRNZXRo
b2QxKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0
aW9uT3ZlcmxvYWRlZE1ldGhvZDEsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNU
ZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDFPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZy
YW1lLCAib3ZlcmxvYWRlZE1ldGhvZDEiKTsKIH0KQEAgLTgxNTAsNyArODE1MSw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNs
YXNzTWV0aG9kV2l0aENsYW1wCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhDbGFtcEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAiY2xhc3NNZXRob2RXaXRoQ2xhbXAiKTsKIH0KQEAgLTgxNzAsNyArODE3
MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aENsYW1wT25PcHRpb25hbChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01l
dGhvZFdpdGhDbGFtcE9uT3B0aW9uYWwsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248
SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0
aENsYW1wT25PcHRpb25hbEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAi
Y2xhc3NNZXRob2RXaXRoQ2xhbXBPbk9wdGlvbmFsIik7CiB9CkBAIC04MTk1LDcgKzgxOTYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2UoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRo
RW5mb3JjZVJhbmdlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46
OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNlUmFu
Z2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNsYXNzTWV0aG9kV2l0
aEVuZm9yY2VSYW5nZSIpOwogfQpAQCAtODIxNSw3ICs4MjE2LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RX
aXRoRW5mb3IKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q2xhc3NNZXRob2RXaXRoRW5mb3JjZVJhbmdlT25PcHRpb25hbChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNl
UmFuZ2VPbk9wdGlvbmFsLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9i
aj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZFdpdGhFbmZvcmNl
UmFuZ2VPbk9wdGlvbmFsQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJj
bGFzc01ldGhvZFdpdGhFbmZvcmNlUmFuZ2VPbk9wdGlvbmFsIik7CiB9CkBAIC04MjM3LDcgKzgy
MzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMbwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5zaWduZWRMb25nU2VxdWVuY2UoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQor
SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aFVuc2lnbmVkTG9uZ1NlcXVlbmNlLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoVW5z
aWduZWRMb25nU2VxdWVuY2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im1ldGhvZFdpdGhVbnNpZ25lZExvbmdTZXF1ZW5jZSIpOwogfQpAQCAtODI1Nyw3ICs4MjU4LDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uU3RyaW5nQXJyYXlGdW5jdGlvbkIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dT
Y29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8SURMRE9NU3RyaW5nPj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29w
ZSwgaW1wbC5zdHJpbmdBcnJheUZ1bmN0aW9uKFdURk1vdmUodmFsdWVzKSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TdHJp
bmdBcnJheUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvblN0cmluZ0FycmF5RnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblN0cmlu
Z0FycmF5RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0
cmluZ0FycmF5RnVuY3Rpb24iKTsKIH0KQEAgLTgyNzcsNyArODI3OCw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkRvbVN0cmlu
Z0xpc3RGdW5jdGlvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxET01TdHJpbmdMaXN0Pj4oKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5kb21T
dHJpbmdMaXN0RnVuY3Rpb24oKnZhbHVlcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rpb24o
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uRG9t
U3RyaW5nTGlzdEZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Eb21TdHJpbmdMaXN0RnVuY3Rp
b25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImRvbVN0cmluZ0xpc3RG
dW5jdGlvbiIpOwogfQpAQCAtODI5Nyw3ICs4Mjk4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aE9wdGlv
bmEKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0
aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJhbWV0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3BlcmF0aW9uV2l0aE9wdGlvbmFsVW5pb25QYXJh
bWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlvbldpdGhPcHRpb25hbFVuaW9uUGFyYW1l
dGVyQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJvcGVyYXRpb25XaXRo
T3B0aW9uYWxVbmlvblBhcmFtZXRlciIpOwogfQpAQCAtODMyMiw3ICs4MzIzLDcgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0
aG9kV2l0aEFuZFdpdGhvdXQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdpdGhvdXROdWxsYWJsZVNlcXVlbmNlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhBbmRX
aXRob3V0TnVsbGFibGVTZXF1ZW5jZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEFuZFdp
dGhvdXROdWxsYWJsZVNlcXVlbmNlQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJh
bWUsICJtZXRob2RXaXRoQW5kV2l0aG91dE51bGxhYmxlU2VxdWVuY2UiKTsKIH0KQEAgLTgzNDIs
NyArODM0Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQ
cm90b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkQm9keShKCiAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETE51bGxhYmxlPElETEludGVy
ZmFjZTxFbGVtZW50Pj4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFs
T2JqZWN0KCksIGltcGwuZ2V0RWxlbWVudEJ5SWQoV1RGTW92ZShlbGVtZW50SWQpKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkdldEVsZW1lbnRCeUlkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbkdldEVsZW1lbnRCeUlkLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0
aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25HZXRFbGVtZW50
QnlJZEJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZ2V0RWxlbWVudEJ5
SWQiKTsKIH0KQEAgLTgzNTcsNyArODM1OCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkdldFNWR0RvY3VtZW50Qm9keShKCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEludGVyZmFjZTxEb2N1bWVudD4+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIEJpbmRpbmdTZWN1cml0eTo6Y2hlY2tTZWN1cml0
eUZvck5vZGUoKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuZ2V0U1ZHRG9jdW1lbnQoKSkpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25HZXRTVkdEb2N1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25HZXRTVkdEb2N1bWVudCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uR2V0U1ZH
RG9jdW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdldFNWR0Rv
Y3VtZW50Iik7CiB9CkBAIC04Mzc5LDcgKzgzODAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MUJvZHkoSlNDOjpK
UwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0
MShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0MSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDFCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImNvbnZlcnQxIik7CiB9CkBAIC04NDAxLDcgKzg0MDIsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25Db252ZXJ0MkJvZHkoSlNDOjpKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Db252ZXJ0MihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDJC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbnZlcnQyIik7CiB9CkBA
IC04NDIzLDcgKzg0MjQsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0M0JvZHkoSlNDOjpKUwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0MywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29udmVydDNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImNvbnZlcnQzIik7CiB9CkBAIC04NDQ1LDcgKzg0NDYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db252ZXJ0NEJvZHko
SlNDOjpKUwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25D
b252ZXJ0NChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25Db252ZXJ0NCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+
OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29udmVydDRCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbnZlcnQ0Iik7CiB9CkBAIC04NDYwLDcgKzg0NjEs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExJbnRlcmZhY2U8U1ZHUG9pbnQ+PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLm11dGFi
bGVQb2ludEZ1bmN0aW9uKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRGdW5jdGlvbihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NdXRhYmxlUG9pbnRG
dW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxs
PGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTXV0YWJsZVBvaW50RnVuY3Rpb25Cb2R5PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm11dGFibGVQb2ludEZ1bmN0aW9uIik7CiB9
CkBAIC04NDc3LDcgKzg0NzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFuZ2VCb2R5KEpTQzo6SlNHbAogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PcmFuZ2UoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3JhbmdlLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PcmFuZ2VCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
Im9yYW5nZSIpOwogfQpAQCAtODUwMSw3ICs4NTAyLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRo
b2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFk
aWNTdHJpbmdNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uVmFyaWFkaWNTdHJpbmdNZXRob2QsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlh
ZGljU3RyaW5nTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2
YXJpYWRpY1N0cmluZ01ldGhvZCIpOwogfQpAQCAtODUyNSw3ICs4NTI2LDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFk
aWNEb3VibGVNZXRob2QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
OwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNEb3VibGVNZXRob2QsIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvblZhcmlhZGljRG91YmxlTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICJ2YXJpYWRpY0RvdWJsZU1ldGhvZCIpOwogfQpAQCAtODU0OSw3ICs4NTUwLDcg
QEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kQm8KICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljTm9kZU1ldGhvZCwgKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkp
CiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNOb2RlTWV0aG9kQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJ2YXJpYWRpY05vZGVNZXRob2QiKTsKIH0KQEAgLTg1NzMsNyArODU3
NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRob2RCCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblZhcmlhZGljVW5pb25NZXRob2QoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhv
ZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVmFyaWFkaWNVbmlvbk1ldGhvZEJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFyaWFkaWNVbmlvbk1ldGhvZCIpOwogfQpAQCAtODU5
OCw3ICs4NTk5LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uQW55Qm9keShKU0M6OkpTR2xvYmEKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQW55
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJhbnkiKTsKIH0KQEAgLTg2
MTUsNyArODYxNiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb25CCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rpb24oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21p
c2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVybmluZ1Byb21p
c2U8SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNl
RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9t
aXNlRnVuY3Rpb24iKTsKIH0KQEAgLTg2MzcsNyArODYzOCw3IEBAIHN0YXRpYyBpbmxpbmUgSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVu
Y3Rpb25XCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEZs
b2F0QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9t
aXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlz
ZUZ1bmN0aW9uV2l0aEZsb2F0QXJndW1lbnRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoRmxvYXRBcmd1bWVudCIpOwogfQpAQCAt
ODY1NCw3ICs4NjU1LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvblcKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhF
eGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uVGVzdFByb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb25SZXR1cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbkJvZHk+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFByb21pc2VGdW5jdGlvbldpdGhF
eGNlcHRpb24iKTsKIH0KQEAgLTg2NzQsNyArODY3NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQcm9taXNlRnVuY3Rp
b25XCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RQ
cm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJbnRBcmd1bWVudChKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UHJvbWlzZUZ1bmN0aW9uV2l0
aE9wdGlvbmFsSW50QXJndW1lbnQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0UHJvbWlzZUZ1bmN0aW9uV2l0aE9wdGlvbmFsSW50QXJndW1lbnRCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRlc3RQcm9taXNlRnVuY3Rpb25XaXRoT3B0aW9uYWxJ
bnRBcmd1bWVudCIpOwogfQpAQCAtODcyNyw3ICs4NzI4LDcgQEAgc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVy
bG9hZGUKICAgICByZXR1cm4gYXJnc0NvdW50IDwgMSA/IHRocm93Vk1FcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0KSkgOiB0aHJvd1ZNVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VPdmVybG9hZGVkRnVuY3Rpb24oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFByb21pc2VP
dmVybG9hZGVkRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1cm5p
bmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0
UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbk92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UHJvbWlzZU92ZXJsb2FkZWRGdW5jdGlvbiIpOwog
fQpAQCAtODc0Myw3ICs4NzQ0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUYKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlz
ZUZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpDb25zdHJ1Y3Rv
ckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElE
TE9wZXJhdGlvblJldHVybmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFN0YXRpYzxqc1Rlc3RP
YmpDb25zdHJ1Y3RvckZ1bmN0aW9uVGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbkJvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbiIp
OwogfQpAQCAtODc1OSw3ICs4NzYwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJvbWlzZUYKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGljUHJv
bWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNQcm9taXNlRnVuY3Rpb25XaXRoRXhj
ZXB0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxK
U1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3Rh
dGljUHJvbWlzZUZ1bmN0aW9uV2l0aEV4Y2VwdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lLCAidGVzdFN0YXRpY1Byb21pc2VGdW5jdGlvbldpdGhFeGNlcHRpb24iKTsK
IH0KQEAgLTg3NzMsNyArODc3NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21Qcm9taXNlRnVuCiAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIChKU1ZhbHVlOjplbmNvZGUoY2FzdGVkVGhpcy0+
dGVzdEN1c3RvbVByb21pc2VGdW5jdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgV1RGTW92ZShwcm9taXNlKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RD
dXN0b21Qcm9taXNlRnVuY3Rpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb25SZXR1
cm5pbmdQcm9taXNlPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25U
ZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJ0ZXN0Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uIik7CiB9CkBAIC04Nzg3LDcgKzg3ODgs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0
b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21QcgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE9iajo6dGVzdFN0YXRpY0N1c3RvbVByb21p
c2VGdW5jdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgV1RGTW92ZShwcm9t
aXNlKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqQ29u
c3RydWN0b3JGdW5jdGlvblRlc3RTdGF0aWNDdXN0b21Qcm9taXNlRnVuY3Rpb24oSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25UZXN0U3RhdGlj
Q3VzdG9tUHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uUmV0
dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsU3RhdGljPGpzVGVzdE9iakNvbnN0cnVjdG9y
RnVuY3Rpb25UZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9i
YWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0U3RhdGljQ3VzdG9tUHJvbWlzZUZ1bmN0aW9uIik7
CiB9CkBAIC04ODAxLDcgKzg4MDIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0Q3VzdG9tUmV0dXJuc093bgogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAoSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMt
PnRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCAqY2FsbEZyYW1lKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRl
c3RDdXN0b21SZXR1cm5zT3duUHJvbWlzZUZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uUmV0dXJuaW5nUHJvbWlzZTxKU1Rlc3RPYmo+OjpjYWxsUmV0dXJuaW5nT3duUHJv
bWlzZTxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RDdXN0b21SZXR1cm5zT3duUHJvbWlz
ZUZ1bmN0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0Q3Vz
dG9tUmV0dXJuc093blByb21pc2VGdW5jdGlvbiIpOwogfQpAQCAtODgxNiw3ICs4ODE3LDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uVGVzdFJldHVybnNPd25Qcm9taXMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29w
ZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMUHJvbWlzZTxJRExVbmRlZmluZWQ+PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLnRlc3RSZXR1
cm5zT3duUHJvbWlzZUFuZFByb21pc2VQcm94eUZ1bmN0aW9uKCkpKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJu
c093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuc093blByb21pc2VBbmRQ
cm9taXNlUHJveHlGdW5jdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvblJldHVy
bmluZ1Byb21pc2U8SlNUZXN0T2JqPjo6Y2FsbFJldHVybmluZ093blByb21pc2U8anNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0dXJuc093blByb21pc2VBbmRQcm9taXNlUHJveHlGdW5j
dGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidGVzdFJldHVybnNP
d25Qcm9taXNlQW5kUHJvbWlzZVByb3h5RnVuY3Rpb24iKTsKIH0KQEAgLTg4NzksNyArODg4MCw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbmRpdGlvbmFsT3ZlcmxvYWRPCiAgICAgcmV0dXJuIGFyZ3NDb3VudCA8IDEgPyB0
aHJvd1ZNRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgY3JlYXRlTm90RW5v
dWdoQXJndW1lbnRzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCkpIDogdGhyb3dWTVR5cGVFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsT3Zlcmxv
YWQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29uZGl0aW9uYWxPdmVybG9hZCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxPdmVybG9h
ZE92ZXJsb2FkRGlzcGF0Y2hlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJj
b25kaXRpb25hbE92ZXJsb2FkIik7CiB9CkBAIC04OTM3LDcgKzg5MzgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVD
b25kaXRpb25hbE92ZQogICAgIHJldHVybiBhcmdzQ291bnQgPCAxID8gdGhyb3dWTUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QpKSA6IHRocm93Vk1UeXBlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25TaW5nbGVDb25kaXRpb25hbE92ZXJsb2FkKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNpbmdsZUNv
bmRpdGlvbmFsT3ZlcmxvYWQsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblNpbmdsZUNvbmRpdGlvbmFsT3Zl
cmxvYWRPdmVybG9hZERpc3BhdGNoZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAic2luZ2xlQ29uZGl0aW9uYWxPdmVybG9hZCIpOwogfQpAQCAtODk1OSw3ICs4OTYwLDcgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uQXR0YWNoU2hhZG93Um9vdEJvZHkKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uQXR0YWNoU2hhZG93Um9vdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25BdHRhY2hTaGFkb3dSb290LCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25BdHRhY2hTaGFkb3dSb290Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxs
RnJhbWUsICJhdHRhY2hTaGFkb3dSb290Iik7CiB9CkBAIC04OTgxLDcgKzg5ODIsNyBAQCBzdGF0
aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25P
cGVyYXRpb25XaXRoRXh0ZXJuYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25PcGVyYXRpb25XaXRoRXh0ZXJuYWxEaWN0aW9uYXJ5UGFyYW1ldGVyKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJhdGlv
bldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExP
cGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk9wZXJh
dGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0ZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgIm9wZXJhdGlvbldpdGhFeHRlcm5hbERpY3Rpb25hcnlQYXJhbWV0
ZXIiKTsKIH0KQEAgLTkwMDMsNyArOTAwNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJjZVBhcmFtZXRlCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNvdXJj
ZVBhcmFtZXRlcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25CdWZmZXJTb3VyY2VQYXJhbWV0ZXIsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlclNv
dXJjZVBhcmFtZXRlckJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiYnVm
ZmVyU291cmNlUGFyYW1ldGVyIik7CiB9CkBAIC05MDI1LDcgKzkwMjYsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25MZWdhY3lD
YWxsZXJOYW1lZEJvZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25MZWdhY3lDYWxsZXJOYW1lZChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25MZWdhY3lDYWxsZXJOYW1lZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TGVnYWN5Q2FsbGVyTmFtZWRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
ImxlZ2FjeUNhbGxlck5hbWVkIik7CiB9CkBAIC05MDUwLDcgKzkwNTEsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0UmV0
dXJuVmFsdWVPcHRpbQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXJndW1lbnQwLnZhbHVl
KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXph
dGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpz
VGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0ZXN0UmV0dXJuVmFsdWVPcHRpbWl6
YXRpb24iKTsKIH0KQEAgLTkwNzUsNyArOTA3Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGlt
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhcmd1bWVudDAudmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25UZXN0
UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGltaXph
dGlvbldpdGhFeGNlcHRpb24sIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRlc3RSZXR1cm5WYWx1ZU9wdGlt
aXphdGlvbldpdGhFeGNlcHRpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgInRlc3RSZXR1cm5WYWx1ZU9wdGltaXphdGlvbldpdGhFeGNlcHRpb24iKTsKIH0KQEAgLTkw
OTIsNyArOTA5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5k
b3dGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV2luZG93RnVuY3Rpb24sIChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAg
IHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0T2JqPjo6Y2FsbDxqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbkNvbmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dGdW5jdGlvbkJvZHk+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0Z1
bmN0aW9uIik7CiB9CkBAIC05MTA5LDcgKzkxMTAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3Nl
ZAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRp
b25hbGx5RXhwb3NlZFRvV29ya2VyRnVuY3Rpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dvcmtlckZ1
bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbGx5RXhwb3NlZFRvV29ya2VyRnVu
Y3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImNvbmRpdGlvbmFs
bHlFeHBvc2VkVG9Xb3JrZXJGdW5jdGlvbiIpOwogfQpAQCAtOTEyNiw3ICs5MTI3LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
Q29uZGl0aW9uYWxseUV4cG9zZWQKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9u
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsbHlFeHBvc2VkVG9XaW5kb3dBbmRXb3JrZXJGdW5jdGlvbiwgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPYmo+OjpjYWxsPGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uQ29uZGl0aW9uYWxseUV4cG9zZWRUb1dpbmRvd0FuZFdvcmtlckZ1bmN0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjb25kaXRpb25hbGx5RXhwb3NlZFRv
V2luZG93QW5kV29ya2VyRnVuY3Rpb24iKTsKIH0KQEAgLTkxNDEsNyArOTE0Miw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRv
U3RyaW5nQm9keShKU0M6OkpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETFVTVlN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGlt
cGwuc3RyaW5naWZpZXJBdHRyaWJ1dGUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdE9iaj46OmNhbGw8anNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAidG9TdHJpbmciKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWwu
Y3BwCmluZGV4IDRiNGJhNzM4M2ZiOTA1ZjJlMzc5OTNhYjk5MzBhMWYwNTEwZTYzZjIuLmQ5MTE0
ODlkZDc5ZTk1MmUyNWY1ZTEzYWViNWIyM2E1MmZmZDNmY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsLmNwcApAQCAtNDksMTYgKzQ5LDE2IEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAvLyBGdW5jdGlvbnMKIAogI2lmIEVOQUJMRShDb25kaXRpb25CYXNlKQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFs
UHJvdG90eXBlRnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0
aW9uKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb25CYXNlKSAmJiBFTkFCTEUoQ29uZGl0
aW9uT3BlcmF0aW9uKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9w
ZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlvbihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNvbmRp
dGlvbmFsT3BlcmF0aW9uKTsKICNlbmRpZgogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3BlcmF0aW9uQ29u
ZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE9wZXJhdGlvbkNvbmRp
dGlvbmFsUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0xNzcsNyArMTc3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWwqIElETE9wZXJhdGlvbjxKU1Rlc3RPcGVyYXRpb25Db25kaXQKICAgICBy
ZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbCo+KEpTQzo6Z2V0
Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWxDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0m
IHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4Nyw3ICsxODcsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3BlcmF0
aW9uQ29uZGl0aW9uYWw6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RP
cGVyYXRpb25Db25kaXRpb25hbENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25h
bENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFBy
b3RvdHlwZUZ1bmN0aW9uTm9uCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPcGVyYXRpb25D
b25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uTm9uQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBl
RnVuY3Rpb25Ob25Db25kaXRpb25hbE9wZXJhdGlvbiwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9w
ZXJhdGlvbjxKU1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbD46OmNhbGw8anNUZXN0T3BlcmF0aW9u
Q29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbk5vbkNvbmRpdGlvbmFsT3BlcmF0aW9uQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJub25Db25kaXRpb25hbE9wZXJhdGlv
biIpOwogfQpAQCAtMjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0aW9uQ29uCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPcGVyYXRpb25Db25kaXRpb25hbFByb3RvdHlwZUZ1bmN0
aW9uQ29uZGl0aW9uYWxPcGVyYXRpb24oSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dE9wZXJhdGlvbkNvbmRpdGlvbmFsUHJvdG90eXBlRnVuY3Rpb25Db25kaXRpb25hbE9wZXJhdGlv
biwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RPcGVyYXRpb25Db25kaXRp
b25hbD46OmNhbGw8anNUZXN0T3BlcmF0aW9uQ29uZGl0aW9uYWxQcm90b3R5cGVGdW5jdGlvbkNv
bmRpdGlvbmFsT3BlcmF0aW9uQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUs
ICJjb25kaXRpb25hbE9wZXJhdGlvbiIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwCmluZGV4IDVhMmE4MjBjNzU2ZjZhNGQ1N2JmNzg2ODdkNzQzMWE4
YTNiZTIzMDEuLmI4NjlhMzVmODczMDQ0Y2QxYjMwOTMyNThmNTJhN2EyM2M5YmRlMTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKQEAgLTUwLDggKzUw
LDggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE4MSw3ICsxODEsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29k
ZWRKU1ZhbHVlIGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM1KEpTR2xvYmFs
T2JqZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9CiAKLXRlbXBsYXRl
PD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3Ry
dWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+
dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIwNCw2ICsyMDQsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yOgogICAgIH0KICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlKTsKIH0K
K0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnND
b25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVj
dG9yOjpjb25zdHJ1Y3QpOwogCiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc0NvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0s
IGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yNzMsNyArMjc0
LDcgQEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpkZXN0cm95KEpTQzo6SlND
ZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6
On5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI4Myw3ICsyODQsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0g
PSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCmluZGV4IGE5MjAyMjQ0YTVh
MzEyM2E5ZmFiZjI2NzdjMmMwMzI4ZTZmZTkyZTAuLjkwN2IwMTA2MDc2M2NlODg4NzZkMTdiZWY1
MjExNGMyMGE1MmVkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKQEAgLTQ5LDggKzQ5LDggQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25z
dHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRo
U2VxdWVuY2VQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMgaW5saW5lIEVuY29kZWRKU1ZhbHVl
IGNvbnN0cnVjdEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UyKAogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNWYWx1ZSk7CiB9CiAKLXRlbXBsYXRlPD4gRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNl
cXVlbmNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCit0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTExfQVRUUklCVVRFUyBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlQ29uc3RydWN0b3I6OmNvbnN0cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNh
bEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKQEAgLTE0Myw2ICsxNDMsNyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZQog
ICAgIH0KICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlKTsKIH0KK0pTQ19BTk5PVEFURV9IT1NUX0ZVTkNUSU9OKEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvckNvbnN0cnVjdCwgSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOwog
CiB0ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZUNvbnN0cnVjdG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0
IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yMTIsNyArMjEzLDcgQEAg
dm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlOjpkZXN0cm95KEpT
Qzo6SlNDZWxsKiBjZWxsKQogICAgIHRoaXNPYmplY3QtPkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnNXaXRoU2VxdWVuY2U6On5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVl
bmNlKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKQEAgLTIyMiw3ICsyMjMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFBsdWdpbkludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAppbmRleCBhZDRkYzM0NjA5ZDBiMDNm
MmNmN2MzOGMxZjkzOGFjYzJjNDIwYTFlLi5iMTEzYjBhMjg4OTFkM2Q2Mjc3NjczNmI4ODQ2NTZl
YWU1Njg2NWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcApAQCAtNDUsOCAr
NDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wg
c2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0
b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RQbHVnaW5JbnRlcmZhY2VQcm90b3R5cGUgZmluYWwg
OiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTIxMSw3ICsyMTEs
NyBAQCBDYWxsRGF0YSBKU1Rlc3RQbHVnaW5JbnRlcmZhY2U6OmdldENhbGxEYXRhKEpTQ2VsbCog
Y2VsbCkKICAgICByZXR1cm4gcGx1Z2luRWxlbWVudEN1c3RvbUdldENhbGxEYXRhKHRoaXNPYmpl
Y3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQbHVnaW5JbnRlcmZhY2VDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBW
TSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjIxLDcgKzIyMSw3IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFBsdWdpbkludGVyZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RQbHVn
aW5JbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RQbHVn
aW5JbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UGx1Z2luSW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnQuY3BwCmluZGV4IDBmZTNhODA5NjUwYmMzMDg0MjdlMjY3N2ZiMDFiMmY0ZmIzY2EzMTguLjhl
NWM2YmEyMzkxNGY3MDc5Yjc2ZTQ5YmZhYzI0OTk5NTNlOWY1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCkBAIC0xMjcsMTAgKzEyNywxMCBAQCB0ZW1w
bGF0ZTw+IFRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OkluaXQgY29udmVydERpY3Rpb25hcnk8
VGVzdFByb21pc2VSZWplY3RpbwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFByb21pc2UoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZl
bnRSZWFzb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKIAogY2xhc3MgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvdG90
eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0x
NjYsNyArMTY2LDcgQEAgU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoSlNUZXN0
UHJvbWlzZVJlamVjdGlvbkV2ZW50UHJvdG90eXBlLCBKU1Rlc3QKIAogdXNpbmcgSlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IgPSBKU0RPTUNvbnN0cnVjdG9yPEpTVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudD47CiAKLXRlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQogewogICAg
IFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xODksNiArMTg5LDcgQEAgdGVtcGxhdGU8
PiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dENvbnN0cnVjdG9yOjoKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7
CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1ZhbHVlKTsKIH0KK0pTQ19BTk5PVEFURV9I
T1NUX0ZVTkNUSU9OKEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yQ29uc3Ry
dWN0LCBKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsK
IAogdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7CkBAIC0yNTgsNyArMjU5LDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50KiBJRExBdHRyaWJ1dGU8SlNUZXN0UHJv
bWlzZVJlamVjdGkKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnQqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBK
SVRfT1BFUkFUSU9OIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpA
QCAtMjY4LDcgKzI2OSw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ6OmdldENvbnN0cnVjdG9y
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0yODksNyArMjkwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFByb21p
c2VSZWplY3Rpb25FdmVudFByb21pc2VHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMUHJvbWlzZTxJRExBbnk+PihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwg
aW1wbC5wcm9taXNlKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWpl
Y3Rpb25FdmVudFByb21pc2UoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFByb21pc2VSZWplY3Rp
b25FdmVudD46OmdldDxqc1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRQcm9taXNlR2V0dGVyLCBD
YXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6UmVqZWN0UHJvbWlzZT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNWYWx1ZSwgInByb21pc2UiKTsKIH0KQEAgLTMwMiw3ICszMDMsNyBAQCBzdGF0aWMg
aW5saW5lIEpTVmFsdWUganNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uR2V0dGVyKEpT
R2xvYmFsT2JqZWN0JiBsZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9K
UzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwucmVhc29uKCkp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNv
bihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudFJlYXNvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQ+OjpnZXQ8anNU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50UmVhc29uR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhh
dmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicmVhc29uIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UmVhZE9ubHlNYXBMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwCmluZGV4IGRjMjczZjNiNDc5Mzhk
YzViNzFiYjI1NDA2NDRkZWI3ODg2NmUzYzkuLjkyMDU3NmE0MTM2MWU2NGU3ZDA3NDEzMDAxM2Mz
MzIxNmVjNmJjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seU1hcExpa2UuY3BwCkBAIC01MCwx
OCArNTAsMTggQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5
cGVGdW5jdGlvbkdldChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQ
cm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlN
YXBMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNh
bGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRP
bmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0
UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25HZXQpOworSlNDX0RFQ0xBUkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uRW50cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JF
YWNoKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRP
bmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFJlYWRPbmx5TWFwTGlr
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlN
YXBMaWtlU2l6ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0
SlNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJlYWRPbmx5TWFwTGlrZVNpemUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIAogY2xh
c3MgSlNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODMsNyArMTgzLDcgQEAgdGVtcGxhdGU8PiBp
bmxpbmUgSlNUZXN0UmVhZE9ubHlNYXBMaWtlKiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlN
YXBMaWtlPjo6Y2EKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RSZWFkT25seU1hcExp
a2UqPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRoaXNWYWx1
ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlNYXBMaWtlQ29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
Vk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Myw3ICsxOTMsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iagogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0UmVh
ZE9ubHlNYXBMaWtlOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0UmVh
ZE9ubHlNYXBMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFJlYWRPbmx5TWFwTGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjEzLDcgKzIxMyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNW
YWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFueT4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb01hcExpa2UobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46
OmdldDxqc1Rlc3RSZWFkT25seU1hcExpa2VTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwogfQpAQCAtMjMyLDcgKzIzMiw3IEBAIHN0YXRpYyBpbmxp
bmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5j
dGlvbkdldEJvZHkoCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6
OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEdldFRvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBl
RnVuY3Rpb25HZXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFw
TGlrZVByb3RvdHlwZUZ1bmN0aW9uR2V0LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9u
PEpTVGVzdFJlYWRPbmx5TWFwTGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90
eXBlRnVuY3Rpb25HZXRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImdl
dCIpOwogfQpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkhhc0JvZHkoCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFu
eT4oZm9yd2FyZEhhc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
KmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0
aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFw
TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImhhcyIpOwogfQpAQCAtMjY1LDcg
KzI2NSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25s
eU1hcExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEVudHJpZXNU
b01hcExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExp
a2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
cmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJl
YWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZW50cmllcyIpOwogfQpAQCAtMjc5LDcgKzI3OSw3IEBAIHN0
YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXNCb2R5CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUs
IEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZEtleXNUb01hcExpa2UoKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5j
dGlvbktleXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5TWFwTGlr
ZVByb3RvdHlwZUZ1bmN0aW9uS2V5cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RSZWFkT25seU1hcExpa2U+OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlw
ZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5
cyIpOwogfQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvCiAgICAg
UkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEFu
eT4oZm9yd2FyZFZhbHVlc1RvTWFwTGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVf
SE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seU1hcExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVl
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seU1hcExpa2U+
OjpjYWxsPGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ2YWx1ZXMiKTsKIH0KQEAgLTMxMiw3
ICszMTIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9u
bHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoQgogICAgIFJFTEVBU0VfQU5EX1JFVFVS
Tih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRGb3JFYWNo
VG9NYXBMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywg
V1RGTW92ZShjYWxsYmFjaykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdFJlYWRPbmx5TWFwTGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25G
b3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5TWFw
TGlrZT46OmNhbGw8anNUZXN0UmVhZE9ubHlNYXBMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UmVhZE9ubHlTZXRMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwCmluZGV4IGRlMDI1YTZiNGEzZDM0NjBlMWJi
MTE2YjY2ZmE4ZGYyY2YwYTE2OGYuLmMzMmQ3NzRlZDUwNjNmOWZmZmM3NTUzMDNmOGRhNTA4ZDNm
MGZlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RSZWFkT25seVNldExpa2UuY3BwCkBAIC01MCwxNyArNTAs
MTcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkVudHJpZXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFJlYWRPbmx5
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0UmVhZE9ubHlT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihq
c1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbktl
eXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFJl
YWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCk7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVNpemUoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFJlYWRPbmx5U2V0TGlrZUNv
bnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rl
c3RSZWFkT25seVNldExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFJlYWRPbmx5U2V0TGlr
ZVByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMTgxLDcgKzE4MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFJlYWRPbmx5U2V0
TGlrZSogSURMT3BlcmF0aW9uPEpTVGVzdFJlYWRPbmx5U2V0TGlrZT46OmNhCiAgICAgcmV0dXJu
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0UmVhZE9ubHlTZXRMaWtlKj4oSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0UmVhZE9ubHlTZXRMaWtlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xOTEsNyArMTkxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9u
bHlTZXRMaWtlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmoKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFJlYWRPbmx5U2V0TGlrZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFJlYWRPbmx5U2V0TGlrZUNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RSZWFkT25seVNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAg
LTIxMSw3ICsyMTEsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRM
aWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExBbnk+KGxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIGZvcndhcmRTaXplVG9TZXRMaWtlKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNP
YmplY3QpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZWFkT25seVNldExpa2VTaXpl
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0
UmVhZE9ubHlTZXRMaWtlU2l6ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1Rlc3RSZWFkT25seVNldExpa2U+OjpnZXQ8anNUZXN0UmVhZE9ubHlTZXRM
aWtlU2l6ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsK
IH0KQEAgLTIzMCw3ICsyMzAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25IYXNCb2R5KAogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZv
cndhcmRIYXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0
ZWRUaGlzLCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhh
cywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+
OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0KQEAgLTI0NCw3ICsyNDQs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRFbnRyaWVzVG9TZXRM
aWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25s
eVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImVudHJpZXMiKTsKIH0KQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMg
aW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25LZXlzQm9keQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1Zh
bHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRLZXlzVG9TZXRMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25L
ZXlzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RSZWFkT25seVNldExpa2VQcm90
b3R5cGVGdW5jdGlvbktleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
UmVhZE9ubHlTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5j
dGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImtleXMiKTsK
IH0KQEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCbwogICAgIFJFTEVB
U0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZv
cndhcmRWYWx1ZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpj
YXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RS
ZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1Rf
RlVOQ1RJT04oanNUZXN0UmVhZE9ubHlTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMsIChK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUp
KQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0UmVhZE9ubHlTZXRMaWtlPjo6Y2Fs
bDxqc1Rlc3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0yOTEsNyArMjkx
LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFJlYWRPbmx5U2V0
TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEIKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhy
b3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0
TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1v
dmUoY2FsbGJhY2spKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RSZWFkT25seVNldExpa2VQcm90b3R5cGVGdW5jdGlvbkZvckVhY2goSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFj
aCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RSZWFkT25seVNldExpa2U+
OjpjYWxsPGpzVGVzdFJlYWRPbmx5U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRm9yRWFjaEJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZm9yRWFjaCIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFJlcG9y
dEV4dHJhTWVtb3J5Q29zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcAppbmRleCA0NjIxNGM4MzA2MDA5
MDU5Y2MyOGQzNjFjMjZlZWI0YTliZjUyOTg3Li4zZWRkMDFmY2FiMjQ5ZWY1ZWY4OWI5NzViZjU4
ZmYzZTE1NTc4YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0
LmNwcApAQCAtNDQsOCArNDQsOCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1
dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFJl
cG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEpT
VGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdDo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2VsbCkKICAg
ICB0aGlzT2JqZWN0LT5KU1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3Q6On5KU1Rlc3RSZXBvcnRF
eHRyYU1lbW9yeUNvc3QoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0UmVwb3J0RXh0cmFN
ZW1vcnlDb3N0Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RSZXBvcnRFeHRyYU1lbW9yeUNvc3RDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE2MCw3ICsxNjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RSZXBvcnRFeHRyYU1lbW9y
eUNvc3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsbwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0OjpnZXRDb25zdHJ1Y3Rv
cihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0UmVwb3J0RXh0cmFNZW1vcnlDb3N0Q29uc3RydWN0
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9O
IHNldEpTVGVzdFJlcG9ydEV4dHJhTWVtb3J5Q29zdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAppbmRleCBjMTU1NjdlMjQ2MzEyOTM0M2QxOTBiNWFhNDU0MTU2ZWI4NDYwMTM0
Li5mMGFkYzgzZjA0NmM3MmMxZDY2MjhlOWYxMzQ5NGYxNGNkMzE3YTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAt
NTYsMjAgKzU2LDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbihKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0
aW9uUmV0dXJuaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5j
dGlvblJldHVybmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9v
bCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVBvcnRzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VW
YWx1ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUG9ydHMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZh
bHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiAKIGNsYXNzIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBy
b3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMTkwLDcgKzE5MCw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSogSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlhCiAgICAgcmV0dXJuIGpz
RHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0y
MDAsNyArMjAwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGwKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Z2V0Q29uc3Ry
dWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZt
ID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTIyMSw3ICsyMjEsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWVHZXR0
ZXIoSlNHbG9iYWxPYgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4obGV4aWNhbEds
b2JhbE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwu
dmFsdWUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlVmFsdWVHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJ2YWx1ZSIpOwogfQpAQCAtMjM5LDcgKzIz
OSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VWYWx1ZVNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZT46OnNldDxzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VWYWx1ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5j
b2RlZFZhbHVlLCAidmFsdWUiKTsKIH0KQEAgLTI1Miw3ICsyNTIsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1
ZUdldHRlcihKUwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExT
ZXJpYWxpemVkU2NyaXB0VmFsdWU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwucmVh
ZG9ubHlWYWx1ZSgpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUmVhZG9ubHlWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpnZXQ8anNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInJlYWRvbmx5VmFsdWUiKTsKIH0KQEAgLTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWVH
ZXR0ZXIoSlNHbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJl
dHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6
Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlR2V0dGVy
LCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhpc1ZhbHVlLCAiY2FjaGVkVmFsdWUiKTsKIH0KQEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVk
VmFsdWVTZXR0ZXIoSlNHbAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2U+OjpzZXQ8c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ2FjaGVkVmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgImNhY2hlZFZhbHVlIik7CiB9CkBAIC0zMDEsNyArMzAxLDcgQEAgc3Rh
dGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBv
cnRzR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
KHRvSlM8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPE1lc3NhZ2VQb3J0Pj4+KGxleGljYWxHbG9i
YWxPYmplY3QsICp0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3BlLCBpbXBsLnBv
cnRzKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVBvcnRzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9ydHMoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Z2V0PGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVBvcnRzR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAicG9ydHMiKTsKIH0KQEAgLTMxOSw3ICszMTks
NyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZUdldAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJl
YWRvbmx5VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZh
bHVlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmdldDxqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlR2V0dGVyLCBDYXN0ZWRUaGlzRXJy
b3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiY2Fj
aGVkUmVhZG9ubHlWYWx1ZSIpOwogfQpAQCAtMzQxLDcgKzM0MSw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQ
cm90b3R5cGVGCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5j
dGlvbkZ1bmN0aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT46OmNhbGw8anNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJvdG90eXBlRnVuY3Rpb25GdW5jdGlvbkJvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAiZnVuY3Rpb24iKTsKIH0KQEAgLTM1Niw3ICszNTYsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJvdG90eXBlRgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgaW1wbC5mdW5jdGlvblJldHVybmluZygpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZUZ1bmN0aW9uRnVuY3Rpb25SZXR1cm5pbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZUZ1bmN0aW9uRnVu
Y3Rpb25SZXR1cm5pbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6Y2FsbDxqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VQcm90b3R5cGVGdW5jdGlvbkZ1bmN0aW9uUmV0dXJuaW5nQm9keT4oKmxl
eGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmdW5jdGlvblJldHVybmluZyIpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNldExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNldExpa2UuY3BwCmluZGV4IDNkYWY1MDc5ZTI1MjBhYmY4MDUyMjQ4MTY3OTc3NDAwOGFm
MWRiOTguLmJmNDI5OTFhNTY0NzBlODVkMTljZmEyMTkxYjc1Yjc5Y2RhNzY4YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2V0TGlrZS5jcHAKQEAgLTUwLDIwICs1MCwyMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAv
LyBGdW5jdGlvbnMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNl
dExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxs
RnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtl
UHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXMoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1l
Kik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uVmFsdWVzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSop
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5
cGVGdW5jdGlvbkZvckVhY2goSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlw
ZUZ1bmN0aW9uQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5j
dGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlv
bkRlbGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzKTsKK0pT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uRW50
cmllcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbktleXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJv
dG90eXBlRnVuY3Rpb25WYWx1ZXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RT
ZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQWRkKTsKK0pTQ19ERUNMQVJFX0hPU1Rf
RlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIpOworSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGUpOwog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZUNvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VTaXplKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29s
IEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlU2l6ZShKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBj
bGFzcyBKU1Rlc3RTZXRMaWtlUHJvdG90eXBlIGZpbmFsIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODcsNyArMTg3LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0U2V0TGlrZSogSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYXN0KEpTR2xvYmFs
T2JqZWMKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXRMaWtlKj4oSlNDOjpnZXRW
TSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuYwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0U2V0TGlrZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci1ib29sIHNldEpTVGVzdFNldExpa2VDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U2V0TGlrZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNWYWx1ZSBqc1Rlc3RTZXRMaWtlU2l6ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETEFu
eT4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgZm9yd2FyZFNpemVUb1NldExpa2Uo
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNldExpa2VTaXplKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0U2V0TGlrZVNpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlrZT46OmdldDxqc1Rlc3RTZXRMaWtlU2l6
ZUdldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgInNpemUiKTsKIH0KQEAg
LTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzQm9keShKU0M6OkpTRwogICAgIFJFTEVBU0VfQU5E
X1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndhcmRI
YXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlz
LCBXVEZNb3ZlKGtleSkpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkhhcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uSGFzLCAoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4g
SURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQcm90b3R5cGVG
dW5jdGlvbkhhc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaGFzIik7
CiB9CkBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXNCb2R5KEpTQzoKICAgICBSRUxF
QVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihm
b3J3YXJkRW50cmllc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwg
KmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkVudHJpZXMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNUZXN0U2V0TGlrZVByb3Rv
dHlwZUZ1bmN0aW9uRW50cmllc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1l
LCAiZW50cmllcyIpOwogfQpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzQm9keShKU0M6
OkpTCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETEFueT4oZm9yd2FyZEtleXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25LZXlzLCAoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAg
ICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2U+OjpjYWxsPGpzVGVzdFNldExpa2VQ
cm90b3R5cGVGdW5jdGlvbktleXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgImtleXMiKTsKIH0KQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uVmFsdWVzQm9keShKU0M6
OgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9K
UzxJRExBbnk+KGZvcndhcmRWYWx1ZXNUb1NldExpa2UoKmxleGljYWxHbG9iYWxPYmplY3QsICpj
YWxsRnJhbWUsICpjYXN0ZWRUaGlzKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvblZhbHVlcywgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRM
aWtlUHJvdG90eXBlRnVuY3Rpb25WYWx1ZXNCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNh
bGxGcmFtZSwgInZhbHVlcyIpOwogfQpAQCAtMjk3LDcgKzI5Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
Qm9keShKU0M6CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVu
Y29kZSh0b0pTPElETEFueT4oZm9yd2FyZEZvckVhY2hUb1NldExpa2UoKmxleGljYWxHbG9iYWxP
YmplY3QsICpjYWxsRnJhbWUsICpjYXN0ZWRUaGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1
bmN0aW9uRm9yRWFjaChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZy
YW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVBy
b3RvdHlwZUZ1bmN0aW9uRm9yRWFjaCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxK
U1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNo
Qm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJmb3JFYWNoIik7CiB9CkBA
IC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZEJvZHkoSlNDOjpKU0cKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJk
QWRkVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhp
cywgV1RGTW92ZShrZXkpKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25BZGQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkFkZCwgKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJu
IElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBl
RnVuY3Rpb25BZGRCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImFkZCIp
OwogfQpAQCAtMzMyLDcgKzMzMiw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhckJvZHkoSlNDOjpKCiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25DbGVhcihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXIs
IChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZT46OmNhbGw8anNU
ZXN0U2V0TGlrZVByb3RvdHlwZUZ1bmN0aW9uQ2xlYXJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgKmNhbGxGcmFtZSwgImNsZWFyIik7CiB9CkBAIC0zNTEsNyArMzUxLDcgQEAgc3RhdGljIGlu
bGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VQcm90b3R5cGVGdW5jdGlvbkRl
bGV0ZUJvZHkoSlNDOjoKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1
ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRGVsZXRlVG9TZXRMaWtlKCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2FzdGVkVGhpcywgV1RGTW92ZShrZXkpKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVu
Y3Rpb25EZWxldGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VQcm90
b3R5cGVGdW5jdGlvbkRlbGV0ZSwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RTZXRMaWtlPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlUHJvdG90eXBlRnVuY3Rpb25EZWxldGVCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImRlbGV0ZSIpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnMuY3Bw
CmluZGV4IDczYzRlZmMxNjE4ZjIxYTRhYzYzZDFlNzMyYzc2ZWYyODkwZTk4M2YuLjE3M2E5Njcy
MzczZjVkMTI1OTMxOGNlNDM2OTYxZGFmNTNiZDZmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucy5jcHAKQEAgLTUxLDIxICs1
MSwyMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJh
dGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZShKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpD
YWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRM
aWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1
bmN0aW9uRW50cmllcyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25LZXlzKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBK
U0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJv
dG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFt
ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rl
c3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25EZWxldGUp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElP
Tihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25F
bnRyaWVzKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5cyk7CitKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVG
dW5jdGlvblZhbHVlcyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2gpOworSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25z
UHJvdG90eXBlRnVuY3Rpb25DbGVhcik7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLWJvb2wgc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0
cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc0FkZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1NpemUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92
ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQo
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zQWRkKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogCiBjbGFzcyBK
U1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlIGZpbmFsIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xODksNyArMTg5LDcgQEAg
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucyog
SURMT3BlcmF0aW9uPEpTVGVzdFNldEwKICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxKU1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5OSw3ICsxOTksNyBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0NvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpz
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGRHZXR0ZXIoSlNHbG9iYWxPYmoK
ICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMTG9uZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hZGQoKSkpKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZChKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46Omdl
dDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRkR2V0dGVyLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVl
LCAiYWRkIik7CiB9CkBAIC0yMzgsNyArMjM4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNBZGRTZXR0ZXIoSlNHbG9iYWxPYmoK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zQWRkKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zQWRk
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpzZXQ8c2V0SlNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc0FkZFNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiYWRkIik7CiB9CkBAIC0yNTAsNyAr
MjUwLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRl
bk9wZXJhdGlvbnNTaXplR2V0dGVyKEpTR2xvYmFsT2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMQW55PihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBmb3J3YXJkU2l6ZVRvU2V0TGlrZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0KSkp
KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1NpemUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zU2l6ZShKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJy
aWRkZW5PcGVyYXRpb25zPjo6Z2V0PGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNTaXplR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAic2l6ZSIpOwog
fQpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25EZWxldGUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkRlbGV0ZSwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRp
b25zPjo6Y2FsbDxqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBl
RnVuY3Rpb25EZWxldGVCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImRl
bGV0ZSIpOwogfQpAQCAtMjg2LDcgKzI4Niw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlCiAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElE
TEFueT4oZm9yd2FyZEhhc1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFt
ZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoa2V5KSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlw
ZUZ1bmN0aW9uSGFzKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0
aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25IYXMsIChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJl
dHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46
OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0
aW9uSGFzQm9keT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJoYXMiKTsKIH0K
QEAgLTMwMCw3ICszMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExBbnk+KGZvcndh
cmRFbnRyaWVzVG9TZXRMaWtlKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAqY2Fz
dGVkVGhpcykpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcyhKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0
aW9uc1Byb3RvdHlwZUZ1bmN0aW9uRW50cmllcywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zPjo6Y2FsbDxqc1Rlc3RT
ZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25FbnRyaWVzQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJlbnRyaWVzIik7CiB9CkBAIC0z
MTQsNyArMzE0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
dExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9S
RVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMQW55Pihmb3J3YXJkS2V5
c1RvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRo
T3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbktleXMoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5
cGVGdW5jdGlvbktleXMsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2Fs
bEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U2V0
TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9ucz46OmNhbGw8anNUZXN0U2V0TGlrZVdpdGhPdmVy
cmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uS2V5c0JvZHk+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqY2FsbEZyYW1lLCAia2V5cyIpOwogfQpAQCAtMzI4LDcgKzMyOCw3IEBAIHN0YXRp
YyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5P
cGVyYXRpb25zUHJvdG90eXBlCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpT
VmFsdWU6OmVuY29kZSh0b0pTPElETEFueT4oZm9yd2FyZFZhbHVlc1RvU2V0TGlrZSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMpKSkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvblZhbHVlcyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U2V0TGlrZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uVmFsdWVz
LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlv
bnNQcm90b3R5cGVGdW5jdGlvblZhbHVlc0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAidmFsdWVzIik7CiB9CkBAIC0zNDcsNyArMzQ3LDcgQEAgc3RhdGljIGlubGluZSBK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGUKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5j
b2RlKHRvSlM8SURMQW55Pihmb3J3YXJkRm9yRWFjaFRvU2V0TGlrZSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgKmNhc3RlZFRoaXMsIFdURk1vdmUoY2FsbGJhY2spKSkpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRk
ZW5PcGVyYXRpb25zUHJvdG90eXBlRnVuY3Rpb25Gb3JFYWNoKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9G
VU5DVElPTihqc1Rlc3RTZXRMaWtlV2l0aE92ZXJyaWRkZW5PcGVyYXRpb25zUHJvdG90eXBlRnVu
Y3Rpb25Gb3JFYWNoLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFNldExp
a2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VXaXRoT3ZlcnJp
ZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkZvckVhY2hCb2R5PigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgKmNhbGxGcmFtZSwgImZvckVhY2giKTsKIH0KQEAgLTM2Myw3ICszNjMsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2V0TGlrZVdpdGhPdmVycmlk
ZGVuT3BlcmF0aW9uc1Byb3RvdHlwZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U2V0TGlr
ZVdpdGhPdmVycmlkZGVuT3BlcmF0aW9uc1Byb3RvdHlwZUZ1bmN0aW9uQ2xlYXIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RF
RklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQ
cm90b3R5cGVGdW5jdGlvbkNsZWFyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpT
VGVzdFNldExpa2VXaXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnM+OjpjYWxsPGpzVGVzdFNldExpa2VX
aXRoT3ZlcnJpZGRlbk9wZXJhdGlvbnNQcm90b3R5cGVGdW5jdGlvbkNsZWFyQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJjbGVhciIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllci5jcHAKaW5kZXggMTUxM2ZkOGZhZDZlYjIzYmM1YWZkYmZlOTI1ZjYxY2ZjODQzZTg0Ny4u
NmRhMWYwOGRhNmJlYTNlZGVmZThjYjRiOGE2OWZiZTliNjcwZGQzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXIuY3BwCkBAIC00NiwxMiArNDYsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAog
Ly8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RT
dHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmlu
Z2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29s
IHNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNDOjpKU0ds
b2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jv
b2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllckNvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2MSw3ICsxNjEsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBKU1Rlc3RTdHJpbmdpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVy
Pjo6Y2FzdChKU0dsbwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVy
Kj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUo
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJp
bmdpZmllckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTcxLDcgKzE3MSw3IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllcjo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFU
SU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBA
IC0xOTQsNyArMTk0LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZ0JvZHkKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgaW1wbC50b1N0cmluZygpKSkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJQcm90b3R5
cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFN0cmluZ2lmaWVyPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllclByb3RvdHlwZUZ1bmN0aW9uVG9T
dHJpbmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uLmNwcAppbmRleCBkMDE3ZGZiNDk2NzFlN2Q3ZjBiMGI1OTMzMGJlODc2MDYzMTU4NDVhLi5l
YWUwNDk3M2UxMDkyNzZkNjBiMGZjM2Q0OWZiNTU3ZTA5NmU1MDU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKQEAgLTQ2LDEy
ICs0NiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMKIAotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZp
ZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0
cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3Vz
T3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3Rv
cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3Vz
T3BlcmF0aW9uQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTYxLDcgKzE2MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpT
VGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKiBJRExPcGVyYXRpb248SlNUZXN0U3Ry
aW5nCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb24qPihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgY2FsbEZyYW1lLnRo
aXNWYWx1ZSgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJBbm9ueW1v
dXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0xNzEsNyArMTcxLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5n
aWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGUKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0
aW9uOjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLWJvb2wgc2V0SlNUZXN0U3RyaW5naWZpZXJB
bm9ueW1vdXNPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNP
cGVyYXRpb25Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NCw3ICsxOTQsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBpbXBsLnRvU3RyaW5nKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvblRv
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNh
bGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllckFub255
bW91c09wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVy
biBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24+OjpjYWxs
PGpzVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZ0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAidG9TdHJpbmciKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcApp
bmRleCAzZjYyODc2MzlmNDI4YjgzMGNiZjQzZTMxNjYwNmZlODk2ZWYxNjc3Li4zZDQwY2RiMjE3
NmFkMmY2NTM3NDVkYjYwMDEzYTVkODllNWVhYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCkBAIC00NiwxMyArNDYsMTMgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rp
b25JZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb25Qcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmll
ck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25JZGVudGlmaWVyKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1
bmN0aW9uVG9TdHJpbmcpOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0U3Ry
aW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9u
RmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTYzLDcgKzE2Myw3IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24qIElETE9wZXJhdGlvbjxKU1Rlc3RT
dHJpbmdpZmllCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1l
ZE9wZXJhdGlvbio+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUu
dGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQ29uc3RydWN0b3Io
SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CkBAIC0xNzMsNyArMTczLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2EKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb246OmdldENv
bnN0cnVjdG9yKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb25Db25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw3ICsxOTYsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlw
ZUZ1bmN0aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLmlkZW50aWZp
ZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdp
Zmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25JZGVudGlmaWVyKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTihqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBl
RnVuY3Rpb25JZGVudGlmaWVyLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyTmFtZWRP
cGVyYXRpb25Qcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXJCb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgImlkZW50aWZpZXIiKTsKIH0KQEAgLTIxMSw3ICsyMTEsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJOYW1lZE9w
ZXJhdGlvblByb3RvdHlwZUZ1bmN0aQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3Bl
LCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCBpbXBsLmlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmlu
ZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJh
dGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVy
YXRpb248SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbj46OmNhbGw8anNUZXN0U3RyaW5n
aWZpZXJOYW1lZE9wZXJhdGlvblByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCmlu
ZGV4IGI4NmYxMmY5MTc1MzljMmQ1MzlkNTA5YzlhYTg0ODQyZjlmYTI2YTMuLjdkYjVmZjdkYzM0
OTNkY2ZiMTI5MmM2ZWI5YTIxNGI3NDNhYzE1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCkBAIC00NiwxMyAr
NDYsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNQcm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKK0pTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJv
dG90eXBlRnVuY3Rpb25JZGVudGlmaWVyKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eXBlRnVuY3Rpb25Ub1N0
cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRK
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAKIGNsYXNzIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3Rv
dHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTYzLDcgKzE2Myw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcyogSURMT3BlcmF0aW9uPEpTVGVzdFN0CiAgICAgcmV0dXJuIGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKj4oSlNDOjpn
ZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc0Nv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CkBAIC0xNzMsNyArMTczLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBczo6
Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBl
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5Niw3ICsxOTYs
NyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25JbXBsZW1lbnRlZEFzUHJvdG90eQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJv
d1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCBpbXBsLmFsdGVybmF0ZUlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXNQ
cm90b3R5cGVGdW5jdGlvbklkZW50aWZpZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRl
bnRpZmllciwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpZmll
ck9wZXJhdGlvbkltcGxlbWVudGVkQXM+OjpjYWxsPGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uSWRlbnRpZmllckJvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiaWRlbnRpZmllciIpOwogfQpAQCAtMjExLDcgKzIxMSw3
IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbkltcGxlbWVudGVkQXNQcm90b3R5CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93
U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxP
YmplY3QsIGltcGwuYWx0ZXJuYXRlSWRlbnRpZmllcigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1By
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBc1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxl
bWVudGVkQXNQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9keT4oKmxleGljYWxHbG9iYWxPYmpl
Y3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFt
ZWRUb1N0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAppbmRleCA2NjZlMzU2
N2VkNDk4NjM3NmJjN2RmYWU0ZDRkMmRhY2E5YjAwYjcyLi5jZWFmNjRhYjViZTI1ODRhYWI0MWJh
MGRhYmU1N2NjZTMyNzc0YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcApAQCAtNDYsMTIgKzQ2LDEyIEBAIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJv
dG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJh
bWUqKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJh
dGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFN0
cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTYxLDcgKzE2MSw3IEBAIHRlbXBs
YXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZyogSURM
T3BlcmF0aW9uPEpTVGVzdFN0CiAgICAgcmV0dXJuIGpzRHluYW1pY0Nhc3Q8SlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJP
cGVyYXRpb25OYW1lZFRvU3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzEsNyArMTcxLDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJB
VElPTiBzZXRKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmdDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE5NCw3ICsxOTQsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5n
UHJvdG90eQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNv
ZGUodG9KUzxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbXBsLnRvU3RyaW5n
KCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJh
dGlvbjxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmc+OjpjYWxsPGpzVGVz
dFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZ1Byb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5j
cHAKaW5kZXggYzUwMzdlZjM1MWI5NTYxZmIwYzA3ZjBiMzVhYmYwZGUxMDEwNzcwYy4uOWVmODFi
MTY5NDk2MmY0ZGExZWY5OGY3N2Q5Y2Y3ODJhMzliMTg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcApAQCAtNDcsMTMgKzQ3LDEz
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIC8vIEZ1bmN0aW9ucwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVBy
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nKTsKIAogLy8gQXR0cmlidXRlcwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVD
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmli
dXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmllcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1
Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXIoSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKIAogY2xhc3MgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZSBm
aW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTY5LDcg
KzE2OSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGUqIElETE9wZXJhdGlvbjxKU1Rlc3RTdHJpbmdpCiAgICAgcmV0dXJuIGpzRHluYW1pY0Nh
c3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZSo+KEpTQzo6Z2V0Vk0oJmxleGlj
YWxHbG9iYWxPYmplY3QpLCBjYWxsRnJhbWUudGhpc1ZhbHVlKCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdp
ZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xNzksNyArMTc5LDcgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUNvbnN0cnVj
dG9yKEpTR2xvYmFsT2JqZWN0KiBsZXgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU6OmdldENvbnN0cnVjdG9yKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCksIHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
Ym9vbCBzZXRKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpT
VGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXJHZXR0ZXIoSlNHbG9iYQogICAgIFJF
TEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJRExET01TdHJpbmc+KGxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGltcGwuaWRlbnRpZmllcigpKSkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlSWRlbnRpZmllcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFN0
cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGU+OjpnZXQ8anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZUlkZW50aWZpZXJH
ZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aGlzVmFsdWUsICJpZGVudGlmaWVyIik7CiB9CkBAIC0yMTUsNyArMjE1LDcgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVQcm90b3R5cGVGdW4KICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
aW1wbC5pZGVudGlmaWVyKCkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZy
YW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlB
dHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURM
T3BlcmF0aW9uPEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGU+OjpjYWxsPGpzVGVz
dFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVQcm90b3R5cGVGdW5jdGlvblRvU3RyaW5nQm9k
eT4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJ0b1N0cmluZyIpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAK
aW5kZXggOTAwMjliY2U2Mzg2MmU3Y2YzYjg3OGYzMzk2MGIzZDYwZjNmZjlhNC4uN2MzZDRjYjYw
NzlkZWYxYjMyOGFmZTZlZTE5NjQ2Yjg2MzZkMzM1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0
cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCkBAIC00NywxNCArNDcsMTQg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogLy8gRnVuY3Rpb25zCiAKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVBy
b3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmcoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZy
YW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyk7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0
cmlidXRlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJp
bmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUlkZW50aWZpZXIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJ
ZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJS
ZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0U3RyaW5n
aWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5cGUgZmluYWwgOiBwdWJsaWMgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE3MCw3ICsxNzAsNyBAQCB0ZW1wbGF0ZTw+IGlu
bGluZSBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSogSURMT3BlcmF0aW9uPEpT
VGVzdFN0cmluZwogICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCksIGNhbGxG
cmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwpAQCAtMTgwLDcgKzE4MCw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxlCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0
ZUF0dHJpYnV0ZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFN0cmluZ2lmaWVyUmVh
ZFdyaXRlQXR0cmlidXRlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0yMDEsNyAr
MjAxLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRl
QXR0cmlidXRlSWRlbnRpZmllckdldHRlcihKU0dsb2IKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMRE9NU3RyaW5nPihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBpbXBsLmlkZW50aWZpZXIoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlPjo6Z2V0PGpz
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllckdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgImlkZW50aWZpZXIiKTsKIH0KQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVJZGVudGlmaWVyU2V0dGVy
KEpTR2xvYgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmllcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVB
dHRyaWJ1dGVJZGVudGlmaWVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmli
dXRlPjo6c2V0PHNldEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlSWRlbnRpZmll
clNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAi
aWRlbnRpZmllciIpOwogfQpAQCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlw
ZUZ1CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsIEpTVmFsdWU6OmVuY29kZSh0
b0pTPElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIGltcGwuaWRlbnRpZmllcigp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFN0cmluZ2lmaWVy
UmVhZFdyaXRlQXR0cmlidXRlUHJvdG90eXBlRnVuY3Rpb25Ub1N0cmluZyhKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5F
X0hPU1RfRlVOQ1RJT04oanNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGVQcm90b3R5
cGVGdW5jdGlvblRvU3RyaW5nLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlPjo6Y2FsbDxqc1Rlc3RTdHJpbmdpZmllclJl
YWRXcml0ZUF0dHJpYnV0ZVByb3RvdHlwZUZ1bmN0aW9uVG9TdHJpbmdCb2R5PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInRvU3RyaW5nIik7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAppbmRleCBlZWI5OTBmODVhMzZlZjY5MTNiNzc1YjE1MzFjNWIxNWEyOGVlODdhLi45MGNkNzA2
YzJlMzM5YzJjZDkxMmRmNDA3NjI0MmNjYzZhN2MwYzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAK
QEAgLTY1LDM5ICs2NSwzOSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBGdW5jdGlvbnMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90
eXBlRnVuY3Rpb25GdW5jKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25TZXRTaGFkb3coSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZUFyZyhKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxlc0Fy
ZyhKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFi
bGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxG
cmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZz
UHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmcoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblVuaW9uQXJnKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1w
SW5UeXBlZGVmKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rp
b25Qb2ludEZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkNhbGxGcmFtZSopOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkNhbGxGcmFtZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMihKU0M6OkpTR2xv
YmFsT2JqZWN0KiwgSlNDOjpDYWxsRnJhbWUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRo
YXRSZXF1aXJlc0luY2x1ZGUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6Q2FsbEZyYW1lKik7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
Q2FsbEZyYW1lKik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25GdW5jKTsKK0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblNldFNoYWRvdyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNU
SU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uTnVsbGFibGVTZXF1ZW5jZUFyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGFibGVzQXJnKTsKK0pTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxh
YmxlU2VxdWVuY2VPZk51bGxhYmxlc0FyZyk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlT2ZVbmlvbnNBcmcp
OworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uVW5pb25BcmcpOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1By
b3RvdHlwZUZ1bmN0aW9uRnVuY1dpdGhDbGFtcCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBlZGVmKTsK
K0pTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
blBvaW50RnVuY3Rpb24pOworSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbik7CitKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5j
ZUZ1bmN0aW9uMik7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJv
dG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVzSW5jbHVkZSk7CitKU0Nf
REVDTEFSRV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoRXhjZXB0aW9uKTsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5z
aWduZWRMb25nTG9uZ0F0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExv
bmdMb25nQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU2Vy
aWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdFR5cGVkZWZzU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnND
b25zdHJ1Y3RvclRlc3RTdWJPYmooSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlw
ZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRy
aWJ1dGVXaXRoQ2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVm
c0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RUeXBlZGVm
c0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzQnVmZmVyU291cmNlQXR0cihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1Rlc3RUeXBl
ZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNEb21U
aW1lU3RhbXBBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBq
c1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBK
SVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzU2VyaWFs
aXplZFNjcmlwdFZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRl
ZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6SlNHbG9i
YWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRo
Q2xhbXAoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0
ZVdpdGhDbGFtcChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNDOjpKU0dsb2JhbE9iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09Q
RVJBVElPTiBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNCdWZm
ZXJTb3VyY2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNC
dWZmZXJTb3VyY2VBdHRyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElP
TiBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZSBmaW5hbCA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1
ZSBKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAiVGVzdFN1
Yk9iaiIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seSksIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmopLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0s
CiB9OwogCi10ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0VHlw
ZWRlZnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3RlbXBsYXRlPD4gRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTF9BVFRSSUJVVEVTIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmNvbnN0
cnVjdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTE4MCw2ICsxODAs
NyBAQCB0ZW1wbGF0ZTw+IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEpTRwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgeyB9KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVmFsdWUpOwogfQor
SlNDX0FOTk9UQVRFX0hPU1RfRlVOQ1RJT04oSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvckNvbnN0
cnVjdCwgSlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KTsKIAogdGVtcGxhdGU8
PiBKU1ZhbHVlIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKIHsK
QEAgLTI4MSw3ICsyODIsNyBAQCB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RUeXBlZGVmcyogSURM
T3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FzdChKU0dsb2JhbE9iagogICAgIHJldHVybiBq
c0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9i
amVjdCksIGNhbGxGcmFtZS50aGlzVmFsdWUoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjkxLDcgKzI5
Miw3IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RUeXBlZGVmczo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpTVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4
aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CkBAIC0zMTIsNyArMzEzLDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHJHZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGwKICAg
ICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9u
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC51bnNpZ25lZExvbmdMb25n
QXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9u
Z0xvbmdBdHRyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04ganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RU
eXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlv
cjo6QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAidW5zaWduZWRMb25n
TG9uZ0F0dHIiKTsKIH0KQEAgLTMzMCw3ICszMzEsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgc2V0
SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0clNldHRlcihKU0dsb2JhbE9iamVjdCYg
bAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRM
b25nTG9uZ0F0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRf
T1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNU
ZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0clNl
dHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAidW5z
aWduZWRMb25nTG9uZ0F0dHIiKTsKIH0KQEAgLTM0Myw3ICszNDQsNyBAQCBzdGF0aWMgaW5saW5l
IEpTVmFsdWUganNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXR0ZXIoSlNHbG9i
YWxPYmplY3QmCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+PihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zZXJp
YWxpemVkU2NyaXB0VmFsdWUoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRl
ZnNTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVm
cz46OmdldDxqc1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUdldHRlciwgQ2FzdGVk
VGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1
ZSwgInNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpOwogfQpAQCAtMzYxLDcgKzM2Miw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVNldHRl
cihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RU
eXBlZGVmc1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNUZXN0VHlwZWRlZnNTZXJpYWxpemVkU2Ny
aXB0VmFsdWUoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIHJldHVy
biBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8c2V0SlNUZXN0VHlwZWRlZnNTZXJp
YWxpemVkU2NyaXB0VmFsdWVTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUs
IGVuY29kZWRWYWx1ZSwgInNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpOwogfQpAQCAtMzcyLDcgKzM3
Myw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVz
dFN1Yk9iakdldHRlcihKU0dsb2JhbE9iamVjdCYKICAgICByZXR1cm4gSlNUZXN0U3ViT2JqOjpn
ZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVj
dC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29u
c3RydWN0b3JUZXN0U3ViT2JqKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04ganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmooSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+Ojpn
ZXRTdGF0aWM8anNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmpHZXR0ZXI+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJUZXN0U3ViT2JqIik7CiB9CkBAIC0zODUsNyAr
Mzg2LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0
aENsYW1wR2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
dGhyb3dTY29wZSwgKHRvSlM8SURMQ2xhbXBBZGFwdG9yPElETFVuc2lnbmVkTG9uZ0xvbmc+Pihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBpbXBsLmF0dHJpYnV0ZVdpdGhDbGFtcCgp
KSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFt
cChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBy
ZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZzPjo6Z2V0PGpzVGVzdFR5cGVkZWZzQXR0
cmlidXRlV2l0aENsYW1wR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0Pigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYXR0cmlidXRlV2l0aENsYW1wIik7CiB9
CkBAIC00MDMsNyArNDA0LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZz
QXR0cmlidXRlV2l0aENsYW1wU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXgKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNU
ZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpzZXQ8
c2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBTZXR0ZXI+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcCIpOwog
fQpAQCAtNDE2LDcgKzQxNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RUeXBlZGVm
c0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZkdldHRlcihKU0dsb2JhbE9iCiAgICAgUkVMRUFT
RV9BTkRfUkVUVVJOKHRocm93U2NvcGUsICh0b0pTPElETENsYW1wQWRhcHRvcjxJRExMb25nPj4o
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5hdHRyaWJ1dGVXaXRoQ2xhbXBJ
blR5cGVkZWYoKSkpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBl
ZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZkdldHRl
ciwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OkFzc2VydD4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgImF0dHJpYnV0ZVdpdGhDbGFtcEluVHlwZWRlZiIpOwogfQpAQCAtNDM0LDcg
KzQzNSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJpYnV0ZVdp
dGhDbGFtcEluVHlwZWRlZlNldHRlcihKU0dsb2JhbE9iCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNBdHRyaWJ1dGVXaXRoQ2xhbXBJblR5cGVkZWYoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVz
dFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdFR5cGVkZWZz
Pjo6c2V0PHNldEpTVGVzdFR5cGVkZWZzQXR0cmlidXRlV2l0aENsYW1wSW5UeXBlZGVmU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJhdHRyaWJ1
dGVXaXRoQ2xhbXBJblR5cGVkZWYiKTsKIH0KQEAgLTQ0Nyw3ICs0NDgsNyBAQCBzdGF0aWMgaW5s
aW5lIEpTVmFsdWUganNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyR2V0dGVyKEpTR2xvYmFs
T2JqZWN0JiBsZXhpYwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Njb3BlLCAodG9KUzxJ
RExVbmlvbjxJRExBcnJheUJ1ZmZlclZpZXcsIElETEFycmF5QnVmZmVyPj4obGV4aWNhbEdsb2Jh
bE9iamVjdCwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIHRocm93U2NvcGUsIGltcGwuYnVm
ZmVyU291cmNlQXR0cigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0J1
ZmZlclNvdXJjZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBqc1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+OjpnZXQ8anNUZXN0
VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6
QXNzZXJ0PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiYnVmZmVyU291cmNlQXR0
ciIpOwogfQpAQCAtNDY1LDcgKzQ2Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1Rlc3RU
eXBlZGVmc0J1ZmZlclNvdXJjZUF0dHJTZXR0ZXIoSlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgc2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBz
ZXRKU1Rlc3RUeXBlZGVmc0J1ZmZlclNvdXJjZUF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0VHlwZWRlZnM+Ojpz
ZXQ8c2V0SlNUZXN0VHlwZWRlZnNCdWZmZXJTb3VyY2VBdHRyU2V0dGVyPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJidWZmZXJTb3VyY2VBdHRyIik7CiB9
CkBAIC00NzgsNyArNDc5LDcgQEAgc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
RG9tVGltZVN0YW1wQXR0ckdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgKHRvSlM8SURMVW5zaWduZWRMb25nTG9uZz4obGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5kb21UaW1lU3RhbXBBdHRyKCkpKSk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0cihKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzVGVzdFR5cGVkZWZz
RG9tVGltZVN0YW1wQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0
dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OmdldDxqc1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0
dHJHZXR0ZXIsIENhc3RlZFRoaXNFcnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aGlzVmFsdWUsICJkb21UaW1lU3RhbXBBdHRyIik7CiB9CkBAIC00OTYsNyArNDk3
LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdFR5cGVkZWZzRG9tVGltZVN0YW1wQXR0
clNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBzZXRKU1Rlc3RUeXBlZGVmc0RvbVRpbWVTdGFtcEF0dHIoSlNHbG9iYWxPYmplY3QqIGxleGlj
YWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTVGVzdFR5cGVkZWZzRG9tVGlt
ZVN0YW1wQXR0cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RUeXBlZGVmcz46OnNldDxzZXRKU1Rlc3RUeXBlZGVmc0Rv
bVRpbWVTdGFtcEF0dHJTZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVu
Y29kZWRWYWx1ZSwgImRvbVRpbWVTdGFtcEF0dHIiKTsKIH0KQEAgLTUxNiw3ICs1MTcsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbkZ1bmNCb2R5KEpTQzo6SgogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmMoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmpl
Y3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uRnVuY0JvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiZnVuYyIpOwog
fQpAQCAtNTUwLDcgKzU1MSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93Qm9keShKCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93KEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0
U2hhZG93LCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6
Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2V0U2hhZG93Qm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzZXRTaGFkb3ciKTsKIH0KQEAgLTU3MCw3ICs1
NzEsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQ
cm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZQogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0
aHJvd1Njb3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExVbnNpZ25lZExvbmdMb25nPihpbXBs
Lm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhXVEZNb3ZlKHNlcXVlbmNlQXJnKSkpKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0
VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZywgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZ0JvZHk+KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIik7CiB9CkBAIC01
OTIsNyArNTkzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVNlcXVlbmNlQXJnKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkK
K0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9u
TnVsbGFibGVTZXF1ZW5jZUFyZywgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxl
U2VxdWVuY2VBcmdCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgIm51bGxh
YmxlU2VxdWVuY2VBcmciKTsKIH0KQEAgLTYxNCw3ICs2MTUsNyBAQCBzdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblNlcXVlbmNl
T2ZOdWxsYQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5j
dGlvblNlcXVlbmNlT2ZOdWxsYWJsZXNBcmcoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxP
YmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TZXF1ZW5jZU9mTnVsbGFibGVzQXJnLCAoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU2VxdWVuY2VPZk51bGxhYmxlc0FyZ0JvZHk+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAic2VxdWVuY2VPZk51bGxhYmxlc0FyZyIpOwog
fQpAQCAtNjM2LDcgKzYzNyw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jCiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5j
ZU9mTnVsbGFibGVzQXJnKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVm
c1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnLCAoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
ICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTZXF1ZW5jZU9mTnVsbGFibGVzQXJnQm9keT4o
KmxleGljYWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJudWxsYWJsZVNlcXVlbmNlT2ZOdWxs
YWJsZXNBcmciKTsKIH0KQEAgLTY1OCw3ICs2NTksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVu
YwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51
bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZywg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFt
ZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU2VxdWVuY2VPZlVuaW9uc0FyZ0Jv
ZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibnVsbGFibGVTZXF1ZW5jZU9m
VW5pb25zQXJnIik7CiB9CkBAIC02ODAsNyArNjgxLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25VbmlvbkFyZ0JvZHko
SlMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25V
bmlvbkFyZyhKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvblVuaW9uQXJnLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVz
dFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uVW5pb25BcmdC
b2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInVuaW9uQXJnIik7CiB9CkBA
IC03MDUsNyArNzA2LDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wQm8KICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25GdW5jV2l0aENsYW1wKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uRnVu
Y1dpdGhDbGFtcCwgKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJh
bWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVm
cz46OmNhbGw8anNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBCb2R5
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgImZ1bmNXaXRoQ2xhbXAiKTsKIH0K
QEAgLTcyNyw3ICs3MjgsNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJbgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkZ1bmNXaXRoQ2xhbXBJblR5
cGVkZWYoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBl
RnVuY3Rpb25GdW5jV2l0aENsYW1wSW5UeXBlZGVmLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3Bl
cmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uRnVuY1dpdGhDbGFtcEluVHlwZWRlZkJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2Fs
bEZyYW1lLCAiZnVuY1dpdGhDbGFtcEluVHlwZWRlZiIpOwogfQpAQCAtNzQyLDcgKzc0Myw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlw
ZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbkJvCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHRocm93U2Nv
cGUsIEpTVmFsdWU6OmVuY29kZSh0b0pTPElETEludGVyZmFjZTxTVkdQb2ludD4+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAqY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIGltcGwucG9pbnRGdW5j
dGlvbigpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5cGVk
ZWZzUHJvdG90eXBlRnVuY3Rpb25Qb2ludEZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5D
VElPTihqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uUG9pbnRGdW5jdGlvbiwgKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7
CiAgICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RUeXBlZGVmcz46OmNhbGw8anNUZXN0VHlw
ZWRlZnNQcm90b3R5cGVGdW5jdGlvblBvaW50RnVuY3Rpb25Cb2R5PigqbGV4aWNhbEdsb2JhbE9i
amVjdCwgKmNhbGxGcmFtZSwgInBvaW50RnVuY3Rpb24iKTsKIH0KQEAgLTc2Miw3ICs3NjMsNyBA
QCBzdGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5
cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTih0aHJvd1Nj
b3BlLCBKU1ZhbHVlOjplbmNvZGUodG9KUzxJRExTZXF1ZW5jZTxJRExET01TdHJpbmc+PigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCB0aHJvd1Njb3Bl
LCBpbXBsLnN0cmluZ1NlcXVlbmNlRnVuY3Rpb24oV1RGTW92ZSh2YWx1ZXMpKSkpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0
aW9uU3RyaW5nU2VxdWVuY2VGdW5jdGlvbihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oanNU
ZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1NlcXVlbmNlRnVuY3Rpb24sIChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxsPGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uQm9keT4oKmxleGlj
YWxHbG9iYWxPYmplY3QsICpjYWxsRnJhbWUsICJzdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uIik7CiB9
CkBAIC03ODIsNyArNzgzLDcgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUYKICAgICBSRUxFQVNF
X0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6ZW5jb2RlKHRvSlM8SURMU2VxdWVuY2U8
SURMRE9NU3RyaW5nPj4oKmxleGljYWxHbG9iYWxPYmplY3QsICpjYXN0ZWRUaGlzLT5nbG9iYWxP
YmplY3QoKSwgdGhyb3dTY29wZSwgaW1wbC5zdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMihXVEZNb3Zl
KHZhbHVlcykpKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdFR5
cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25TdHJpbmdTZXF1ZW5jZUZ1bmN0aW9uMihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVG
SU5FX0hPU1RfRlVOQ1RJT04oanNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvblN0cmluZ1Nl
cXVlbmNlRnVuY3Rpb24yLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENh
bGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5
cGVkZWZzPjo6Y2FsbDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uU3RyaW5nU2VxdWVu
Y2VGdW5jdGlvbjJCb2R5PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgKmNhbGxGcmFtZSwgInN0cmlu
Z1NlcXVlbmNlRnVuY3Rpb24yIik7CiB9CkBAIC04MDIsNyArODAzLDcgQEAgc3RhdGljIGlubGlu
ZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxs
V2l0aFNlcXVlbmMKICAgICBSRUxFQVNFX0FORF9SRVRVUk4odGhyb3dTY29wZSwgSlNWYWx1ZTo6
ZW5jb2RlKHRvSlM8SURMQm9vbGVhbj4oaW1wbC5jYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVpcmVz
SW5jbHVkZShXVEZNb3ZlKHNlcXVlbmNlQXJnKSkpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0VHlwZWRlZnNQcm90b3R5cGVGdW5jdGlvbkNhbGxXaXRoU2VxdWVu
Y2VUaGF0UmVxdWlyZXNJbmNsdWRlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihqc1Rlc3RU
eXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uQ2FsbFdpdGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1
ZGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpKQogewogICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0VHlwZWRlZnM+OjpjYWxs
PGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25DYWxsV2l0aFNlcXVlbmNlVGhhdFJlcXVp
cmVzSW5jbHVkZUJvZHk+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAiY2FsbFdp
dGhTZXF1ZW5jZVRoYXRSZXF1aXJlc0luY2x1ZGUiKTsKIH0KQEAgLTgxOSw3ICs4MjAsNyBAQCBz
dGF0aWMgaW5saW5lIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFeGNlcAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0VHlwZWRl
ZnNQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFeGNlcHRpb24oSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlNDX0RFRklORV9IT1NU
X0ZVTkNUSU9OKGpzVGVzdFR5cGVkZWZzUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRXhjZXB0
aW9uLCAoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2Fs
bEZyYW1lKSkKIHsKICAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdFR5cGVkZWZzPjo6Y2Fs
bDxqc1Rlc3RUeXBlZGVmc1Byb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEV4Y2VwdGlvbkJvZHk+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCAqY2FsbEZyYW1lLCAibWV0aG9kV2l0aEV4Y2VwdGlvbiIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IDlmYTlkMTExNmM5MDQzNTQ4
NTM5NGFjMzliNjQzYjBlN2NhYWM2ZjIuLmViZDRmY2Q2Y2JjMDA4MGQ5ZThiMTk5N2IyNDM2MWY4
NmQwMjg1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1dvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTUwLDE4ICs1MCwx
OCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpT
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihK
U0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93
Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNj
b3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNH
bG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1i
b29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBv
c2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2Jh
bFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNj
b3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzV29y
a2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3Jr
ZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3Ry
dWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLWJvb2wgc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04ganNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29y
a2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dv
cmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3IoSlNDOjpK
U0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNDOjpKU0dsb2Jh
bE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wg
SklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0
ZXJlZEJ5RXhwb3NlZENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
Ym9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVj
dG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBqc1dvcmtlckds
b2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Citib29sIEpJVF9PUEVSQVRJT04g
c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9t
aXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworYm9vbCBKSVRfT1BFUkFUSU9OIHNl
dEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Q29uc3RydWN0b3Io
SlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogCiB1c2luZyBKU1dvcmtlckdsb2JhbFNjb3BlQ29uc3RydWN0b3IgPSBKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1dvcmtlckdsb2JhbFNjb3BlPjsKIApAQCAtMTcx
LDcgKzE3MSw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIEpTV29ya2VyR2xvYmFsU2NvcGUqIElETEF0
dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Y2FzdChKCiAgICAgcmV0dXJuIGpzRHluYW1p
Y0Nhc3Q8SlNXb3JrZXJHbG9iYWxTY29wZSo+KEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmpl
Y3QpLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpz
V29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTE4MSw3ICsxODEsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplYwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNXb3JrZXJHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwog
fQogCi1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJT04gc2V0SlNXb3JrZXJHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMjAwLDcgKzIwMCw3IEBA
IHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2Vy
QW5kV2luZG93Q29uc3RydWN0b3JHZXR0CiAgICAgcmV0dXJuIEpTRXhwb3NlZFRvV29ya2VyQW5k
V2luZG93OjpnZXRDb25zdHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwg
dGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzV29ya2Vy
R2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2Nv
cGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4
aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpz
V29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25zdHJ1Y3RvckdldHRl
cj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIkV4cG9zZWRUb1dvcmtlckFuZFdp
bmRvdyIpOwogfQpAQCAtMjEyLDcgKzIxMiw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dv
cmtlckdsb2JhbFNjb3BlRXhwb3NlZFRvV29ya2VyQW5kV2luZG93Q29uc3RydWN0b3JTZXR0CiAg
ICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIkV4cG9zZWRUb1dvcmtlckFuZFdp
bmRvdyIpLCBzdHJsZW4oIkV4cG9zZWRUb1dvcmtlckFuZFdpbmRvdyIpKSwgdmFsdWUpOwogfQog
Ci1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVFeHBvc2VkVG9Xb3JrZXJBbmRXaW5kb3dDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVS
QVRJT04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICByZXR1cm4g
SURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0SlNXb3JrZXJHbG9iYWxT
Y29wZUV4cG9zZWRUb1dvcmtlckFuZFdpbmRvd0NvbnN0cnVjdG9yU2V0dGVyPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJFeHBvc2VkVG9Xb3JrZXJBbmRX
aW5kb3ciKTsKIH0KQEAgLTIyMyw3ICsyMjMsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNX
b3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdAog
ICAgIHJldHVybiBKU1Rlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQ6OmdldENvbnN0
cnVjdG9yKEpTQzo6Z2V0Vk0oJmxleGljYWxHbG9iYWxPYmplY3QpLCB0aGlzT2JqZWN0Lmdsb2Jh
bE9iamVjdCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3RE
ZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0
RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29wZT46Omdl
dDxqc1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZENv
bnN0cnVjdG9yR2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCAiVGVzdERl
ZmF1bHRUb0pTT05GaWx0ZXJlZEJ5RXhwb3NlZCIpOwogfQpAQCAtMjM1LDcgKzIzNSw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdERlZmF1bHRUb0pTT05G
aWx0ZXJlZEJ5RXhwb3NlZENvbnN0CiAgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0KHZt
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oIlRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKSwgc3RybGVuKCJUZXN0RGVm
YXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkIikpLCB2YWx1ZSk7CiB9CiAKLWJvb2wgc2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWRDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCitib29sIEpJVF9PUEVSQVRJ
T04gc2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9z
ZWRDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
cmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6c2V0PHNldEpTV29ya2Vy
R2xvYmFsU2NvcGVUZXN0RGVmYXVsdFRvSlNPTkZpbHRlcmVkQnlFeHBvc2VkQ29uc3RydWN0b3JT
ZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgIlRl
c3REZWZhdWx0VG9KU09ORmlsdGVyZWRCeUV4cG9zZWQiKTsKIH0KQEAgLTI0Niw3ICsyNDYsNyBA
QCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3Ry
dWN0b3JHZXR0ZXIoSlNHbG9iYWxPYmplYwogICAgIHJldHVybiBKU1Rlc3ROb2RlOjpnZXRDb25z
dHJ1Y3RvcihKU0M6OmdldFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSwgdGhpc09iamVjdC5nbG9i
YWxPYmplY3QoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0
Tm9kZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRlc3ROb2RlQ29uc3RydWN0b3IoSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNXb3JrZXJHbG9iYWxTY29w
ZT46OmdldDxqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvckdldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgIlRlc3ROb2RlIik7CiB9CkBAIC0yNTgsNyAr
MjU4LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9k
ZUNvbnN0cnVjdG9yU2V0dGVyKEpTR2xvYmFsT2JqZWMKICAgICByZXR1cm4gdGhpc09iamVjdC5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiVGVzdE5vZGUiKSwgc3RybGVuKCJUZXN0Tm9kZSIpKSwgdmFsdWUpOwog
fQogCi1ib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dv
cmtlckdsb2JhbFNjb3BlVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNj
b3BlPjo6c2V0PHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0Tm9kZUNvbnN0cnVjdG9yU2V0dGVy
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJUZXN0Tm9k
ZSIpOwogfQpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtl
ckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yR2V0dGVyKEpTR2xvYmFsT2JqCiAgICAg
cmV0dXJuIEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04ganNXb3JrZXJHbG9iYWxTY29wZVRl
c3RPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElE
TEF0dHJpYnV0ZTxKU1dvcmtlckdsb2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVU
ZXN0T2JqZWN0Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFs
dWUsICJUZXN0T2JqZWN0Iik7CiB9CkBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0T2JqZWN0Q29uc3RydWN0b3JTZXR0ZXIoSlNH
bG9iYWxPYmoKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiVGVzdE9iamVj
dCIpLCBzdHJsZW4oIlRlc3RPYmplY3QiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtl
ckdsb2JhbFNjb3BlVGVzdE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVz
dE9iamVjdENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+OjpzZXQ8c2V0SlNX
b3JrZXJHbG9iYWxTY29wZVRlc3RPYmplY3RDb25zdHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9i
YWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiVGVzdE9iamVjdCIpOwogfQpAQCAt
MjkyLDcgKzI5Miw3IEBAIHN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3Bl
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yR2V0CiAgICAgcmV0dXJuIEpTVGVz
dFByb21pc2VSZWplY3Rpb25FdmVudDo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTSgmbGV4aWNh
bEdsb2JhbE9iamVjdCksIHRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCkpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1dvcmtlckdsb2JhbFNjb3BlVGVzdFByb21pc2VSZWplY3Rpb25FdmVudENvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
anNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25zdHJ1Y3RvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1dvcmtlckds
b2JhbFNjb3BlPjo6Z2V0PGpzV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3JHZXR0ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsICJU
ZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50Iik7CiB9CkBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGlj
IGlubGluZSBib29sIHNldEpTV29ya2VyR2xvYmFsU2NvcGVUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50Q29uc3RydWN0b3JTZXQKICAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpLCBzdHJsZW4oIlRlc3RQcm9taXNlUmVqZWN0aW9u
RXZlbnQiKSksIHZhbHVlKTsKIH0KIAotYm9vbCBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRKU1dvcmtlckdsb2JhbFNjb3BlVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTV29ya2VyR2xvYmFsU2NvcGU+
OjpzZXQ8c2V0SlNXb3JrZXJHbG9iYWxTY29wZVRlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnRDb25z
dHJ1Y3RvclNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZh
bHVlLCAiVGVzdFByb21pc2VSZWplY3Rpb25FdmVudCIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNjb3BlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1dvcmtsZXRHbG9i
YWxTY29wZS5jcHAKaW5kZXggMjJlYjhjOWJmZTk1NmY0ZGJjNzMyMDJhMWY0MjhjYjVlZmJmODY5
YS4uZWYzY2JiMGNiNWY5MmM5NDY0NWE5OWI2OGMyNGU1NDZjOGFlNjQ1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTV29ya2xldEdsb2JhbFNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNX
b3JrbGV0R2xvYmFsU2NvcGUuY3BwCkBAIC00NCw4ICs0NCw4IEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1dvcmtsZXRHbG9i
YWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29u
c3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGpzV29y
a2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK2Jvb2wgSklUX09QRVJBVElPTiBzZXRK
U1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogdXNpbmcgSlNXb3JrbGV0
R2xvYmFsU2NvcGVDb25zdHJ1Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
PEpTV29ya2xldEdsb2JhbFNjb3BlPjsKIApAQCAtMTE2LDcgKzExNiw3IEBAIEpTVmFsdWUgSlNX
b3JrbGV0R2xvYmFsU2NvcGU6OmdldENvbnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxP
YmplY3QqIGdsb2JhCiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTV29ya2xldEdsb2Jh
bFNjb3BlQ29uc3RydWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzV29ya2xldEdsb2JhbFNjb3Bl
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBqc1dvcmtsZXRHbG9iYWxTY29wZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBWTSYgdm0gPSBKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTI2LDcgKzEyNiw3
IEBAIEVuY29kZWRKU1ZhbHVlIGpzV29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1dvcmtsZXRHbG9iYWxTY29wZTo6Z2V0Q29uc3RydWN0b3IoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi1ib29sIHNldEpT
V29ya2xldEdsb2JhbFNjb3BlQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQorYm9vbCBKSVRfT1BFUkFUSU9OIHNldEpTV29ya2xldEdsb2JhbFNjb3BlQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIFZNJiB2bSA9
IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X3J1bnRpbWUubW0KaW5kZXggZTY1N2MwMWM0MmMxMDE2YjFiNjI4ODhmOGQ4ZDY4MjQyZGJiNGEx
My4uZjZlMmU3N2NmZDUyNmFlYTliNjMwNjE5Nzc1ODhhMDdlNzc1MGIwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMjQ2LDcgKzI0Niw5IEBAIGJv
b2wgT2JqY0ZhbGxiYWNrT2JqZWN0SW1wOjpwdXQoSlNDZWxsKiwgSlNHbG9iYWxPYmplY3QqLCBQ
cm9wZXJ0eU5hbWUsIEpTVmFsdWUsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKK3N0YXRp
YyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGNhbGxPYmpDRmFsbGJhY2tPYmplY3QpOworCitK
U0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbE9iakNGYWxsYmFja09iamVjdCwgKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAg
ICAgSlNDOjpWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTI2MSw3ICsyNjMsNyBAQCBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsT2JqQ0ZhbGxiYWNrT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiBsZXhpYwogICAgIE9iamNJbnN0YW5jZSogb2JqY0luc3RhbmNlID0gcnVudGlt
ZU9iamVjdC0+Z2V0SW50ZXJuYWxPYmpDSW5zdGFuY2UoKTsKIAogICAgIGlmICghb2JqY0luc3Rh
bmNlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKFJ1bnRpbWVPYmplY3Q6OnRocm93
SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CisgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CiAgICAgCiAgICAgb2JqY0luc3RhbmNl
LT5iZWdpbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXgg
ZWMzNTg4ZmM1NjU5NTUzZjUyNzI4M2M1OGE3MzU4MDIxMzI5YWM1ZC4uYmM2OGQ1MDYyODBlMTRm
MzU0OTEyZDU5MmViZTVjNTkxY2E2ZTRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcApAQCAtMzksNiArMzksOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xh
c3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFycmF5IiwgJkJhc2U6OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShSdW50aW1lQXJyYXkp
IH07CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGFycmF5TGVuZ3RoR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisKIFJ1
bnRpbWVBcnJheTo6UnVudGltZUFycmF5KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgOiBKU0FycmF5KHZtLCBzdHJ1Y3R1cmUsIG51bGxwdHIpCiAgICAgLCBtX2FycmF5KG51bGxw
dHIpCkBAIC02Miw3ICs2NCw3IEBAIHZvaWQgUnVudGltZUFycmF5OjpkZXN0cm95KEpTQ2VsbCog
Y2VsbCkKICAgICBzdGF0aWNfY2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKS0+UnVudGltZUFycmF5
Ojp+UnVudGltZUFycmF5KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVu
Z3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJ
T04gYXJyYXlMZW5ndGhHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFZNJiB2bSA9
IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwpAQCAtOTIsNyArOTQsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsRwog
ICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgUnVudGltZUFycmF5
KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KG9iamVjdCk7CiAgICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAgc2xvdC5z
ZXRDYWNoZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0sIHRoaXNPYmplY3QtPmxlbmd0aEdldHRlcik7CisgICAgICAgIHNsb3Quc2V0Q2FjaGVh
YmxlQ3VzdG9tKHRoaXNPYmplY3QsIFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlIHwgUHJv
cGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5IHwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtLCBh
cnJheUxlbmd0aEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCmluZGV4IDFkN2I3MGI3ZjM5NjJmY2U4MTYx
MzdiYTI2YzRjMjIyMDIwYmVhMTMuLjNjNGM3ZTg2MTA0ODE3NTQxNGMwZmFlZTAyYzBhOWE4YzVm
NDliOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuaApAQCAtODgsNyArODgs
NiBAQCBjbGFzcyBSdW50aW1lQXJyYXkgZmluYWwgOiBwdWJsaWMgSlNBcnJheSB7CiAgICAgUnVu
dGltZUFycmF5KFZNJiwgU3RydWN0dXJlKik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYs
IEJpbmRpbmdzOjpBcnJheSopOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdl
dHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogICAg
IHN0YXRpYyBKU0M6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYpOwogCiAg
ICAgQmluZGluZ3NBcnJheSogbV9hcnJheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwCmluZGV4IDE4MWE0NjhlMGI2ZmQ3MjFkMzMyZDhmMDRjZjFhM2RkMWQxNjZlNGMu
LjJlOTg1NDcwZDA0YmMzNDM4ZTdiYmZkYmVmODAxMGU1YzQ5MzFjYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcApAQCAtNDMsNyArNDMsOCBAQCB1c2luZyBuYW1l
c3BhY2UgQmluZGluZ3M7CiAKIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENsYXNzSW5mbyBSdW50aW1l
TWV0aG9kOjpzX2luZm8gPSB7ICJSdW50aW1lTWV0aG9kIiwgJkludGVybmFsRnVuY3Rpb246OnNf
aW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShSdW50aW1lTWV0aG9k
KSB9OwogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZU1l
dGhvZChKU0dsb2JhbE9iamVjdCosIENhbGxGcmFtZSopOworc3RhdGljIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oY2FsbFJ1bnRpbWVNZXRob2QpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gbWV0aG9kTGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKIFJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QoVk0m
IHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTWV0aG9kKiBtZXRob2QpCiAgICAgLy8gQ2FsbGVy
cyB3aWxsIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBjb3JyZXNwb25k
aW5nIHRvIHRoaXMgbmF0aXZlIG9iamVjdCAibWV0aG9kIi4KQEAgLTU4LDcgKzU5LDcgQEAgdm9p
ZCBSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIGNvbnN0IFN0cmluZyYgaWRl
bnQpCiAgICAgQVNTRVJUKGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgUnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJVF9P
UEVSQVRJT04gbWV0aG9kTGVuZ3RoR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTY2LDcg
KzY3LDcgQEAgRW5jb2RlZEpTVmFsdWUgUnVudGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEpTR2xv
YmFsT2JqZWN0KiBleGVjLCBFbmNvZGVkSlNWYWx1ZQogICAgIFJ1bnRpbWVNZXRob2QqIHRoaXNP
YmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVNZXRob2QqPih2bSwgSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNO
dW1iZXIodGhpc09iamVjdC0+bV9tZXRob2QtPm51bVBhcmFtZXRlcnMoKSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodGhpc09iamVjdC0+bWV0aG9kKCktPm51bVBhcmFt
ZXRlcnMoKSkpOwogfQogCiBib29sIFJ1bnRpbWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChK
U09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90ICZzbG90KQpAQCAtNzQsNyArNzUsNyBAQCBib29sIFJ1bnRp
bWVNZXRob2Q6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9i
amVjdCogZXhlYywgUAogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgUnVudGltZU1ldGhv
ZCogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lTWV0aG9kKj4ob2JqZWN0KTsKICAgICBpZiAo
cHJvcGVydHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkgewotICAgICAgICBzbG90
LnNldENhY2hlYWJsZUN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSwgdGhpc09iamVjdC0+bGVuZ3RoR2V0dGVyKTsKKyAgICAgICAgc2xvdC5zZXRDYWNo
ZWFibGVDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUgfCBQ
cm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0s
IG1ldGhvZExlbmd0aEdldHRlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAK
QEAgLTg2LDcgKzg3LDcgQEAgSXNvU3Vic3BhY2UqIFJ1bnRpbWVNZXRob2Q6OnN1YnNwYWNlRm9y
SW1wbChWTSYgdm0pCiAgICAgcmV0dXJuICZzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZt
LmNsaWVudERhdGEpLT5ydW50aW1lTWV0aG9kU3BhY2UoKTsKIH0KIAotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVNZXRob2QoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04oY2FsbFJ1bnRpbWVNZXRob2QsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
RnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEwMyw3ICsxMDQs
NyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZU1ldGhv
ZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZQogICAgICAgICBSdW50aW1lT2JqZWN0KiBydW50
aW1lT2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGFzT2JqZWN0KHRoaXNWYWx1
ZSkpOwogICAgICAgICBpbnN0YW5jZSA9IHJ1bnRpbWVPYmplY3QtPmdldEludGVybmFsSW5zdGFu
Y2UoKTsKICAgICAgICAgaWYgKCFpbnN0YW5jZSkgCi0gICAgICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKFJ1bnRpbWVPYmplY3Q6OnRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpKTsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dS
dW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpKTsKICAg
ICB9IGVsc2UgewogICAgICAgICAvLyBDYWxsaW5nIGEgcnVudGltZSBvYmplY3Qgb2YgYSBwbHVn
aW4gZWxlbWVudD8KICAgICAgICAgaWYgKHRoaXNWYWx1ZS5pbmhlcml0czxKU0hUTUxFbGVtZW50
Pih2bSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCmluZGV4IDZkYzM2Njg2
NzU2ZTg3ODk0NTkyNDJmZWQxYjAyMjhmZGNjMDdiOWIuLmI0YjllOWVmNzNmYWU0NjI2OTE3ZWY5
Y2JlOTNhMTkyZWY2N2NkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5o
CkBAIC03NCw4ICs3NCw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVNZXRob2QgOiBw
dWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIo
SlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLQogICAgIHN0
YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBsKFZNJik7CiAKICAgICBCaW5kaW5nczo6
TWV0aG9kKiBtX21ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
CmluZGV4IDgwNTFlNmVjM2M2YzEyOGQyY2VmMDVhNzQ2MzAxZjhjMGRiNGNmYjguLjg4YjJkZTg3
NWRmMWZhYWMwZGEwODFlY2JkMWE4NTk1YzllOWQ4ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcApAQCAtMzgsNiArMzgsMTMgQEAgbmFtZXNwYWNlIEJpbmRpbmdz
IHsKIAogV0VCQ09SRV9FWFBPUlQgY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVPYmplY3Q6OnNfaW5m
byA9IHsgIlJ1bnRpbWVPYmplY3QiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKFJ1bnRpbWVPYmplY3QpIH07CiAKK3N0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lT2JqZWN0KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lQ29uc3RydWN0b3IpOworCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBmYWxsYmFja09iamVjdEdldHRlcihKU0dsb2JhbE9iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gZmllbGRHZXR0ZXIoSlNHbG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG1ldGhv
ZEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwor
CiBSdW50aW1lT2JqZWN0OjpSdW50aW1lT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFJlZlB0cjxJbnN0YW5jZT4mJiBpbnN0YW5jZSkKICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKICAgICAsIG1faW5zdGFuY2UoV1RGTW92ZShpbnN0YW5jZSkpCkBAIC02MywxNiArNzAsMTYg
QEAgdm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RH
ZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwogICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIFJ1bnRpbWVPYmpl
Y3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKLSAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+bV9pbnN0
YW5jZTsKKyAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+Z2V0SW50ZXJu
YWxJbnN0YW5jZSgpOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBz
Y29wZSkpOworICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93UnVudGltZU9iamVj
dEludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSkpOwogICAgIAog
ICAgIGluc3RhbmNlLT5iZWdpbigpOwogCkBAIC04NCwxNiArOTEsMTYgQEAgRW5jb2RlZEpTVmFs
dWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxl
eGljYWxHbG9iYWwKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIGZpZWxkR2V0dGVy
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7ICAgIAogICAgIFZNJiB2bSA9IGxl
eGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwogCiAgICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1l
T2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIFJlZlB0cjxJbnN0YW5j
ZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNlOworICAgIFJlZlB0cjxJbnN0YW5jZT4g
aW5zdGFuY2UgPSB0aGlzT2JqLT5nZXRJbnRlcm5hbEluc3RhbmNlKCk7CiAKICAgICBpZiAoIWlu
c3RhbmNlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93SW52YWxpZEFjY2Vz
c0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKSk7CisgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsIHNjb3BlKSk7CiAgICAgCiAgICAgaW5zdGFuY2UtPmJlZ2luKCk7CiAKQEAg
LTEwNiwxNiArMTEzLDE2IEBAIEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxkR2V0
dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFCiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0
OjptZXRob2RHZXR0ZXIoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gbWV0aG9kR2V0dGVyKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBSdW50aW1lT2Jq
ZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7Ci0gICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1faW5z
dGFuY2U7CisgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPmdldEludGVy
bmFsSW5zdGFuY2UoKTsKIAogICAgIGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
c2NvcGUpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1J1bnRpbWVPYmpl
Y3RJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpKTsKICAgICAK
ICAgICBpbnN0YW5jZS0+YmVnaW4oKTsKIApAQCAtMTMzLDcgKzE0MCw3IEBAIGJvb2wgUnVudGlt
ZU9iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsCiAKICAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1
bnRpbWVPYmplY3QqPihvYmplY3QpOwogICAgIGlmICghdGhpc09iamVjdC0+bV9pbnN0YW5jZSkg
ewotICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBz
Y29wZSk7CisgICAgICAgIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAg
ICAgCkBAIC0xNDcsMTQgKzE1NCwxNCBAQCBib29sIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbAogICAgICAg
ICAvLyBTZWUgaWYgdGhlIGluc3RhbmNlIGhhcyBhIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBu
YW1lLgogICAgICAgICBGaWVsZCAqYUZpZWxkID0gYUNsYXNzLT5maWVsZE5hbWVkKHByb3BlcnR5
TmFtZSwgaW5zdGFuY2UuZ2V0KCkpOwogICAgICAgICBpZiAoYUZpZWxkKSB7Ci0gICAgICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQ
cm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSksIHRoaXNPYmplY3QtPmZpZWxkR2V0dGVyKTsK
KyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKSwgZmllbGRHZXR0ZXIpOwog
ICAgICAgICAgICAgaW5zdGFuY2UtPmVuZCgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgYSBtZXRob2Qgd2l0
aCBzcGVjaWZpZWQgbmFtZSBleGlzdHMsIGlmIHNvIHJldHVybiBhIGZ1bmN0aW9uIG9iamVjdCBm
b3IKICAgICAgICAgICAgIC8vIHRoYXQgbWV0aG9kLgogICAgICAgICAgICAgaWYgKGFDbGFzcy0+
bWV0aG9kTmFtZWQocHJvcGVydHlOYW1lLCBpbnN0YW5jZS5nZXQoKSkpIHsKLSAgICAgICAgICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERl
bGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSwgdGhpc09iamVjdC0+bWV0aG9kR2V0
dGVyKTsKKyAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0
eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSwgbWV0
aG9kR2V0dGVyKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpbnN0YW5jZS0+
ZW5kKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xNjMsNyArMTcwLDcgQEAg
Ym9vbCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwg
SlNHbG9iYWxPYmplY3QqIGxleGljYWwKIAogICAgICAgICAvLyBUcnkgYSBmYWxsYmFjayBvYmpl
Y3QuCiAgICAgICAgIGlmICghYUNsYXNzLT5mYWxsYmFja09iamVjdChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBpbnN0YW5jZS5nZXQoKSwgcHJvcGVydHlOYW1lKS5pc1VuZGVmaW5lZCgpKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dERlbGV0ZSB8IFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seSB8IFByb3BlcnR5QXR0cmlidXRl
OjpEb250RW51bSwgdGhpc09iamVjdC0+ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOworICAgICAgICAg
ICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxl
dGUgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6UmVhZE9ubHkgfCBQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9u
dEVudW0sIGZhbGxiYWNrT2JqZWN0R2V0dGVyKTsKICAgICAgICAgICAgIGluc3RhbmNlLT5lbmQo
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkBAIC0xODEsNyArMTg4LDcg
QEAgYm9vbCBSdW50aW1lT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGUKIAogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KGNlbGwpOwogICAgIGlmICghdGhpc09iamVjdC0+
bV9pbnN0YW5jZSkgewotICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSk7CisgICAgICAgIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nl
c3NFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAgICAgCkBAIC0yMTMsNyArMjIwLDcgQEAgSlNWYWx1ZSBSdW50aW1lT2JqZWN0
OjpkZWZhdWx0VmFsdWUoY29uc3QgSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxl
eGkKIAogICAgIGNvbnN0IFJ1bnRpbWVPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8Y29uc3Qg
UnVudGltZU9iamVjdCo+KG9iamVjdCk7CiAgICAgaWYgKCF0aGlzT2JqZWN0LT5tX2luc3RhbmNl
KQotICAgICAgICByZXR1cm4gdGhyb3dJbnZhbGlkQWNjZXNzRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUpOworICAgICAgICByZXR1cm4gdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFj
Y2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAKICAgICBSZWZQdHI8
SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iamVjdC0+bV9pbnN0YW5jZTsKIApAQCAtMjIzLDcg
KzIzMCw3IEBAIEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZGVmYXVsdFZhbHVlKGNvbnN0IEpTT2Jq
ZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbFJ1bnRpbWVPYmplY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCitKU0Nf
REVGSU5FX0hPU1RfRlVOQ1RJT04oY2FsbFJ1bnRpbWVPYmplY3QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZS0+anNDYWxsZWUoKS0+aW5oZXJpdHM8UnVudGltZU9i
amVjdD4oZ2xvYmFsT2JqZWN0LT52bSgpKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5j
ZShzdGF0aWNfY2FzdDxSdW50aW1lT2JqZWN0Kj4oY2FsbEZyYW1lLT5qc0NhbGxlZSgpKS0+Z2V0
SW50ZXJuYWxJbnN0YW5jZSgpKTsKQEAgLTI0Niw3ICsyNTMsNyBAQCBDYWxsRGF0YSBSdW50aW1l
T2JqZWN0OjpnZXRDYWxsRGF0YShKU0NlbGwqIGNlbGwpCiAgICAgcmV0dXJuIGNhbGxEYXRhOwog
fQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsUnVudGltZUNvbnN0
cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxSdW50aW1lQ29uc3RydWN0b3IsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAg
SlNPYmplY3QqIGNvbnN0cnVjdG9yID0gY2FsbEZyYW1lLT5qc0NhbGxlZSgpOwogICAgIEFTU0VS
VF9VTlVTRUQoZ2xvYmFsT2JqZWN0LCBjb25zdHJ1Y3Rvci0+aW5oZXJpdHM8UnVudGltZU9iamVj
dD4oZ2xvYmFsT2JqZWN0LT52bSgpKSk7CkBAIC0yODAsNyArMjg3LDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2EKIAogICAgIFJ1bnRpbWVPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVu
dGltZU9iamVjdCo+KG9iamVjdCk7CiAgICAgaWYgKCF0aGlzT2JqZWN0LT5tX2luc3RhbmNlKSB7
Ci0gICAgICAgIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNj
b3BlKTsKKyAgICAgICAgdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjkx
LDcgKzI5OCw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09i
amVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAgICAgaW5zdGFuY2UtPmVuZCgp
OwogfQogCi1FeGNlcHRpb24qIFJ1bnRpbWVPYmplY3Q6OnRocm93SW52YWxpZEFjY2Vzc0Vycm9y
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkK
K0V4Y2VwdGlvbiogdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsKICAgICBy
ZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJl
ZmVyZW5jZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVj
dCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLiIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmgKaW5kZXggZTYxNzdlNWExN2ZjZDU5YWQ2MzM4ZWUxZTZjMzY5OWUzMjBjZmYx
OS4uNjU5OTFjNTE1OTNhZDg5YWI1ZjcwNThiMmQ5YWUzYWM2ZWZiN2I2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTMyLDYgKzMyLDggQEAKIG5hbWVzcGFjZSBK
U0MgewogbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAorRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmpl
Y3RJbnZhbGlkQWNjZXNzRXJyb3IoSlNHbG9iYWxPYmplY3QqLCBUaHJvd1Njb3BlJik7CisKIGNs
YXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTTm9uRmluYWxPYmplY3Q7CkBAIC02OCw4
ICs3MCw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNO
b25GaW5hbE9iamVjdCB7CiAKICAgICBJbnN0YW5jZSogZ2V0SW50ZXJuYWxJbnN0YW5jZSgpIGNv
bnN0IHsgcmV0dXJuIG1faW5zdGFuY2UuZ2V0KCk7IH0KIAotICAgIHN0YXRpYyBFeGNlcHRpb24q
IHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEpTR2xvYmFsT2JqZWN0KiwgVGhyb3dTY29wZSYpOwot
CiAgICAgREVDTEFSRV9JTkZPOwogCiAgICAgc3RhdGljIE9iamVjdFByb3RvdHlwZSogY3JlYXRl
UHJvdG90eXBlKFZNJiwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKQEAgLTg3LDEwICs4
Nyw2IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgSlNOb25G
aW5hbE9iamVjdCB7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCiBwcml2YXRlOgot
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihKU0dsb2JhbE9i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBmaWVsZEdldHRlcihKU0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoSlNHbG9i
YWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLQogICAgIHN0YXRpYyBJ
c29TdWJzcGFjZSogc3Vic3BhY2VGb3JJbXBsKFZNJik7CiAKICAgICBSZWZQdHI8SW5zdGFuY2U+
IG1faW5zdGFuY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IGZkMzA0ZDM4ZmI3NzNjYzJhMGVjYjYy
ZmQ3YjJlZjZjYjZkMWU0MTMuLmViNGE5NmUxNzk0Y2I4ZDkxZWQzOWYxNWQzZDQ1YmYwMDk2OTQ4
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBNZXRob2QuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFNUQVRJQ19BU1NFUlRfSVNf
VFJJVklBTExZX0RFU1RSVUNUSUJMRShKU05QTWV0aG9kKTsKIAogY29uc3QgQ2xhc3NJbmZvIEpT
TlBNZXRob2Q6OnNfaW5mbyA9IHsgIk5QTWV0aG9kIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5m
bywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU05QTWV0aG9kKSB9Owog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsTWV0aG9kKEpTR2xvYmFs
T2JqZWN0KiwgQ2FsbEZyYW1lKik7CitzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihj
YWxsTWV0aG9kKTsKIAogSlNOUE1ldGhvZDo6SlNOUE1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmll
cikKICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LT52bSgpLCBzdHJ1Y3R1cmUs
IGNhbGxNZXRob2QsIG51bGxwdHIpCkBAIC02Niw3ICs2Niw3IEBAIElzb1N1YnNwYWNlKiBKU05Q
TWV0aG9kOjpzdWJzcGFjZUZvckltcGwoVk0mIHZtKQogICAgIHJldHVybiAmcGVyVk0uZ2V0KCku
Zm9yVk0odm0pOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
TWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1l
KQorSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxNZXRob2QsIChKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7CiAgICAgVk0mIHZtID0gZ2xv
YmFsT2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBPYmplY3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvSlNOUE9iamVjdC5jcHAKaW5kZXggZTNkZTkxYTdkNTE4MzEzYjZiNjUzM2JmMDFiMGU3Mzgy
YjYyMGU1Yi4uNjgwNDMzMTg4ZDFkMTAzY2M5OTUyYTI0YzcyOWVjZDYwNzg2MmU2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNO
UE9iamVjdC5jcHAKQEAgLTIzOSw3ICsyMzksMTAgQEAgSlNWYWx1ZSBKU05QT2JqZWN0OjpjYWxs
Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIENhbGxGcmEK
ICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGxOUEpTT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFt
ZSogY2FsbEZyYW1lKQorc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY2FsbE5QSlNP
YmplY3QpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oY29uc3RydWN0V2l0aENv
bnN0cnVjdG9yKTsKKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGNhbGxOUEpTT2JqZWN0LCAo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewog
ICAgIEpTT2JqZWN0KiBvYmplY3QgPSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCk7CiAgICAgQVNTRVJU
X1VOVVNFRChnbG9iYWxPYmplY3QsIG9iamVjdC0+aW5oZXJpdHM8SlNOUE9iamVjdD4oZ2xvYmFs
T2JqZWN0LT52bSgpKSk7CkBAIC0yNTksNyArMjYyLDcgQEAgQ2FsbERhdGEgSlNOUE9iamVjdDo6
Z2V0Q2FsbERhdGEoSlNDZWxsKiBjZWxsKQogICAgIHJldHVybiBjYWxsRGF0YTsKIH0KIAotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0V2l0aENvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKQorSlND
X0RFRklORV9IT1NUX0ZVTkNUSU9OKGNvbnN0cnVjdFdpdGhDb25zdHJ1Y3RvciwgKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKICAgICBKU09i
amVjdCogY29uc3RydWN0b3IgPSBjYWxsRnJhbWUtPmpzQ2FsbGVlKCk7CiAgICAgQVNTRVJUX1VO
VVNFRChnbG9iYWxPYmplY3QsIGNvbnN0cnVjdG9yLT5pbmhlcml0czxKU05QT2JqZWN0PihnbG9i
YWxPYmplY3QtPnZtKCkpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>